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?

Thanks.
Asmaa

Reply via email to