ipmi: Refine retry conditions for getting device id
authorTerry Duncan <terry.s.duncan@intel.com>
Thu, 25 Feb 2021 04:50:27 +0000 (20:50 -0800)
committerCorey Minyard <cminyard@mvista.com>
Thu, 11 Mar 2021 01:00:02 +0000 (19:00 -0600)
Rarely but still failures are observed while getting BMC device ID
so this commit changes the condition to retry to get device id
when cc is not IPMI_CC_NO_ERROR.

Signed-off-by: Terry Duncan <terry.s.duncan@intel.com>
Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
Message-Id: <20210225045027.9344-1-jae.hyun.yoo@linux.intel.com>
Signed-off-by: Corey Minyard <cminyard@mvista.com>
drivers/char/ipmi/ipmi_msghandler.c
drivers/char/ipmi/ipmi_si_intf.c

index c44ad18..f19f0f9 100644 (file)
@@ -2447,10 +2447,8 @@ retry:
        wait_event(intf->waitq, bmc->dyn_id_set != 2);
 
        if (!bmc->dyn_id_set) {
-               if ((bmc->cc == IPMI_DEVICE_IN_FW_UPDATE_ERR
-                    || bmc->cc ==  IPMI_DEVICE_IN_INIT_ERR
-                    || bmc->cc ==  IPMI_NOT_IN_MY_STATE_ERR)
-                    && ++retry_count <= GET_DEVICE_ID_MAX_RETRY) {
+               if (bmc->cc != IPMI_CC_NO_ERROR &&
+                   ++retry_count <= GET_DEVICE_ID_MAX_RETRY) {
                        msleep(500);
                        dev_warn(intf->si_dev,
                            "BMC returned 0x%2.2x, retry get bmc device id\n",
index 5eac94c..be41a47 100644 (file)
@@ -1346,10 +1346,8 @@ retry:
                /* record completion code */
                unsigned char cc = *(resp + 2);
 
-               if ((cc == IPMI_DEVICE_IN_FW_UPDATE_ERR
-                   || cc == IPMI_DEVICE_IN_INIT_ERR
-                   || cc == IPMI_NOT_IN_MY_STATE_ERR)
-                   && ++retry_count <= GET_DEVICE_ID_MAX_RETRY) {
+               if (cc != IPMI_CC_NO_ERROR &&
+                   ++retry_count <= GET_DEVICE_ID_MAX_RETRY) {
                        dev_warn(smi_info->io.dev,
                            "BMC returned 0x%2.2x, retry get bmc device id\n",
                            cc);