diff options
author | Benjamin Tissoires <benjamin.tissoires@redhat.com> | 2016-07-29 11:08:41 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-08-02 19:27:20 -0400 |
commit | e370cc8640305aa2fa42b852cccd89e80c28d9a0 (patch) | |
tree | a263b28989724854720f2d1a02fdb6fdaad3ebcb /drivers/acpi/button.c | |
parent | 3540c32a9ae4cb23ab70f7798f45affc02762fa7 (diff) |
ACPI / button: remove pointer to old lid_sysfs on unbind
When we removed the procfs dir on error or if the driver is
unbound, the two variables acpi_lid_dir and acpi_button_dir
were not reset. On the next rebind, those static variables
were not null and we couldn't re-register the device again.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Acked-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi/button.c')
-rw-r--r-- | drivers/acpi/button.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c index 148f4e5ca104..31abb0bdd4f2 100644 --- a/drivers/acpi/button.c +++ b/drivers/acpi/button.c | |||
@@ -232,8 +232,10 @@ remove_dev_dir: | |||
232 | acpi_device_dir(device) = NULL; | 232 | acpi_device_dir(device) = NULL; |
233 | remove_lid_dir: | 233 | remove_lid_dir: |
234 | remove_proc_entry(ACPI_BUTTON_SUBCLASS_LID, acpi_button_dir); | 234 | remove_proc_entry(ACPI_BUTTON_SUBCLASS_LID, acpi_button_dir); |
235 | acpi_lid_dir = NULL; | ||
235 | remove_button_dir: | 236 | remove_button_dir: |
236 | remove_proc_entry(ACPI_BUTTON_CLASS, acpi_root_dir); | 237 | remove_proc_entry(ACPI_BUTTON_CLASS, acpi_root_dir); |
238 | acpi_button_dir = NULL; | ||
237 | goto done; | 239 | goto done; |
238 | } | 240 | } |
239 | 241 | ||
@@ -250,7 +252,9 @@ static int acpi_button_remove_fs(struct acpi_device *device) | |||
250 | acpi_lid_dir); | 252 | acpi_lid_dir); |
251 | acpi_device_dir(device) = NULL; | 253 | acpi_device_dir(device) = NULL; |
252 | remove_proc_entry(ACPI_BUTTON_SUBCLASS_LID, acpi_button_dir); | 254 | remove_proc_entry(ACPI_BUTTON_SUBCLASS_LID, acpi_button_dir); |
255 | acpi_lid_dir = NULL; | ||
253 | remove_proc_entry(ACPI_BUTTON_CLASS, acpi_root_dir); | 256 | remove_proc_entry(ACPI_BUTTON_CLASS, acpi_root_dir); |
257 | acpi_button_dir = NULL; | ||
254 | 258 | ||
255 | return 0; | 259 | return 0; |
256 | } | 260 | } |