If the driver goes into any maintenance mode, disable sysfs access until
it is done.

If the driver goes into reset maintenance mode, disable all messages
until it is done.

Signed-off-by: Corey Minyard <co...@minyard.net>
---
 drivers/char/ipmi/ipmi_msghandler.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/char/ipmi/ipmi_msghandler.c 
b/drivers/char/ipmi/ipmi_msghandler.c
index f124c0b33db8..72f5f4a0c056 100644
--- a/drivers/char/ipmi/ipmi_msghandler.c
+++ b/drivers/char/ipmi/ipmi_msghandler.c
@@ -2338,6 +2338,11 @@ static int i_ipmi_request(struct ipmi_user     *user,
 
        if (!run_to_completion)
                mutex_lock(&intf->users_mutex);
+       if (intf->maintenance_mode_state == IPMI_MAINTENANCE_MODE_STATE_RESET) {
+               /* No messages while the BMC is in reset. */
+               rv = -EBUSY;
+               goto out_err;
+       }
        if (intf->in_shutdown) {
                rv = -ENODEV;
                goto out_err;
@@ -2639,6 +2644,12 @@ static int __bmc_get_device_id(struct ipmi_smi *intf, 
struct bmc_device *bmc,
            (bmc->dyn_id_set && time_is_after_jiffies(bmc->dyn_id_expiry)))
                goto out_noprocessing;
 
+       /* Don't allow sysfs access when in maintenance mode. */
+       if (intf->maintenance_mode_state) {
+               rv = -EBUSY;
+               goto out_noprocessing;
+       }
+
        prev_guid_set = bmc->dyn_guid_set;
        __get_guid(intf);
 
-- 
2.43.0



_______________________________________________
Openipmi-developer mailing list
Openipmi-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openipmi-developer

Reply via email to