Hi,

The container hotplug handler container_notify_cb() didn't implement
the hot-remove functionality. So, these 3 patches implement it like
the following way:

patch 1. Do not use kacpid_wq/kacpid_notify_wq to handle container hotplug 
event,
         use kacpi_hotplug_wq instead to avoid deadlock.
         Doing this is to reuse acpi_bus_hot_remove_device() in container
         hot-remove handling.

patch 2. Introduce a new function container_device_remove() to handle
         ACPI_NOTIFY_EJECT_REQUEST event for container.


change log v2 -> v3:

1. Add 1 patch(patch1). As Toshi Kan mentioned, acpi_os_hotplug_execute() is 
already
   kernel. So use it instead of alloc_acpi_hp_work() to add hotplug job onto 
kacpi_hotplug_wq.

2. In patch3: Print caller's function name when container_device_remove() fails 
to help to debug.

3. In patch3: Add commit message to describ why we need to call acpi_bus_trim() 
twice when
   removing devices.

change log v1 -> v2:

1. In patch1: Based on the lastest for-pci-split-pci-root-hp-2 branch from Lu 
Yinghai, 
   use alloc_acpi_hp_work() to add container hotplug work into kacpi_hotplug_wq.

2. In patch2: Allocate ej_event after container is stopped, so that we don't 
need to
   kfree the ej_event if stopping container failed.


This is based on Lu Yinghai's job.
git://git.kernel.org/pub/scm/linux/kernel/git/yinghai/linux-yinghai.git 
for-pci-split-pci-root-hp-2


Tang Chen (3):
  Use acpi_os_hotplug_execute() instead of alloc_acpi_hp_work().
  Use kacpi_hotplug_wq to handle container hotplug event.
  Improve container_notify_cb() to support container hot-remove.

 drivers/acpi/container.c           |   95 +++++++++++++++++++++++++++++++-----
 drivers/acpi/osl.c                 |   28 +++++-----
 drivers/acpi/pci_root_hp.c         |   25 ++++++---
 drivers/pci/hotplug/acpiphp_glue.c |   39 ++++++++-------
 include/acpi/acpiosxf.h            |    7 +--
 5 files changed, 137 insertions(+), 57 deletions(-)

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

Reply via email to