mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 12:03:54 +02:00
Merge branch 'bnxt_en-update-for-net-next'
Michael Chan says: ==================== bnxt_en: Update for net-next The first patch changes the FW message timeout threshold for a warning message. The second patch adjusts the ethtool -w coredump length to suppress a warning. The last 2 patches are small cleanup patches for the bnxt_ulp RoCE auxbus code. v1: https://lore.kernel.org/netdev/20250415174818.1088646-1-michael.chan@broadcom.com/ ==================== Link: https://patch.msgid.link/20250417172448.1206107-1-michael.chan@broadcom.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
59af38cada
|
|
@ -10110,7 +10110,7 @@ static int bnxt_hwrm_ver_get(struct bnxt *bp)
|
|||
struct hwrm_ver_get_input *req;
|
||||
u16 fw_maj, fw_min, fw_bld, fw_rsv;
|
||||
u32 dev_caps_cfg, hwrm_ver;
|
||||
int rc, len;
|
||||
int rc, len, max_tmo_secs;
|
||||
|
||||
rc = hwrm_req_init(bp, req, HWRM_VER_GET);
|
||||
if (rc)
|
||||
|
|
@ -10183,9 +10183,12 @@ static int bnxt_hwrm_ver_get(struct bnxt *bp)
|
|||
bp->hwrm_cmd_max_timeout = le16_to_cpu(resp->max_req_timeout) * 1000;
|
||||
if (!bp->hwrm_cmd_max_timeout)
|
||||
bp->hwrm_cmd_max_timeout = HWRM_CMD_MAX_TIMEOUT;
|
||||
else if (bp->hwrm_cmd_max_timeout > HWRM_CMD_MAX_TIMEOUT)
|
||||
netdev_warn(bp->dev, "Device requests max timeout of %d seconds, may trigger hung task watchdog\n",
|
||||
bp->hwrm_cmd_max_timeout / 1000);
|
||||
max_tmo_secs = bp->hwrm_cmd_max_timeout / 1000;
|
||||
if (bp->hwrm_cmd_max_timeout > HWRM_CMD_MAX_TIMEOUT ||
|
||||
max_tmo_secs > CONFIG_DEFAULT_HUNG_TASK_TIMEOUT) {
|
||||
netdev_warn(bp->dev, "Device requests max timeout of %d seconds, may trigger hung task watchdog (kernel default %ds)\n",
|
||||
max_tmo_secs, CONFIG_DEFAULT_HUNG_TASK_TIMEOUT);
|
||||
}
|
||||
|
||||
if (resp->hwrm_intf_maj_8b >= 1) {
|
||||
bp->hwrm_max_req_len = le16_to_cpu(resp->max_req_win_len);
|
||||
|
|
|
|||
|
|
@ -496,9 +496,16 @@ static int __bnxt_get_coredump(struct bnxt *bp, u16 dump_type, void *buf,
|
|||
start_utc, coredump.total_segs + 1,
|
||||
rc);
|
||||
kfree(coredump.data);
|
||||
*dump_len += sizeof(struct bnxt_coredump_record);
|
||||
if (rc == -ENOBUFS)
|
||||
if (!rc) {
|
||||
*dump_len += sizeof(struct bnxt_coredump_record);
|
||||
/* The actual coredump length can be smaller than the FW
|
||||
* reported length earlier. Use the ethtool provided length.
|
||||
*/
|
||||
if (buf_len)
|
||||
*dump_len = buf_len;
|
||||
} else if (rc == -ENOBUFS) {
|
||||
netdev_err(bp->dev, "Firmware returned large coredump buffer\n");
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ void hwrm_update_token(struct bnxt *bp, u16 seq, enum bnxt_hwrm_wait_state s);
|
|||
|
||||
#define BNXT_HWRM_MAX_REQ_LEN (bp->hwrm_max_req_len)
|
||||
#define BNXT_HWRM_SHORT_REQ_LEN sizeof(struct hwrm_short_input)
|
||||
#define HWRM_CMD_MAX_TIMEOUT 40000U
|
||||
#define HWRM_CMD_MAX_TIMEOUT 60000U
|
||||
#define SHORT_HWRM_CMD_TIMEOUT 20
|
||||
#define HWRM_CMD_TIMEOUT (bp->hwrm_cmd_timeout)
|
||||
#define HWRM_RESET_TIMEOUT ((HWRM_CMD_TIMEOUT) * 4)
|
||||
|
|
|
|||
|
|
@ -148,7 +148,6 @@ void bnxt_unregister_dev(struct bnxt_en_dev *edev)
|
|||
struct net_device *dev = edev->net;
|
||||
struct bnxt *bp = netdev_priv(dev);
|
||||
struct bnxt_ulp *ulp;
|
||||
int i = 0;
|
||||
|
||||
ulp = edev->ulp_tbl;
|
||||
netdev_lock(dev);
|
||||
|
|
@ -164,10 +163,6 @@ void bnxt_unregister_dev(struct bnxt_en_dev *edev)
|
|||
synchronize_rcu();
|
||||
ulp->max_async_event_id = 0;
|
||||
ulp->async_events_bmap = NULL;
|
||||
while (atomic_read(&ulp->ref_count) != 0 && i < 10) {
|
||||
msleep(100);
|
||||
i++;
|
||||
}
|
||||
mutex_unlock(&edev->en_dev_lock);
|
||||
netdev_unlock(dev);
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -10,9 +10,6 @@
|
|||
#ifndef BNXT_ULP_H
|
||||
#define BNXT_ULP_H
|
||||
|
||||
#define BNXT_ROCE_ULP 0
|
||||
#define BNXT_MAX_ULP 1
|
||||
|
||||
#define BNXT_MIN_ROCE_CP_RINGS 2
|
||||
#define BNXT_MIN_ROCE_STAT_CTXS 1
|
||||
|
||||
|
|
@ -50,7 +47,6 @@ struct bnxt_ulp {
|
|||
unsigned long *async_events_bmap;
|
||||
u16 max_async_event_id;
|
||||
u16 msix_requested;
|
||||
atomic_t ref_count;
|
||||
};
|
||||
|
||||
struct bnxt_en_dev {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user