Re: initcall at ... returned with error code -19 (Was: Re: 2.6.16-rc5-mm2)

From: Bjorn Helgaas
Date: Tue Mar 07 2006 - 12:29:07 EST


On Tuesday 07 March 2006 06:10, Jes Sorensen wrote:
> >>>>> "Paul" == Paul Jackson <pj@xxxxxxx> writes:
> Paul> Andrew wrote:
> >> That's OK - it's -ENODEV.
>
> Paul> I can't help but wonder if the particular case of -ENODEV should
> Paul> be kept quiet, as in the following totally untested patch:
>
> I'd subscribe to that. It seems a bit wrong to return 0 in a
> loadable module if nothing is found, and some of the ones people have
> posted patches for converting can be either modules or static.

Yeah, maybe. But it feels a little like the question of whether
{pci,pnp,acpi_bus}_register_driver() should return the number of
devices found. The consensus is that these functions should return
only a negative error, or zero for success, leaving any counting of
devices to the driver's .probe() or .add() method.

I think a loadable driver's init function *should* return success
even if no device is yet present. Maybe you want to load the driver
before hot-adding the device.

The common idiom of, e.g.,

static int __init serial8250_pci_init(void)
{
return pci_register_driver(&serial_pci_driver);
}

should remain acceptable, though it returns 0 even if no devices
are found.

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