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

Reply via email to