On Thu, 2006-03-02 at 22:58 +0900, MUNEDA Takahiro wrote:
> Hi,
>
> Current acpiphp does not free acpi_device structs when the
> PCI devices are removed. When the PCI device is added,
> acpi_bus_add() fails because acpi_device struct has already
> exists. So, _PRT method does not evaluate.
>
> This patch fixes this issue.
>
> This patch is against 2.6.16-rc5-mm1 plus following patches.
>
> o Kristen's latest patch set
> o Kenji's acpiphp: Scan slots under the nested P2P bridge
>
> I tested this patch on my tiger4 box except for dock eject
> case, because I don't have any pc which has _DCK method.
>
I tested this on a couple laptops that have _DCK methods - It seems to
work fine, however, see comment below:
<snip>
> Index: linux-2.6.16-rc5-mm1/drivers/pci/hotplug/acpiphp_dock.c
> ===================================================================
> --- linux-2.6.16-rc5-mm1.orig/drivers/pci/hotplug/acpiphp_dock.c
> +++ linux-2.6.16-rc5-mm1/drivers/pci/hotplug/acpiphp_dock.c
> @@ -290,6 +290,7 @@ handle_hotplug_event_dock(acpi_handle ha
> dbg("EJECT request\n");
> if (!dock_in_progress() && dock_present()) {
> hotplug_pci(type);
> + acpiphp_bus_trim(handle);
This is not necessary. hotplug_pci() will pass the eject event down to
the acpiphp handle_hotplug_event_func() routine, which will call
disable_device() and remove the bus that way as part of your new patch.
> undock();
> eject_dock();
> if (dock_present())
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html