Message ID | 1621845308-19052-1-git-send-email-guohanjun@huawei.com (mailing list archive) |
---|---|
State | Mainlined, archived |
Headers | show |
Series | ACPI: ipmi: Remove address space handler in error path | expand |
On Mon, May 24, 2021 at 10:45 AM Hanjun Guo <guohanjun@huawei.com> wrote: > > The acpi_install_address_space_handler() is coupled with > acpi_remove_address_space_handler() in ipmi module init/exit, but failed > to remove the handler in acpi_ipmi_init() if the ipmi_smi_watcher_register() > failed, so adding the removal of the address space handler in error path. > > Signed-off-by: Hanjun Guo <guohanjun@huawei.com> > --- > drivers/acpi/acpi_ipmi.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/acpi/acpi_ipmi.c b/drivers/acpi/acpi_ipmi.c > index bbd00d9..a5fe292 100644 > --- a/drivers/acpi/acpi_ipmi.c > +++ b/drivers/acpi/acpi_ipmi.c > @@ -597,9 +597,14 @@ static int __init acpi_ipmi_init(void) > pr_warn("Can't register IPMI opregion space handle\n"); > return -EINVAL; > } > + > result = ipmi_smi_watcher_register(&driver_data.bmc_events); > - if (result) > + if (result) { > + acpi_remove_address_space_handler(ACPI_ROOT_OBJECT, > + ACPI_ADR_SPACE_IPMI, > + &acpi_ipmi_space_handler); > pr_err("Can't register IPMI system interface watcher\n"); > + } > > return result; > } > -- Applied as 5.14 material with some edits in the changelog, thanks!
diff --git a/drivers/acpi/acpi_ipmi.c b/drivers/acpi/acpi_ipmi.c index bbd00d9..a5fe292 100644 --- a/drivers/acpi/acpi_ipmi.c +++ b/drivers/acpi/acpi_ipmi.c @@ -597,9 +597,14 @@ static int __init acpi_ipmi_init(void) pr_warn("Can't register IPMI opregion space handle\n"); return -EINVAL; } + result = ipmi_smi_watcher_register(&driver_data.bmc_events); - if (result) + if (result) { + acpi_remove_address_space_handler(ACPI_ROOT_OBJECT, + ACPI_ADR_SPACE_IPMI, + &acpi_ipmi_space_handler); pr_err("Can't register IPMI system interface watcher\n"); + } return result; }
The acpi_install_address_space_handler() is coupled with acpi_remove_address_space_handler() in ipmi module init/exit, but failed to remove the handler in acpi_ipmi_init() if the ipmi_smi_watcher_register() failed, so adding the removal of the address space handler in error path. Signed-off-by: Hanjun Guo <guohanjun@huawei.com> --- drivers/acpi/acpi_ipmi.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)