ACPI: thinkpad-acpi: fix the module init failure path
commita88227127814194a02383c050be890ef61d645a8
authorHenrique de Moraes Holschuh <hmh@hmh.eng.br>
Fri, 27 Jul 2007 19:23:42 +0000 (27 16:23 -0300)
committerHenrique de Moraes Holschuh <hmh@hmh.eng.br>
Wed, 15 Aug 2007 05:04:03 +0000 (15 02:04 -0300)
treebd932eb1d3843423f7f720be59497d67ac9946ba
parentbd8bd886fac9100eb6bf6ae985b213a9f0e193f3
ACPI: thinkpad-acpi: fix the module init failure path

Thomas Renninger reports that if one tries to load thinkpad-acpi in a
non-thinkpad, one gets:

Call Trace:
 [<ffffffff802fa57d>] kref_get+0x2f/0x36
 [<ffffffff802f97f7>] kobject_get+0x12/0x17
 [<ffffffff8036dfd7>] get_driver+0x14/0x1a
 [<ffffffff8036dfee>] driver_remove_file+0x11/0x32
 [<ffffffff8823b9be>] :thinkpad_acpi:thinkpad_acpi_module_exit+0xa8/0xfc
 [<ffffffff8824b8a0>] :thinkpad_acpi:thinkpad_acpi_module_init+0x74a/0x776
 [<ffffffff8024f968>] __link_module+0x0/0x25
 [<ffffffff80252269>] sys_init_module+0x162c/0x178f
 [<ffffffff8020bc2e>] system_call+0x7e/0x83

So, track if the platform driver and its driver attributes were registered,
and only deallocate them in that case.

This patch is based on Thomas Renninger's patch for the issue.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Cc: Thomas Renninger <trenn@suse.de>
drivers/misc/thinkpad_acpi.c
drivers/misc/thinkpad_acpi.h