Re: [3.0-git16] Oops at driver_uevent_store().

Tetsuo Handa
2011-08-04T03:55:29Z

Arnaud Lacombe wrote:
> Looking more closely, I'd say I have been too eager in the marking.
> The warning concern `pci_eisa_driver', not `pci_eisa_pci_tbl' which is
> also referenced by MODULE_DEVICE_TABLE().
>
> Does removing the annotation from `pci_eisa_pci_tbl' fix the BUG ?
No.

-static struct pci_device_id __initdata pci_eisa_pci_tbl[] = {
+static struct pci_device_id pci_eisa_pci_tbl[] = {

did not help.

Printing dmesg in verbose showed below three lines.

[ 0.262828] EISA bus registered
[ 6.291117] EISA: Probing bus 0 at eisa.0
[ 6.295445] EISA: Cannot allocate resource for mainboard

Manual printk() tracing showed below callchain.

virtual_eisa_root_init() calls eisa_root_register().
eisa_root_register() calls eisa_probe().
eisa_probe() returns -EBUSY since root->force_probe == 0.
eisa_root_register() calls release_resource() and returns -EBUSY.
virtual_eisa_root_init() calls platform_device_unregister() and returns -1.

Also, eisa_root_register() in pci_eisa_init() is not called.

So, it seems that something is wrong with cleanup.
pci_unregister_driver() is missing?