Re: [Pcihpd-discuss] Re: [patch 0/4] Hot Dock/Undock support

From: Kristen Accardi
Date: Wed Jan 18 2006 - 17:00:00 EST


On Wed, 2006-01-18 at 21:42 +0100, Pavel Machek wrote:
> Hi!
>
> There's a bug in error handling:
>
> int __init acpiphp_glue_init(void)
> {
> int num = 0;
>
> acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
> ACPI_UINT32_MAX, find_root_bridges, &num,
> NULL);
>
> if (num <= 0)
> return -1;
> else
> acpi_pci_register_driver(&acpi_pci_hp_driver);
>
> return 0;
> }
>
> You register driver here, but if acpiphp_get_num_slots() returns 0
> later, you return -ENODEV, aborting load of driver, but without
> undergistering that driver. It oopses after a while. Same problem if
> init_slots() returns error.
>
> Pavel

This one needs some more thought on how to fix, because I'm not certain
if we have the code in place to back out of this once we find root
bridges that exist. it might be easy, but it might not be.

-
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/