diff --git a/drivers/base/bus.c b/drivers/base/bus.c index b850cecb147b..0f682f7d0797 100644 --- a/drivers/base/bus.c +++ b/drivers/base/bus.c @@ -245,13 +245,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