aboutsummaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2005-05-06 15:38:33 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2005-06-20 15:15:28 -0700
commitc95a6b057b108c2b7add35cba1354f9af921349e (patch)
tree5a312f634b0aec295201a93020ba025d840e5f21 /drivers/usb
parent6623415687eaffef49429292ab062bb046ee3311 (diff)
[PATCH] driver core: Fix races in driver_detach()
This patch is intended for your "driver" tree. It fixes several subtle races in driver_detach() and device_release_driver() in the driver-model core. The major change is to use klist_remove() rather than klist_del() when taking a device off its driver's list. There's no other way to guarantee that the list pointers will be updated before some other driver binds to the device. For this to work driver_detach() can't use a klist iterator, so the loop over the devices must be written out in full. In addition the patch protects against the possibility that, when a driver and a device are unregistered at the same time, one may be unloaded from memory before the other is finished using it. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
0 files changed, 0 insertions, 0 deletions