[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1350997839-13260-1-git-send-email-tangchen@cn.fujitsu.com>
Date: Tue, 23 Oct 2012 21:10:37 +0800
From: Tang Chen <tangchen@...fujitsu.com>
To: yinghai@...nel.org, bhelgaas@...gle.com, lenb@...nel.org,
jiang.liu@...wei.com, izumi.taku@...fujitsu.com,
isimatu.yasuaki@...fujitsu.com, linux-acpi@...r.kernel.org,
linux-pci@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH 0/2] ACPI: container hot remove support.
Hi,
The container hotplug handler container_notify_cb() didn't implement
the hot-remove functionality. So, these 2 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.
In __acpi_os_execute(), we have the following comments:
We can't run hotplug code in keventd_wq/kacpid_wq/kacpid_notify_wq
because the hotplug code may call driver .remove() functions,
which invoke flush_scheduled_work/acpi_os_wait_events_complete
to flush these workqueues.
Actually, I run into the deadlock caused by running hotplug code in
kacpid_wq/kacpid_notify_wq. And I'm not quite sure if I did the right
thing in patch1. So, please give some comments if you have a better idea.
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 (2):
Use kacpi_hotplug_wq to handle container hotplug event.
Container hot remove support.
drivers/acpi/container.c | 102 +++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 92 insertions(+), 10 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists