]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: libwx: fix VMDQ mask for 1-queue mode
authorJiawen Wu <jiawenwu@trustnetic.com>
Fri, 26 Jun 2026 09:25:30 +0000 (17:25 +0800)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 30 Jun 2026 09:27:18 +0000 (11:27 +0200)
In wx_set_vmdq_queues(), the VMDQ mask was not set for the devices not
supporting WX_FLAG_MULTI_64_FUNC, i.e., NGBE devices. A mask of 0 causes
__ALIGN_MASK(1, ~vmdq->mask) to return 0, which incorrectly sets
q_per_pool to 0 in wx_write_qde().

Fix the VMDQ 1-queue mask to 0x7F then ensures that __ALIGN_MASK(1,
~0x7F) correctly evaluates to 1.

Fixes: c52d4b898901 ("net: libwx: Redesign flow when sriov is enabled")
Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
Reviewed-by: Larysa Zaremba <larysa.zaremba@intel.com>
Link: https://patch.msgid.link/161F704D2C983E2C+20260626092530.551028-1-jiawenwu@trustnetic.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/wangxun/libwx/wx_lib.c
drivers/net/ethernet/wangxun/libwx/wx_type.h

index d042567b81284b5d3bda5408bfbcbeee03e17f74..814d88d2aee4874236d0df69dc550d9a28b04245 100644 (file)
@@ -1802,6 +1802,7 @@ static bool wx_set_vmdq_queues(struct wx *wx)
                        rss_i = 4;
                }
        } else {
+               vmdq_m = WX_VMDQ_1Q_MASK;
                /* double check we are limited to maximum pools */
                vmdq_i = min_t(u16, 8, vmdq_i);
 
index c7befe4cdfe908baa242e8b46ccd841a351a01bc..65e3e55db1cffb395ee6f4e6d63734e2232a8301 100644 (file)
@@ -486,6 +486,7 @@ enum WX_MSCA_CMD_value {
 
 #define WX_VMDQ_4Q_MASK              0x7C
 #define WX_VMDQ_2Q_MASK              0x7E
+#define WX_VMDQ_1Q_MASK              0x7F
 
 /****************** Manageablility Host Interface defines ********************/
 #define WX_HI_MAX_BLOCK_BYTE_LENGTH  256 /* Num of bytes in range */