ipmi:msghandler: Shut down lower layer first at unregister

This makes sure any outstanding messages are returned to the user before
the interface is cleaned up.

Signed-off-by: Corey Minyard <cminyard@mvista.com>
This commit is contained in:
Corey Minyard
2025-03-21 16:46:02 -05:00
parent 60afcc429c
commit 8871e77ec7

View File

@@ -3738,7 +3738,13 @@ void ipmi_unregister_smi(struct ipmi_smi *intf)
list_del(&intf->link);
mutex_unlock(&ipmi_interfaces_mutex);
/* At this point no users can be added to the interface. */
/*
* At this point no users can be added to the interface and no
* new messages can be sent.
*/
if (intf->handlers->shutdown)
intf->handlers->shutdown(intf->send_info);
device_remove_file(intf->si_dev, &intf->nr_msgs_devattr);
device_remove_file(intf->si_dev, &intf->nr_users_devattr);
@@ -3761,9 +3767,6 @@ void ipmi_unregister_smi(struct ipmi_smi *intf)
}
mutex_unlock(&intf->users_mutex);
if (intf->handlers->shutdown)
intf->handlers->shutdown(intf->send_info);
cleanup_smi_msgs(intf);
ipmi_bmc_unregister(intf);