[PATCH 2/2] firewire: core: replace drain_workqueue() with flush_workqueue()
From: Takashi Sakamoto
Date: Mon Oct 19 2026 - 08:31:18 EST
drain_workqueue() allows only chained work to be queued while draining.
This is inconvenient because work can be queued from contexts other than
work items already executing on the workqueue.
Use flush_workqueue() instead to allow work to be queued from any
context.
Signed-off-by: Takashi Sakamoto <o-takashi@xxxxxxxxxxxxx>
---
drivers/firewire/core-card.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/firewire/core-card.c b/drivers/firewire/core-card.c
index b4d40dc7720f..b35e8901cc4b 100644
--- a/drivers/firewire/core-card.c
+++ b/drivers/firewire/core-card.c
@@ -841,8 +841,8 @@ void fw_core_remove_card(struct fw_card *card)
// Ensure the entire contents of the driver are visible to other CPUs.
smp_store_release(&card->driver, &closer.driver);
- drain_workqueue(card->isoc_wq);
- drain_workqueue(card->async_wq);
+ flush_workqueue(card->isoc_wq);
+ flush_workqueue(card->async_wq);
card->driver->disable(card);
scoped_guard(spinlock_irqsave, &card->transactions.lock)
--
2.53.0