From: Michael Chan <michael.chan@broadcom.com>
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, kuba@kernel.org, gospo@broadcom.com
Subject: [PATCH net-next 06/15] bnxt_en: Add an upper bound for all firmware command timeouts.
Date: Mon, 25 Jan 2021 02:08:12 -0500 [thread overview]
Message-ID: <1611558501-11022-7-git-send-email-michael.chan@broadcom.com> (raw)
In-Reply-To: <1611558501-11022-1-git-send-email-michael.chan@broadcom.com>
From: Vasundhara Volam <vasundhara-v.volam@broadcom.com>
The timeout period for firmware messages is passed to the driver
from the firmware in the response of the first command. This
timeout period is multiplied by a factor for certain long
running commands such as NVRAM commands. In some cases, the
timeout period can become really long and it can cause hung task
warnings if firmware has crashed or is not responding. To avoid
such long delays, cap all firmware commands to a max timeout value
of 40 seconds.
Reviewed-by: Edwin Peer <edwin.peer@broadcom.com>
Signed-off-by: Vasundhara Volam <vasundhara-v.volam@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
---
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 ++
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 1 +
2 files changed, 3 insertions(+)
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
index 2fb9873e0162..c06c5f81f087 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
@@ -4425,6 +4425,8 @@ static int bnxt_hwrm_do_send_msg(struct bnxt *bp, void *msg, u32 msg_len,
if (!timeout)
timeout = DFLT_HWRM_CMD_TIMEOUT;
+ /* Limit timeout to an upper limit */
+ timeout = min(timeout, HWRM_CMD_MAX_TIMEOUT);
/* convert timeout to usec */
timeout *= 1000;
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.h b/drivers/net/ethernet/broadcom/bnxt/bnxt.h
index 867b1d3a134e..cbb338baab07 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.h
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.h
@@ -656,6 +656,7 @@ struct nqe_cn {
#define BNXT_HWRM_MAX_REQ_LEN (bp->hwrm_max_req_len)
#define BNXT_HWRM_SHORT_REQ_LEN sizeof(struct hwrm_short_input)
#define DFLT_HWRM_CMD_TIMEOUT 500
+#define HWRM_CMD_MAX_TIMEOUT 40000
#define SHORT_HWRM_CMD_TIMEOUT 20
#define HWRM_CMD_TIMEOUT (bp->hwrm_cmd_timeout)
#define HWRM_RESET_TIMEOUT ((HWRM_CMD_TIMEOUT) * 4)
--
2.18.1
next prev parent reply other threads:[~2021-01-25 7:25 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-25 7:08 [PATCH net-next 00/15] bnxt_en: Error recovery improvements Michael Chan
2021-01-25 7:08 ` [PATCH net-next 01/15] bnxt_en: Update firmware interface to 1.10.2.11 Michael Chan
2021-01-25 7:08 ` [PATCH net-next 02/15] bnxt_en: Define macros for the various health register states Michael Chan
2021-01-25 7:08 ` [PATCH net-next 03/15] bnxt_en: handle CRASH_NO_MASTER during bnxt_open() Michael Chan
2021-01-25 7:08 ` [PATCH net-next 04/15] bnxt_en: Retry sending the first message to firmware if it is under reset Michael Chan
2021-01-25 7:08 ` [PATCH net-next 05/15] bnxt_en: Move reading VPD info after successful handshake with fw Michael Chan
2021-01-25 7:08 ` Michael Chan [this message]
2021-01-25 7:08 ` [PATCH net-next 07/15] bnxt_en: log firmware debug notifications Michael Chan
2021-01-25 9:24 ` Joe Perches
2021-01-25 7:08 ` [PATCH net-next 08/15] bnxt_en: attempt to reinitialize after aborted reset Michael Chan
2021-01-25 7:08 ` [PATCH net-next 09/15] bnxt_en: Retry open if firmware is in reset Michael Chan
2021-01-25 7:08 ` [PATCH net-next 10/15] bnxt_en: Add bnxt_fw_reset_timeout() helper Michael Chan
2021-01-25 7:08 ` [PATCH net-next 11/15] bnxt_en: Add a new BNXT_STATE_NAPI_DISABLED flag to keep track of NAPI state Michael Chan
2021-01-25 7:08 ` [PATCH net-next 12/15] bnxt_en: Modify bnxt_disable_int_sync() to be called more than once Michael Chan
2021-01-25 7:08 ` [PATCH net-next 13/15] bnxt_en: Improve firmware fatal error shutdown sequence Michael Chan
2021-01-25 7:08 ` [PATCH net-next 14/15] bnxt_en: Consolidate firmware reset event logging Michael Chan
2021-01-25 7:08 ` [PATCH net-next 15/15] bnxt_en: Do not process completion entries after fatal condition detected Michael Chan
2021-01-26 1:37 ` [PATCH net-next 00/15] bnxt_en: Error recovery improvements Willem de Bruijn
2021-01-26 3:23 ` Jakub Kicinski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1611558501-11022-7-git-send-email-michael.chan@broadcom.com \
--to=michael.chan@broadcom.com \
--cc=davem@davemloft.net \
--cc=gospo@broadcom.com \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).