Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ACPI: ipmi: Remove address space handler in error path

The acpi_install_address_space_handler() is coupled with
acpi_remove_address_space_handler() in ipmi module init/exit, but
it forgets to remove the handler in acpi_ipmi_init() if the
ipmi_smi_watcher_register() call fails, so add the removal of the
address space handler in error path.

Signed-off-by: Hanjun Guo <guohanjun@huawei.com>
[ rjw: Changelog edits ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

authored by

Hanjun Guo and committed by
Rafael J. Wysocki
64887bbd f00d2d32

+6 -1
+6 -1
drivers/acpi/acpi_ipmi.c
··· 597 597 pr_warn("Can't register IPMI opregion space handle\n"); 598 598 return -EINVAL; 599 599 } 600 + 600 601 result = ipmi_smi_watcher_register(&driver_data.bmc_events); 601 - if (result) 602 + if (result) { 603 + acpi_remove_address_space_handler(ACPI_ROOT_OBJECT, 604 + ACPI_ADR_SPACE_IPMI, 605 + &acpi_ipmi_space_handler); 602 606 pr_err("Can't register IPMI system interface watcher\n"); 607 + } 603 608 604 609 return result; 605 610 }