bnxt_en: Fix handling FRAG_ERR when NVM_INSTALL_UPDATE cmd fails
[ Upstream commit dd2ebf3404c7c295014bc025dea23960960ceb1a ] If FW returns FRAG_ERR in response error code, driver is resending the command only when HWRM command returns success. Fix the code to resend NVM_INSTALL_UPDATE command with DEFRAG install flags, if FW returns FRAG_ERR in its response error code. Fixes: cb4d1d626145 ("bnxt_en: Retry failed NVM_INSTALL_UPDATE with defragmentation flag enabled.") Signed-off-by: Vasundhara Volam <vasundhara-v.volam@broadcom.com> Signed-off-by: Michael Chan <michael.chan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
060fc2173a
commit
1c5e076608
@ -1667,21 +1667,19 @@ static int bnxt_flash_package_from_file(struct net_device *dev,
|
||||
mutex_lock(&bp->hwrm_cmd_lock);
|
||||
hwrm_err = _hwrm_send_message(bp, &install, sizeof(install),
|
||||
INSTALL_PACKAGE_TIMEOUT);
|
||||
if (hwrm_err)
|
||||
goto flash_pkg_exit;
|
||||
|
||||
if (resp->error_code) {
|
||||
if (hwrm_err) {
|
||||
u8 error_code = ((struct hwrm_err_output *)resp)->cmd_err;
|
||||
|
||||
if (error_code == NVM_INSTALL_UPDATE_CMD_ERR_CODE_FRAG_ERR) {
|
||||
if (resp->error_code && error_code ==
|
||||
NVM_INSTALL_UPDATE_CMD_ERR_CODE_FRAG_ERR) {
|
||||
install.flags |= cpu_to_le16(
|
||||
NVM_INSTALL_UPDATE_REQ_FLAGS_ALLOWED_TO_DEFRAG);
|
||||
hwrm_err = _hwrm_send_message(bp, &install,
|
||||
sizeof(install),
|
||||
INSTALL_PACKAGE_TIMEOUT);
|
||||
if (hwrm_err)
|
||||
goto flash_pkg_exit;
|
||||
}
|
||||
if (hwrm_err)
|
||||
goto flash_pkg_exit;
|
||||
}
|
||||
|
||||
if (resp->result) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user