]> git.ipfire.org Git - thirdparty/kernel/linux.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)
committerJakub Kicinski <kuba@kernel.org>
Mon, 19 Jan 2026 18:12:10 +0000 (10:12 -0800)
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>
drivers/net/ethernet/marvell/octeontx2/nic/cn10k_macsec.c

index 4c7e0f345cb5ba84836a9ec81ceefc052a2a5d37..060c715ebad0a18570aa1fe4c34c19324fe1b305 100644 (file)
@@ -328,7 +328,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;