diff options
author | Michael Chan <michael.chan@broadcom.com> | 2019-08-30 06:54:59 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-08-31 00:02:19 +0300 |
commit | 230d1f0de754b483ec6eefc1ca5aaeff2b6b9a4c (patch) | |
tree | 7e785c15d912c7db8d10de3751ef1e277db0536b /drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | |
parent | 2151fe0830fdb951f8ecfcfe67306fdef2366aa0 (diff) | |
download | linux-230d1f0de754b483ec6eefc1ca5aaeff2b6b9a4c.tar.xz |
bnxt_en: Handle firmware reset.
Add the bnxt_fw_reset() main function to handle firmware reset. This
is triggered by firmware to initiate an orderly reset, for example
when a non-fatal exception condition has been detected. bnxt_fw_reset()
will first wait for all VFs to shutdown and then start the
bnxt_fw_reset_task() work queue to go through the sequence of reset,
re-probe, and re-initialization.
The next patch will add the devlink reporter to start the sequence and
call bnxt_fw_reset().
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c index fc77caf0a076..b2c160947fc8 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c @@ -226,6 +226,9 @@ static int bnxt_send_msg(struct bnxt_en_dev *edev, int ulp_id, struct input *req; int rc; + if (ulp_id != BNXT_ROCE_ULP && bp->fw_reset_state) + return -EBUSY; + mutex_lock(&bp->hwrm_cmd_lock); req = fw_msg->msg; req->resp_addr = cpu_to_le64(bp->hwrm_cmd_resp_dma_addr); |