Commit 8cec0940 authored by Edwin Peer's avatar Edwin Peer Committed by David S. Miller

bnxt_en: Improve kernel log messages related to ethtool reset.

Kernel log messages for failed AP reset commands should be suppressed.
These are expected to fail on devices that do not have an AP.  Add
missing driver reload message after AP reset and log it in a common
way without duplication.
Signed-off-by: default avatarEdwin Peer <edwin.peer@broadcom.com>
Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 7a13240e
...@@ -1762,9 +1762,14 @@ static int bnxt_hwrm_firmware_reset(struct net_device *dev, u8 proc_type, ...@@ -1762,9 +1762,14 @@ static int bnxt_hwrm_firmware_reset(struct net_device *dev, u8 proc_type,
req.selfrst_status = self_reset; req.selfrst_status = self_reset;
req.flags = flags; req.flags = flags;
rc = hwrm_send_message(bp, &req, sizeof(req), HWRM_CMD_TIMEOUT); if (proc_type == FW_RESET_REQ_EMBEDDED_PROC_TYPE_AP) {
if (rc == -EACCES) rc = hwrm_send_message_silent(bp, &req, sizeof(req),
bnxt_print_admin_err(bp); HWRM_CMD_TIMEOUT);
} else {
rc = hwrm_send_message(bp, &req, sizeof(req), HWRM_CMD_TIMEOUT);
if (rc == -EACCES)
bnxt_print_admin_err(bp);
}
return rc; return rc;
} }
...@@ -2999,6 +3004,7 @@ static void bnxt_self_test(struct net_device *dev, struct ethtool_test *etest, ...@@ -2999,6 +3004,7 @@ static void bnxt_self_test(struct net_device *dev, struct ethtool_test *etest,
static int bnxt_reset(struct net_device *dev, u32 *flags) static int bnxt_reset(struct net_device *dev, u32 *flags)
{ {
struct bnxt *bp = netdev_priv(dev); struct bnxt *bp = netdev_priv(dev);
bool reload = false;
u32 req = *flags; u32 req = *flags;
if (!req) if (!req)
...@@ -3022,7 +3028,7 @@ static int bnxt_reset(struct net_device *dev, u32 *flags) ...@@ -3022,7 +3028,7 @@ static int bnxt_reset(struct net_device *dev, u32 *flags)
if (!bnxt_firmware_reset_chip(dev)) { if (!bnxt_firmware_reset_chip(dev)) {
netdev_info(dev, "Firmware reset request successful.\n"); netdev_info(dev, "Firmware reset request successful.\n");
if (!(bp->fw_cap & BNXT_FW_CAP_HOT_RESET)) if (!(bp->fw_cap & BNXT_FW_CAP_HOT_RESET))
netdev_info(dev, "Reload driver to complete reset\n"); reload = true;
*flags &= ~BNXT_FW_RESET_CHIP; *flags &= ~BNXT_FW_RESET_CHIP;
} }
} else if (req == BNXT_FW_RESET_CHIP) { } else if (req == BNXT_FW_RESET_CHIP) {
...@@ -3035,6 +3041,7 @@ static int bnxt_reset(struct net_device *dev, u32 *flags) ...@@ -3035,6 +3041,7 @@ static int bnxt_reset(struct net_device *dev, u32 *flags)
if (bp->hwrm_spec_code >= 0x10803) { if (bp->hwrm_spec_code >= 0x10803) {
if (!bnxt_firmware_reset_ap(dev)) { if (!bnxt_firmware_reset_ap(dev)) {
netdev_info(dev, "Reset application processor successful.\n"); netdev_info(dev, "Reset application processor successful.\n");
reload = true;
*flags &= ~BNXT_FW_RESET_AP; *flags &= ~BNXT_FW_RESET_AP;
} }
} else if (req == BNXT_FW_RESET_AP) { } else if (req == BNXT_FW_RESET_AP) {
...@@ -3042,6 +3049,9 @@ static int bnxt_reset(struct net_device *dev, u32 *flags) ...@@ -3042,6 +3049,9 @@ static int bnxt_reset(struct net_device *dev, u32 *flags)
} }
} }
if (reload)
netdev_info(dev, "Reload driver to complete reset\n");
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment