mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-24 19:35:58 +00:00
bnxt_en: Fix HDS and jumbo thresholds for RX packets
[ Upstream commita056ebcc30
] The recent XDP multi-buffer feature has introduced regressions in the setting of HDS and jumbo thresholds. HDS was accidentally disabled in the nornmal mode without XDP. This patch restores jumbo HDS placement when not in XDP mode. In XDP multi-buffer mode, HDS should be disabled and the jumbo threshold should be set to the usable page size in the first page buffer. Fixes:3286123619
("bnxt: change receive ring space parameters") Reviewed-by: Mohammad Shuab Siddique <mohammad-shuab.siddique@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Reviewed-by: Andy Gospodarek <andrew.gospodarek@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
c9542e0d3e
commit
179e6d7213
1 changed files with 5 additions and 4 deletions
|
@ -5371,15 +5371,16 @@ static int bnxt_hwrm_vnic_set_hds(struct bnxt *bp, u16 vnic_id)
|
|||
req->flags = cpu_to_le32(VNIC_PLCMODES_CFG_REQ_FLAGS_JUMBO_PLACEMENT);
|
||||
req->enables = cpu_to_le32(VNIC_PLCMODES_CFG_REQ_ENABLES_JUMBO_THRESH_VALID);
|
||||
|
||||
if (BNXT_RX_PAGE_MODE(bp) && !BNXT_RX_JUMBO_MODE(bp)) {
|
||||
if (BNXT_RX_PAGE_MODE(bp)) {
|
||||
req->jumbo_thresh = cpu_to_le16(bp->rx_buf_use_size);
|
||||
} else {
|
||||
req->flags |= cpu_to_le32(VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV4 |
|
||||
VNIC_PLCMODES_CFG_REQ_FLAGS_HDS_IPV6);
|
||||
req->enables |=
|
||||
cpu_to_le32(VNIC_PLCMODES_CFG_REQ_ENABLES_HDS_THRESHOLD_VALID);
|
||||
req->jumbo_thresh = cpu_to_le16(bp->rx_copy_thresh);
|
||||
req->hds_threshold = cpu_to_le16(bp->rx_copy_thresh);
|
||||
}
|
||||
/* thresholds not implemented in firmware yet */
|
||||
req->jumbo_thresh = cpu_to_le16(bp->rx_copy_thresh);
|
||||
req->hds_threshold = cpu_to_le16(bp->rx_copy_thresh);
|
||||
req->vnic_id = cpu_to_le32(vnic->fw_vnic_id);
|
||||
return hwrm_req_send(bp, req);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue