|
@@ -254,13 +254,15 @@ static ssize_t store_drivers_probe(struct bus_type *bus,
|
|
const char *buf, size_t count)
|
|
const char *buf, size_t count)
|
|
{
|
|
{
|
|
struct device *dev;
|
|
struct device *dev;
|
|
|
|
+ int err = -EINVAL;
|
|
|
|
|
|
dev = bus_find_device_by_name(bus, NULL, buf);
|
|
dev = bus_find_device_by_name(bus, NULL, buf);
|
|
if (!dev)
|
|
if (!dev)
|
|
return -ENODEV;
|
|
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;
|
|
}
|
|
}
|
|
|
|
|
|
static struct device *next_device(struct klist_iter *i)
|
|
static struct device *next_device(struct klist_iter *i)
|