Commit c6ddd5f1 authored by Terry Duncan's avatar Terry Duncan Committed by Corey Minyard
Browse files

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: default avatarTerry Duncan <terry.s.duncan@intel.com>
Signed-off-by: default avatarJae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
Message-Id: <20210225045027.9344-1-jae.hyun.yoo@linux.intel.com>
Signed-off-by: default avatarCorey Minyard <cminyard@mvista.com>
parent a74e6a01
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -2447,10 +2447,8 @@ static int __get_device_id(struct ipmi_smi *intf, struct bmc_device *bmc)
	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",
+2 −4
Original line number Diff line number Diff line
@@ -1346,10 +1346,8 @@ static int try_get_dev_id(struct smi_info *smi_info)
		/* 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);