Messages in this thread | | | From | Tang Chen <> | Subject | [PATCH v3 0/3] ACPI: container hot remove support. | Date | Wed, 31 Oct 2012 15:27:48 +0800 |
| |
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(-)
| |