]> git.baikalelectronics.ru Git - kernel.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)
commit1d128fc56005a0fefacf78aa54aed9eb728a7b7c
treee530b57c254536aac1c71602552bbde0e71cffe3
parent21cecd0c7ba0febf121e09469fd2e7d6e75d0f3e
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