summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorCorey Minyard <cminyard@mvista.com>2018-04-05 23:44:12 +0200
committerCorey Minyard <cminyard@mvista.com>2018-04-18 17:22:54 +0200
commitb7780dab90e8da302bc7d0d1b39b538b822017e8 (patch)
tree46a83506c977f5a8b2a81f9535b1aabf1441ad36 /include
parentipmi_devintf: Small lock rework (diff)
downloadlinux-b7780dab90e8da302bc7d0d1b39b538b822017e8.tar.xz
linux-b7780dab90e8da302bc7d0d1b39b538b822017e8.zip
ipmi: Add shutdown functions for users and interfaces
Since things that IPMI uses can be hot-swapped, the users and interfaces really need to be able to handle this. Add the functions so the users and interfaces can implement them, the actual function will be added after everything is ready. Signed-off-by: Corey Minyard <cminyard@mvista.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/ipmi.h8
-rw-r--r--include/linux/ipmi_smi.h6
2 files changed, 14 insertions, 0 deletions
diff --git a/include/linux/ipmi.h b/include/linux/ipmi.h
index 3474f04cf9aa..d89bea1e457a 100644
--- a/include/linux/ipmi.h
+++ b/include/linux/ipmi.h
@@ -97,6 +97,14 @@ struct ipmi_user_hndl {
* been set up to handle run to completion.
*/
void (*ipmi_panic_handler)(void *handler_data);
+
+ /*
+ * Called when the interface has been removed. After this returns
+ * the user handle will be invalid. The interface may or may
+ * not be usable when this is called, but it will return errors
+ * if it is not usable.
+ */
+ void (*shutdown)(void *handler_data);
};
/* Create a new user of the IPMI layer on the given interface number. */
diff --git a/include/linux/ipmi_smi.h b/include/linux/ipmi_smi.h
index 9e5c3079d232..bdcda4741c89 100644
--- a/include/linux/ipmi_smi.h
+++ b/include/linux/ipmi_smi.h
@@ -73,6 +73,12 @@ struct ipmi_smi_handlers {
ipmi_smi_t new_intf);
/*
+ * When called, the low-level interface should disable all
+ * processing, it should be complete shut down when it returns.
+ */
+ void (*shutdown)(void *send_info);
+
+ /*
* Get the detailed private info of the low level interface and store
* it into the structure of ipmi_smi_data. For example: the
* ACPI device handle will be returned for the pnp_acpi IPMI device.