ACPI: Fix oops on module insert/remove (Matthew Tippett)
authorAndy Grover <agrover@groveronline.com>
Mon, 16 Dec 2002 03:22:23 +0000 (19:22 -0800)
committerAndy Grover <agrover@groveronline.com>
Mon, 16 Dec 2002 03:22:23 +0000 (19:22 -0800)
drivers/acpi/ac.c
drivers/acpi/battery.c
drivers/acpi/button.c
drivers/acpi/fan.c
drivers/acpi/power.c
drivers/acpi/processor.c
drivers/acpi/thermal.c

index 4c6fb47..a322828 100644 (file)
@@ -183,8 +183,10 @@ acpi_ac_remove_fs (
 {
        ACPI_FUNCTION_TRACE("acpi_ac_remove_fs");
 
-       if (acpi_device_dir(device))
+       if (acpi_device_dir(device)) {
                remove_proc_entry(acpi_device_bid(device), acpi_ac_dir);
+               acpi_device_dir(device) = NULL;
+       }
 
        return_VALUE(0);
 }
index d9f2b3c..c821ef4 100644 (file)
@@ -669,8 +669,10 @@ acpi_battery_remove_fs (
 {
        ACPI_FUNCTION_TRACE("acpi_battery_remove_fs");
 
-       if (acpi_device_dir(device))
+       if (acpi_device_dir(device)) {
                remove_proc_entry(acpi_device_bid(device), acpi_battery_dir);
+               acpi_device_dir(device) = NULL;
+       }
 
        return_VALUE(0);
 }
index ef1861b..ef82cf9 100644 (file)
@@ -179,8 +179,10 @@ acpi_button_remove_fs (
 {
        ACPI_FUNCTION_TRACE("acpi_button_remove_fs");
 
-       if (acpi_device_dir(device))
+       if (acpi_device_dir(device)) {
                remove_proc_entry(acpi_device_bid(device), acpi_button_dir);
+               acpi_device_dir(device) = NULL;
+       }
 
        return_VALUE(0);
 }
index 77a79ee..e262dd1 100644 (file)
@@ -181,8 +181,10 @@ acpi_fan_remove_fs (
 {
        ACPI_FUNCTION_TRACE("acpi_fan_remove_fs");
 
-       if (acpi_device_dir(device))
+       if (acpi_device_dir(device)) {
                remove_proc_entry(acpi_device_bid(device), acpi_fan_dir);
+               acpi_device_dir(device) = NULL;
+       }
 
        return_VALUE(0);
 }
index 72df49e..bbca62c 100644 (file)
@@ -467,8 +467,10 @@ acpi_power_remove_fs (
 {
        ACPI_FUNCTION_TRACE("acpi_power_remove_fs");
 
-       if (acpi_device_dir(device))
+       if (acpi_device_dir(device)) {
                remove_proc_entry(acpi_device_bid(device), acpi_power_dir);
+               acpi_device_dir(device) = NULL;
+       }
 
        return_VALUE(0);
 }
index 8167bf2..961f8ce 100644 (file)
@@ -2348,8 +2348,10 @@ acpi_processor_remove_fs (
 {
        ACPI_FUNCTION_TRACE("acpi_processor_remove_fs");
 
-       if (acpi_device_dir(device))
+       if (acpi_device_dir(device)) {
                remove_proc_entry(acpi_device_bid(device), acpi_processor_dir);
+               acpi_device_dir(device) = NULL;
+       }
 
        return_VALUE(0);
 }
index 80f3785..536d8aa 100644 (file)
@@ -1123,8 +1123,10 @@ acpi_thermal_remove_fs (
 {
        ACPI_FUNCTION_TRACE("acpi_thermal_remove_fs");
 
-       if (acpi_device_dir(device))
+       if (acpi_device_dir(device)) {
                remove_proc_entry(acpi_device_bid(device), acpi_thermal_dir);
+               acpi_device_dir(device) = NULL;
+       }
 
        return_VALUE(0);
 }