]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
octeontx2: cn10k: fix RX flowid TCAM mask handling
authorAlok Tiwari <alok.a.tiwari@oracle.com>
Fri, 16 Jan 2026 16:47:12 +0000 (08:47 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 30 Jan 2026 09:27:33 +0000 (10:27 +0100)
[ Upstream commit ab9b218a1521133a4410722907fa7189566be9bc ]

The RX flowid programming initializes the TCAM mask to all ones, but
then overwrites it when clearing the MAC DA mask bits. This results
in losing the intended initialization and may affect other match fields.

Update the code to clear the MAC DA bits using an AND operation, making
the handling of mask[0] consistent with mask[1], where the field-specific
bits are cleared after initializing the mask to ~0ULL.

Fixes: 57d00d4364f3 ("octeontx2-pf: mcs: Match macsec ethertype along with DMAC")
Signed-off-by: Alok Tiwari <alok.a.tiwari@oracle.com>
Reviewed-by: Subbaraya Sundeep <sbhatta@marvell.com>
Link: https://patch.msgid.link/20260116164724.2733511-1-alok.a.tiwari@oracle.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/marvell/octeontx2/nic/cn10k_macsec.c

index 74953f67a2bf9c96dce344e509b57387f834b69b..3af58bc9f533cc63643d72f6d99c3156c3fce890 100644 (file)
@@ -330,7 +330,7 @@ static int cn10k_mcs_write_rx_flowid(struct otx2_nic *pfvf,
 
        req->data[0] = FIELD_PREP(MCS_TCAM0_MAC_DA_MASK, mac_da);
        req->mask[0] = ~0ULL;
-       req->mask[0] = ~MCS_TCAM0_MAC_DA_MASK;
+       req->mask[0] &= ~MCS_TCAM0_MAC_DA_MASK;
 
        req->data[1] = FIELD_PREP(MCS_TCAM1_ETYPE_MASK, ETH_P_MACSEC);
        req->mask[1] = ~0ULL;