diff options
author | Alan Stern <stern@rowland.harvard.edu> | 2006-03-31 11:52:25 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-04-14 11:41:24 -0700 |
commit | 0f836ca4c122f4ef096110d652a6326fe34e6961 (patch) | |
tree | 5b249f2f255a7260d1a8926eb0a9e6d7e45ac524 /drivers/base/dd.c | |
parent | 4508a7a734b111b8b7e39986237d84acb1168dd0 (diff) | |
download | blackbird-op-linux-0f836ca4c122f4ef096110d652a6326fe34e6961.tar.gz blackbird-op-linux-0f836ca4c122f4ef096110d652a6326fe34e6961.zip |
[PATCH] driver core: safely unbind drivers for devices not on a bus
This patch (as667) changes the __device_release_driver() routine to
prevent it from crashing when it runs across a device not on any bus.
This seems logical, inasmuch as the corresponding bus_add_device()
routine has an explicit check allowing it to accept such devices.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/base/dd.c')
-rw-r--r-- | drivers/base/dd.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/base/dd.c b/drivers/base/dd.c index 730a9ce0a14a..889c71111239 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c @@ -209,7 +209,7 @@ static void __device_release_driver(struct device * dev) sysfs_remove_link(&dev->kobj, "driver"); klist_remove(&dev->knode_driver); - if (dev->bus->remove) + if (dev->bus && dev->bus->remove) dev->bus->remove(dev); else if (drv->remove) drv->remove(dev); |