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 14:41:24 -0400 |
| commit | 0f836ca4c122f4ef096110d652a6326fe34e6961 (patch) | |
| tree | 5b249f2f255a7260d1a8926eb0a9e6d7e45ac524 | |
| parent | 4508a7a734b111b8b7e39986237d84acb1168dd0 (diff) | |
[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>
| -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) | |||
| 209 | sysfs_remove_link(&dev->kobj, "driver"); | 209 | sysfs_remove_link(&dev->kobj, "driver"); |
| 210 | klist_remove(&dev->knode_driver); | 210 | klist_remove(&dev->knode_driver); |
| 211 | 211 | ||
| 212 | if (dev->bus->remove) | 212 | if (dev->bus && dev->bus->remove) |
| 213 | dev->bus->remove(dev); | 213 | dev->bus->remove(dev); |
| 214 | else if (drv->remove) | 214 | else if (drv->remove) |
| 215 | drv->remove(dev); | 215 | drv->remove(dev); |
