]> git.itanic.dy.fi Git - linux-stable/commitdiff
rapidio/tsi721: replace flush_scheduled_work() with flush_work()
authorTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Sat, 24 Sep 2022 05:11:25 +0000 (14:11 +0900)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 18 Nov 2022 21:55:09 +0000 (13:55 -0800)
Like commit c4f135d643823a86 ("workqueue: Wrap flush_workqueue() using a
macro") says, flush_scheduled_work() is dangerous and will be forbidden.
We are on the way for removing all flush_scheduled_work() callers from the
kernel, and this patch is for removing flush_scheduled_work() call from
tsi721 driver.

Since "struct tsi721_device" is per a device struct, I assume that
tsi721_remove() needs to wait for only two works associated with that
device.  Therefore, wait for only these works using flush_work().

Link: https://lkml.kernel.org/r/0e8a2023-7526-f03a-f520-efafbb0ef45c@I-love.SAKURA.ne.jp
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: Alexandre Bounine <alex.bou9@gmail.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Cc: Matt Porter <mporter@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
drivers/rapidio/devices/tsi721.c

index b3134744fb55c0aba6b0faeca3023498ee704682..0a42d6a2af24f95878efbf41a74889894737b5d3 100644 (file)
@@ -2941,7 +2941,8 @@ static void tsi721_remove(struct pci_dev *pdev)
 
        tsi721_disable_ints(priv);
        tsi721_free_irq(priv);
-       flush_scheduled_work();
+       flush_work(&priv->idb_work);
+       flush_work(&priv->pw_work);
        rio_unregister_mport(&priv->mport);
 
        tsi721_unregister_dma(priv);