Hi Corey, On Thu, Aug 07, 2025 at 06:02:33PM -0500, Corey Minyard wrote: > If the driver goes into any maintenance mode, disable sysfs access until > it is done. >
Why specifically sysfs reads during FW update state? Is there an expectation that during a FW update, that redfish/ipmi/etc... are chunking/buffering the FW payloads to the device, thus needs write access? I'm assuming that the device is blocking waiting for paylods to finish, so sending additional messages just get ignored? > 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 > Best, Fred _______________________________________________ Openipmi-developer mailing list Openipmi-developer@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openipmi-developer