Revert "driver core: fix async device shutdown hang"
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 25 Sep 2024 08:56:57 +0000 (10:56 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 25 Sep 2024 09:01:20 +0000 (11:01 +0200)
This reverts commit 4f2c346e621624315e2a1405e98616a0c5ac146f.

The series is being reverted before -rc1 as there are still reports of
lockups on shutdown, so it's not quite ready for "prime time."

Reported-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
Link: https://lore.kernel.org/r/ZvMkkhyJrohaajuk@skv.local
Cc: Christoph Hellwig <hch@lst.de>
Cc: David Jeffery <djeffery@redhat.com>
Cc: Keith Busch <kbusch@kernel.org>
Cc: Laurence Oberman <loberman@redhat.com>
Cc: Nathan Chancellor <nathan@kernel.org>
Cc: Sagi Grimberg <sagi@grimberg.me>
Cc: Stuart Hayes <stuart.w.hayes@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/core.c

index 76513e360496b66aea1d3184d473b85b3b95baa3..b69b82da8837ebb6b3497d52d46a43e26ea1c64a 100644 (file)
@@ -4898,16 +4898,8 @@ void device_shutdown(void)
 
                idx = device_links_read_lock();
                list_for_each_entry_rcu(link, &dev->links.suppliers, c_node,
-                               device_links_read_lock_held()) {
-                       /*
-                        * sync_state_only suppliers don't need to wait,
-                        * aren't reordered on devices_kset, so making them
-                        * wait could result in a hang
-                        */
-                       if (device_link_flag_is_sync_state_only(link->flags))
-                               continue;
+                               device_links_read_lock_held())
                        link->supplier->p->shutdown_after = cookie;
-               }
                device_links_read_unlock(idx);
                put_device(dev);