> +static int __driver_probe_device(struct device_driver *drv, struct
> +device *dev) {
> +     if (drv->delay_probe && !dev->init_delayed_probe) {
> +             dev_info(dev, "Driver %s requests probe deferral on init\n",
> +                      drv->name);
> +             dev->init_delayed_probe = true;
> +             driver_deferred_probe_add(dev);
> +             return -EPROBE_DEFER;
> +     }
> +
> +     return really_probe(dev, drv);
> +}

Perhaps this is a silly question, but what guarantees that the deferred probe
list will actually be triggered, e.g., in case the delayed device is the last 
device
in the system?

[From drivers/base/dd.c  - "A successful driver probe will trigger moving all
devices from the pending to the active list so that the workqueue will
eventually retry them]

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to