summaryrefslogtreecommitdiff
path: root/kernel/workqueue.c
diff options
context:
space:
mode:
authorKiran K <kiran.k@intel.com>2025-01-31 18:30:19 +0530
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-02-21 14:01:18 +0100
commita700e50fcf960c2a96bd31a4ba61d7bb3dac2c3d (patch)
treeccaf32401a59aa9c836abc807fdfbcf69998647f /kernel/workqueue.c
parent390bf69dcb2056a16506111b4f46b04145280a12 (diff)
downloadlinux-a700e50fcf960c2a96bd31a4ba61d7bb3dac2c3d.tar.gz
linux-a700e50fcf960c2a96bd31a4ba61d7bb3dac2c3d.tar.bz2
linux-a700e50fcf960c2a96bd31a4ba61d7bb3dac2c3d.zip
Bluetooth: btintel_pcie: Fix a potential race condition
[ Upstream commit 872274b992839ff64fe560767fe7ee5f942ccdb1 ] On HCI_OP_RESET command, firmware raises alive interrupt. Driver needs to wait for this before sending other command. This patch fixes the potential miss of alive interrupt due to which HCI_OP_RESET can timeout. Expected flow: If tx command is HCI_OP_RESET, 1. set data->gp0_received = false 2. send HCI_OP_RESET 3. wait for alive interrupt Actual flow having potential race: If tx command is HCI_OP_RESET, 1. send HCI_OP_RESET 1a. Firmware raises alive interrupt here and in ISR data->gp0_received is set to true 2. set data->gp0_received = false 3. wait for alive interrupt Signed-off-by: Kiran K <kiran.k@intel.com> Fixes: 05c200c8f029 ("Bluetooth: btintel_pcie: Add handshake between driver and firmware") Reported-by: Bjorn Helgaas <helgaas@kernel.org> Closes: https://patchwork.kernel.org/project/bluetooth/patch/20241001104451.626964-1-kiran.k@intel.com/ Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'kernel/workqueue.c')
0 files changed, 0 insertions, 0 deletions