"value":"In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: hci_core: cancel all works upon hci_unregister_dev()\n\nsyzbot is reporting that calling hci_release_dev() from hci_error_reset()\ndue to hci_dev_put() from hci_error_reset() can cause deadlock at\ndestroy_workqueue(), for hci_error_reset() is called from\nhdev->req_workqueue which destroy_workqueue() needs to flush.\n\nWe need to make sure that hdev->{rx_work,cmd_work,tx_work} which are\nqueued into hdev->workqueue and hdev->{power_on,error_reset} which are\nqueued into hdev->req_workqueue are no longer running by the moment\n\n destroy_workqueue(hdev->workqueue);\n destroy_workqueue(hdev->req_workqueue);\n\nare called from hci_release_dev().\n\nCall cancel_work_sync() on these work items from hci_unregister_dev()\nas soon as hdev->list is removed from hci_dev_list."
"value":"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: Bluetooth: hci_core: cancelar todos los trabajos en hci_unregister_dev() syzbot informa que llamar a hci_release_dev() desde hci_error_reset() debido a hci_dev_put() desde hci_error_reset() puede causar un punto muerto en destroy_workqueue( ), porque hci_error_reset() se llama desde hdev->req_workqueue y destroy_workqueue() necesita vaciarse. Necesitamos asegurarnos de que hdev->{rx_work,cmd_work,tx_work} que est\u00e1n en cola en hdev->workqueue y hdev->{power_on,error_reset} que est\u00e1n en cola en hdev->req_workqueue ya no se est\u00e9n ejecutando en el momento destroy_workqueue( hdev->cola de trabajo); destroy_workqueue(hdev->req_workqueue); se llaman desde hci_release_dev(). Llame a cancel_work_sync() en estos elementos de trabajo desde hci_unregister_dev() tan pronto como se elimine hdev->list de hci_dev_list."