summaryrefslogtreecommitdiff
path: root/drivers/char
diff options
context:
space:
mode:
authorTerry Duncan <terry.s.duncan@intel.com>2021-02-25 07:50:27 +0300
committerCorey Minyard <cminyard@mvista.com>2021-03-11 04:00:02 +0300
commitc6ddd5f1c3f3254034f8e9ba741af4a3b0260998 (patch)
treedce527e5ba23c2693a89b26adaf0fbf6cf9acabe /drivers/char
parenta74e6a014c9d4d4161061f770c9b4f98372ac778 (diff)
downloadlinux-c6ddd5f1c3f3254034f8e9ba741af4a3b0260998.tar.xz
ipmi: Refine retry conditions for getting device id
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>
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/ipmi/ipmi_msghandler.c6
-rw-r--r--drivers/char/ipmi/ipmi_si_intf.c6
2 files changed, 4 insertions, 8 deletions
diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
index c44ad18464f1..f19f0f967e28 100644
--- a/drivers/char/ipmi/ipmi_msghandler.c
+++ b/drivers/char/ipmi/ipmi_msghandler.c
@@ -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",
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index 5eac94cf4ff8..be41a473e3c2 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -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);