Skip to content

Commit ba63537

Browse files
stuartwhayesgregkh
authored andcommitted
driver core: don't always lock parent in shutdown
Don't lock a parent device unless it is needed in device_shutdown. This is in preparation for making device shutdown asynchronous, when it will be needed to allow children of a common parent to shut down simultaneously. Signed-off-by: Stuart Hayes <stuart.w.hayes@gmail.com> Signed-off-by: David Jeffery <djeffery@redhat.com> Reviewed-by: Sagi Grimberg <sagi@grimberg.me> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Keith Busch <kbusch@kernel.org> Tested-by: Keith Busch <kbusch@kernel.org> Link: https://lore.kernel.org/r/20240822202805.6379-2-stuart.w.hayes@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 24e041e commit ba63537

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

drivers/base/core.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4816,7 +4816,7 @@ void device_shutdown(void)
48164816
spin_unlock(&devices_kset->list_lock);
48174817

48184818
/* hold lock to avoid race with probe/release */
4819-
if (parent)
4819+
if (parent && dev->bus && dev->bus->need_parent_lock)
48204820
device_lock(parent);
48214821
device_lock(dev);
48224822

@@ -4840,7 +4840,7 @@ void device_shutdown(void)
48404840
}
48414841

48424842
device_unlock(dev);
4843-
if (parent)
4843+
if (parent && dev->bus && dev->bus->need_parent_lock)
48444844
device_unlock(parent);
48454845

48464846
put_device(dev);

0 commit comments

Comments
 (0)