* [patch 09/12] acpi: fix container's notify handler to handle proper cases properly
@ 2005-02-23 9:53 akpm-3NddpPZAyC0
[not found] ` <200502230953.j1N9rMN2020714-bipKiLWnuIsyyg0EjBt7GtHuzzzSOjJt@public.gmane.org>
0 siblings, 1 reply; 2+ messages in thread
From: akpm-3NddpPZAyC0 @ 2005-02-23 9:53 UTC (permalink / raw)
To: len.brown-ral2JQCrhuEAvxtiuMwx3w
Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f, akpm-3NddpPZAyC0,
tokunaga.keiich-+CUm20s59erQFUHtdCDX3A
From: Keiichiro Tokunaga <tokunaga.keiich-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
This is to fix container's ACPI notify handler to handle proper cases
properly.
Previously, the handler tried to make a container device be offline if an
ACPI_NOTIFY_BUS/DEVICE_CHECK notification is performed on the device was
present and has its acpi_device. But, the condition is weird. Whenever
the notification is performed, there should be only the following two
conditions:
1. the device is present, but does not have its acpi_device.
2. the device is not present, but has its acpi_device.
#1 is a hot-addition case, which was handled properly also in previous
handler. #2 is a surprising hot-removal case, which was not handled in
previous handler.
Signed-off-by: Keiichiro Tokunaga <tokunaga.keiich-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
Signed-off-by: Andrew Morton <akpm-3NddpPZAyC0@public.gmane.org>
---
25-akpm/drivers/acpi/container.c | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diff -puN drivers/acpi/container.c~acpi-fix-containers-notify-handler-to-handle-proper-cases-properly drivers/acpi/container.c
--- 25/drivers/acpi/container.c~acpi-fix-containers-notify-handler-to-handle-proper-cases-properly 2005-02-23 01:48:06.000000000 -0800
+++ 25-akpm/drivers/acpi/container.c 2005-02-23 01:48:06.000000000 -0800
@@ -177,13 +177,18 @@ container_notify_cb(acpi_handle handle,
printk("Container driver received %s event\n",
(type == ACPI_NOTIFY_BUS_CHECK)?
"ACPI_NOTIFY_BUS_CHECK":"ACPI_NOTIFY_DEVICE_CHECK");
+ status = acpi_bus_get_device(handle, &device);
if (present) {
- status = acpi_bus_get_device(handle, &device);
if (ACPI_FAILURE(status) || !device) {
result = container_device_add(&device, handle);
if (!result)
- kobject_hotplug(&device->kobj, KOBJ_ONLINE);
- } else {
+ kobject_hotplug(&device->kobj,
+ KOBJ_ONLINE);
+ else
+ printk("Failed to add container\n");
+ }
+ } else {
+ if (ACPI_SUCCESS(status)) {
/* device exist and this is a remove request */
kobject_hotplug(&device->kobj, KOBJ_OFFLINE);
}
_
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2005-03-02 19:08 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-02-23 9:53 [patch 09/12] acpi: fix container's notify handler to handle proper cases properly akpm-3NddpPZAyC0
[not found] ` <200502230953.j1N9rMN2020714-bipKiLWnuIsyyg0EjBt7GtHuzzzSOjJt@public.gmane.org>
2005-03-02 19:08 ` Len Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox