X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blobdiff_plain;f=drivers%2Fbase%2Fbus.c;h=b802cfc66fbc51b714ac272cb5fa25fc29f7b85d;hp=000e7b2006f8f5dc96c269ac3615b8b4668bbd0d;hb=4ff42834c3ddbbdfc8c182d882c0c198643fdd80;hpb=196f020fbbb83d246960548e73a40fd08f3e7866 diff --git a/drivers/base/bus.c b/drivers/base/bus.c index 000e7b2006f8..b802cfc66fbc 100644 --- a/drivers/base/bus.c +++ b/drivers/base/bus.c @@ -240,13 +240,15 @@ static ssize_t store_drivers_probe(struct bus_type *bus, const char *buf, size_t count) { struct device *dev; + int err = -EINVAL; dev = bus_find_device_by_name(bus, NULL, buf); if (!dev) return -ENODEV; - if (bus_rescan_devices_helper(dev, NULL) != 0) - return -EINVAL; - return count; + if (bus_rescan_devices_helper(dev, NULL) == 0) + err = count; + put_device(dev); + return err; } #endif @@ -289,7 +291,7 @@ int bus_for_each_dev(struct bus_type *bus, struct device *start, struct device *dev; int error = 0; - if (!bus) + if (!bus || !bus->p) return -EINVAL; klist_iter_init_node(&bus->p->klist_devices, &i, @@ -323,7 +325,7 @@ struct device *bus_find_device(struct bus_type *bus, struct klist_iter i; struct device *dev; - if (!bus) + if (!bus || !bus->p) return NULL; klist_iter_init_node(&bus->p->klist_devices, &i,