Skip to content

Commit 13e7d72

Browse files
Jiawen WuPaolo Abeni
authored andcommitted
net: libwx: Fix the wrong Rx descriptor field
WX_RXD_IPV6EX was incorrectly defined in Rx ring descriptor. In fact, this field stores the 802.1ad ID from which the packet was received. The wrong definition caused the statistics rx_csum_offload_errors to fail to grow when receiving the 802.1ad packet with incorrect checksum. Fixes: ef4f3c1 ("net: wangxun: libwx add rx offload functions") Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com> Reviewed-by: Michal Kubiak <michal.kubiak@intel.com> Link: https://patch.msgid.link/20250407103322.273241-1-jiawenwu@trustnetic.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
1 parent b7db947 commit 13e7d72

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

drivers/net/ethernet/wangxun/libwx/wx_lib.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,8 @@ static void wx_rx_checksum(struct wx_ring *ring,
546546
return;
547547

548548
/* Hardware can't guarantee csum if IPv6 Dest Header found */
549-
if (dptype.prot != WX_DEC_PTYPE_PROT_SCTP && WX_RXD_IPV6EX(rx_desc))
549+
if (dptype.prot != WX_DEC_PTYPE_PROT_SCTP &&
550+
wx_test_staterr(rx_desc, WX_RXD_STAT_IPV6EX))
550551
return;
551552

552553
/* if L4 checksum error */

drivers/net/ethernet/wangxun/libwx/wx_type.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -513,6 +513,7 @@ enum WX_MSCA_CMD_value {
513513
#define WX_RXD_STAT_L4CS BIT(7) /* L4 xsum calculated */
514514
#define WX_RXD_STAT_IPCS BIT(8) /* IP xsum calculated */
515515
#define WX_RXD_STAT_OUTERIPCS BIT(10) /* Cloud IP xsum calculated*/
516+
#define WX_RXD_STAT_IPV6EX BIT(12) /* IPv6 Dest Header */
516517
#define WX_RXD_STAT_TS BIT(14) /* IEEE1588 Time Stamp */
517518

518519
#define WX_RXD_ERR_OUTERIPER BIT(26) /* CRC IP Header error */
@@ -589,8 +590,6 @@ enum wx_l2_ptypes {
589590

590591
#define WX_RXD_PKTTYPE(_rxd) \
591592
((le32_to_cpu((_rxd)->wb.lower.lo_dword.data) >> 9) & 0xFF)
592-
#define WX_RXD_IPV6EX(_rxd) \
593-
((le32_to_cpu((_rxd)->wb.lower.lo_dword.data) >> 6) & 0x1)
594593
/*********************** Transmit Descriptor Config Masks ****************/
595594
#define WX_TXD_STAT_DD BIT(0) /* Descriptor Done */
596595
#define WX_TXD_DTYP_DATA 0 /* Adv Data Descriptor */

0 commit comments

Comments
 (0)