mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-23 07:23:12 +02:00
Merge branch 'bnxt_en-bug-fixes'
Michael Chan says: ==================== bnxt_en: Bug fixes There are 2 bug fixes in this series. This first one fixes the issue of setting the gso_type incorrectly for HW GRO packets on 5750X (Thor) chips. This can cause HW GRO packets to be dropped by the stack if they are re-segmented. The second one fixes a potential division by zero crash when dumping FW log coredump. ==================== Link: https://patch.msgid.link/20241204215918.1692597-1-michael.chan@broadcom.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
ff9b305315
|
@ -1531,7 +1531,7 @@ static void bnxt_tpa_start(struct bnxt *bp, struct bnxt_rx_ring_info *rxr,
|
||||||
if (TPA_START_IS_IPV6(tpa_start1))
|
if (TPA_START_IS_IPV6(tpa_start1))
|
||||||
tpa_info->gso_type = SKB_GSO_TCPV6;
|
tpa_info->gso_type = SKB_GSO_TCPV6;
|
||||||
/* RSS profiles 1 and 3 with extract code 0 for inner 4-tuple */
|
/* RSS profiles 1 and 3 with extract code 0 for inner 4-tuple */
|
||||||
else if (cmp_type == CMP_TYPE_RX_L2_TPA_START_CMP &&
|
else if (!BNXT_CHIP_P4_PLUS(bp) &&
|
||||||
TPA_START_HASH_TYPE(tpa_start) == 3)
|
TPA_START_HASH_TYPE(tpa_start) == 3)
|
||||||
tpa_info->gso_type = SKB_GSO_TCPV6;
|
tpa_info->gso_type = SKB_GSO_TCPV6;
|
||||||
tpa_info->rss_hash =
|
tpa_info->rss_hash =
|
||||||
|
@ -2226,15 +2226,13 @@ static int bnxt_rx_pkt(struct bnxt *bp, struct bnxt_cp_ring_info *cpr,
|
||||||
if (cmp_type == CMP_TYPE_RX_L2_V3_CMP) {
|
if (cmp_type == CMP_TYPE_RX_L2_V3_CMP) {
|
||||||
type = bnxt_rss_ext_op(bp, rxcmp);
|
type = bnxt_rss_ext_op(bp, rxcmp);
|
||||||
} else {
|
} else {
|
||||||
u32 hash_type = RX_CMP_HASH_TYPE(rxcmp);
|
u32 itypes = RX_CMP_ITYPES(rxcmp);
|
||||||
|
|
||||||
/* RSS profiles 1 and 3 with extract code 0 for inner
|
if (itypes == RX_CMP_FLAGS_ITYPE_TCP ||
|
||||||
* 4-tuple
|
itypes == RX_CMP_FLAGS_ITYPE_UDP)
|
||||||
*/
|
|
||||||
if (hash_type != 1 && hash_type != 3)
|
|
||||||
type = PKT_HASH_TYPE_L3;
|
|
||||||
else
|
|
||||||
type = PKT_HASH_TYPE_L4;
|
type = PKT_HASH_TYPE_L4;
|
||||||
|
else
|
||||||
|
type = PKT_HASH_TYPE_L3;
|
||||||
}
|
}
|
||||||
skb_set_hash(skb, le32_to_cpu(rxcmp->rx_cmp_rss_hash), type);
|
skb_set_hash(skb, le32_to_cpu(rxcmp->rx_cmp_rss_hash), type);
|
||||||
}
|
}
|
||||||
|
@ -8367,7 +8365,7 @@ static int bnxt_alloc_all_ctx_pg_info(struct bnxt *bp, int ctx_max)
|
||||||
struct bnxt_ctx_mem_type *ctxm = &ctx->ctx_arr[type];
|
struct bnxt_ctx_mem_type *ctxm = &ctx->ctx_arr[type];
|
||||||
int n = 1;
|
int n = 1;
|
||||||
|
|
||||||
if (!ctxm->max_entries)
|
if (!ctxm->max_entries || ctxm->pg_info)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (ctxm->instance_bmap)
|
if (ctxm->instance_bmap)
|
||||||
|
@ -8971,8 +8969,8 @@ static int bnxt_backing_store_cfg_v2(struct bnxt *bp, u32 ena)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
bnxt_bs_trace_init(bp, ctxm);
|
bnxt_bs_trace_init(bp, ctxm);
|
||||||
last_type = type;
|
|
||||||
}
|
}
|
||||||
|
last_type = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (last_type == BNXT_CTX_INV) {
|
if (last_type == BNXT_CTX_INV) {
|
||||||
|
|
|
@ -267,6 +267,9 @@ struct rx_cmp {
|
||||||
(((le32_to_cpu((rxcmp)->rx_cmp_misc_v1) & RX_CMP_RSS_HASH_TYPE) >>\
|
(((le32_to_cpu((rxcmp)->rx_cmp_misc_v1) & RX_CMP_RSS_HASH_TYPE) >>\
|
||||||
RX_CMP_RSS_HASH_TYPE_SHIFT) & RSS_PROFILE_ID_MASK)
|
RX_CMP_RSS_HASH_TYPE_SHIFT) & RSS_PROFILE_ID_MASK)
|
||||||
|
|
||||||
|
#define RX_CMP_ITYPES(rxcmp) \
|
||||||
|
(le32_to_cpu((rxcmp)->rx_cmp_len_flags_type) & RX_CMP_FLAGS_ITYPES_MASK)
|
||||||
|
|
||||||
#define RX_CMP_V3_HASH_TYPE_LEGACY(rxcmp) \
|
#define RX_CMP_V3_HASH_TYPE_LEGACY(rxcmp) \
|
||||||
((le32_to_cpu((rxcmp)->rx_cmp_misc_v1) & RX_CMP_V3_RSS_EXT_OP_LEGACY) >>\
|
((le32_to_cpu((rxcmp)->rx_cmp_misc_v1) & RX_CMP_V3_RSS_EXT_OP_LEGACY) >>\
|
||||||
RX_CMP_V3_RSS_EXT_OP_LEGACY_SHIFT)
|
RX_CMP_V3_RSS_EXT_OP_LEGACY_SHIFT)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user