Messages in this thread | | | Date | Fri, 8 Jan 2021 20:28:15 -0600 | From | Corey Minyard <> | Subject | Re: ipmi_msghandler.c question |
| |
On Fri, Jan 08, 2021 at 11:37:04PM +0000, Asmaa Mnebhi wrote: > Hi Corey, > > I have a question for you related to the following function in ipmi_msghandler.c > > static void __get_guid(struct ipmi_smi *intf) > { > int rv; > struct bmc_device *bmc = intf->bmc; > > bmc->dyn_guid_set = 2; > intf->null_user_handler = guid_handler; > rv = send_guid_cmd(intf, 0); > if (rv) > /* Send failed, no GUID available. */ > bmc->dyn_guid_set = 0; > else > wait_event(intf->waitq, bmc->dyn_guid_set != 2); > > /* dyn_guid_set makes the guid data available. */ > smp_rmb(); > > intf->null_user_handler = NULL; > } > > Why is wait_event used as opposed to wait_event_timeout? In the context where the dyn_guid_set value doesn't change from 2, this would run forever. Wouldn't we want to timeout after a certain amount of time? >
The low-level IPMI driver is guarateed to return a response to a message, though if something goes wrong with the BMC it can take a few seconds to return the failure message. So it shouldn't be an issue.
-corey
> Thanks. > Asmaa
| |