]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ACPI: thinkpad-acpi: fix the module init failure path
authorHenrique de Moraes Holschuh <hmh@hmh.eng.br>
Fri, 27 Jul 2007 20:04:40 +0000 (17:04 -0300)
committerLen Brown <len.brown@intel.com>
Fri, 3 Aug 2007 19:32:58 +0000 (15:32 -0400)
commitac36393de6034be7266264a435360e7628849005
treee530b57c254536aac1c71602552bbde0e71cffe3
parent7a883eaf62f4b943ebec738ce3b0796c67ef5d32
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>
Acked-by: Thomas Renninger <trenn@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/misc/thinkpad_acpi.c
drivers/misc/thinkpad_acpi.h