1 Apr 2007 22:59
driver core: do not wait unnecessarily in driver_unregister()
Linux Kernel Mailing List <linux-kernel <at> vger.kernel.org>
2007-04-01 20:59:02 GMT
2007-04-01 20:59:02 GMT
Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f5ef2abcbeb5b0be23f7cc610a024b2406e3d8e6 Commit: f5ef2abcbeb5b0be23f7cc610a024b2406e3d8e6 Parent: 755948cfca16c71b16e8ff4a9d4dd31b1c0bf923 Author: Linus Torvalds <torvalds <at> woody.linux-foundation.org> AuthorDate: Sun Apr 1 10:54:13 2007 -0700 Committer: Linus Torvalds <torvalds <at> woody.linux-foundation.org> CommitDate: Sun Apr 1 10:54:13 2007 -0700 driver core: do not wait unnecessarily in driver_unregister() Ingo reported that built-in drivers suffered bootup hangs with certain driver unregistry sequences, due to sysfs breakage. Do the minimal fix for v2.6.21: only wait if the driver is a module. Acked-by: Ingo Molnar <mingo <at> elte.hu> Signed-off-by: Linus Torvalds <torvalds <at> linux-foundation.org> --- drivers/base/driver.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/drivers/base/driver.c b/drivers/base/driver.c index 1214cbd..082bfde 100644 --- a/drivers/base/driver.c +++ b/drivers/base/driver.c <at> <at> -183,7 +183,14 <at> <at> int driver_register(struct device_driver * drv) void driver_unregister(struct device_driver * drv) { bus_remove_driver(drv); - wait_for_completion(&drv->unloaded);(Continue reading)
RSS Feed