|
|
@@ -320,21 +320,25 @@ probe_failed:
|
|
|
dev->driver = NULL;
|
|
|
dev_set_drvdata(dev, NULL);
|
|
|
|
|
|
- if (ret == -EPROBE_DEFER) {
|
|
|
+ switch (ret) {
|
|
|
+ case -EPROBE_DEFER:
|
|
|
/* Driver requested deferred probing */
|
|
|
dev_info(dev, "Driver %s requests probe deferral\n", drv->name);
|
|
|
driver_deferred_probe_add(dev);
|
|
|
/* Did a trigger occur while probing? Need to re-trigger if yes */
|
|
|
if (local_trigger_count != atomic_read(&deferred_trigger_count))
|
|
|
driver_deferred_probe_trigger();
|
|
|
- } else if (ret != -ENODEV && ret != -ENXIO) {
|
|
|
+ break;
|
|
|
+ case -ENODEV:
|
|
|
+ case -ENXIO:
|
|
|
+ pr_debug("%s: probe of %s rejects match %d\n",
|
|
|
+ drv->name, dev_name(dev), ret);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
/* driver matched but the probe failed */
|
|
|
printk(KERN_WARNING
|
|
|
"%s: probe of %s failed with error %d\n",
|
|
|
drv->name, dev_name(dev), ret);
|
|
|
- } else {
|
|
|
- pr_debug("%s: probe of %s rejects match %d\n",
|
|
|
- drv->name, dev_name(dev), ret);
|
|
|
}
|
|
|
/*
|
|
|
* Ignore errors returned by ->probe so that the next driver can try
|