Driver core: Protect device shutdown from hot unplug events.
authorHugh Daschbach <hdasch@broadcom.com>
Mon, 22 Mar 2010 17:36:37 +0000 (10:36 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 21 May 2010 16:37:30 +0000 (09:37 -0700)
commit6245838fe4d2ce4aab52f543224f7d1212d9155c
treeeabeb6ae52ae80f42ccb34bf479a60748989bf59
parente177123f0c2d77ed2fde724ca352166ca9464619
Driver core: Protect device shutdown from hot unplug events.

While device_shutdown() walks through devices_kset to shutdown all
devices, device unplug events may race to shutdown individual devices.
Specifically, sd_shutdown(), on behalf of fc_starget_delete(), has
been observed deleting devices during device_shutdown()'s list
traversal.  So we factor out list_for_each_entry_safe_reverse(...) in
favor of while (!list_empty(...)).

Signed-off-by: Hugh Daschbach <hdasch@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/base/core.c