diff options
| author | Takashi Sakamoto <o-takashi@sakamocchi.jp> | 2026-11-02 12:30:58 +0900 |
|---|---|---|
| committer | Takashi Sakamoto <o-takashi@sakamocchi.jp> | 2026-11-03 12:55:19 +0900 |
| commit | 4acd5f806bf5569bfa3a45ea6a525936197df10c (patch) | |
| tree | 0c7a62fc8f8232c41ba265757a4cdc324f6b5410 /tools | |
| parent | 6628e7d4c6b25c8d18f1345e3a20d21829aae7e4 (diff) | |
firewire: ohci: avoid potential deadlock when queueing AT local requests
AT local requests are retrieved from the queue in process context
(workqueue), while requests can be added to the queue from any context
through __fw_send_request(). The queue is protected by a spinlock, but
interrupts are still enabled when acquiring the lock in the former case.
This can lead to a deadlock if the same lock is acquired from interrupt
context while it is already held.
Avoid the deadlock by using a pair of spin_lock_irqsave() and
spin_unlock_irqrestore() to protect access to the queue.
Fixes: 5fe52c6aa28e ("firewire: ohci: use workqueue to handle error case of AT request/response packet queueing")
Link: https://lore.kernel.org/r/20261102033058.1184485-1-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Diffstat (limited to 'tools')
0 files changed, 0 insertions, 0 deletions
