net: ethernet: mtk_eth_soc: Reuse value using READ_ONCE instead of re-rereading it
authorlinke li <lilinke99@qq.com>
Wed, 3 Apr 2024 02:54:00 +0000 (10:54 +0800)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 4 Apr 2024 13:46:52 +0000 (15:46 +0200)
In mtk_flow_entry_update_l2, the hwe->ib1 is read using READ_ONCE at the
beginning of the function, checked, and then re-read from hwe->ib1,
may void all guarantees of the checks. Reuse the value that was read by
READ_ONCE to ensure the consistency of the ib1 throughout the function.

Signed-off-by: linke li <lilinke99@qq.com>
Link: https://lore.kernel.org/r/tencent_C699E9540505523424F11A9BD3D21B86840A@qq.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/mediatek/mtk_ppe.c

index 6ce0db3a1a920857016c17b7e7bc4be1f2045a0f..0acee405a7498a5bd2944c7c4cbc274ba617cd9b 100644 (file)
@@ -580,7 +580,7 @@ mtk_flow_entry_update_l2(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
 
                idle = cur_idle;
                entry->data.ib1 &= ~ib1_ts_mask;
-               entry->data.ib1 |= hwe->ib1 & ib1_ts_mask;
+               entry->data.ib1 |= ib1 & ib1_ts_mask;
        }
 }