diff --git a/[refs] b/[refs] index 8fc5ec07142f..944b5aca2234 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fbfb14455391b89edcf37327526988dea7849532 +refs/heads/master: c578abbc20762aa58e390e55252959853eeea17e diff --git a/trunk/drivers/base/dd.c b/trunk/drivers/base/dd.c index 510e7884975f..f70513748947 100644 --- a/trunk/drivers/base/dd.c +++ b/trunk/drivers/base/dd.c @@ -136,18 +136,17 @@ static int really_probe(void *void_data) driver_sysfs_remove(dev); dev->driver = NULL; - if (ret == -ENODEV || ret == -ENXIO) { - /* Driver matched, but didn't support device - * or device not found. - * Not an error; keep going. - */ - ret = 0; - } else { + if (ret != -ENODEV && ret != -ENXIO) { /* driver matched but the probe failed */ printk(KERN_WARNING "%s: probe of %s failed with error %d\n", drv->name, dev->bus_id, ret); } + /* + * Ignore errors returned by ->probe so that the next driver can try + * its luck. + */ + ret = 0; done: kfree(data); atomic_dec(&probe_count);