diff options
author | Felix Fietkau <nbd@nbd.name> | 2023-03-23 14:23:19 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2023-03-23 17:54:18 +0100 |
commit | aa2777145f8d392006196d8501f5520d19c05f11 (patch) | |
tree | 752b21509b5c552c471a19d5e3038807ee72fb5f /target/linux/generic/pending-5.15/736-05-net-ethernet-mtk_eth_soc-add-missing-ppe-cache-flush.patch | |
parent | d0a06965e8ab0a92a4813fddbb8e045407897310 (diff) | |
download | upstream-aa2777145f8d392006196d8501f5520d19c05f11.tar.gz upstream-aa2777145f8d392006196d8501f5520d19c05f11.tar.bz2 upstream-aa2777145f8d392006196d8501f5520d19c05f11.zip |
kernel: improve mtk ppe flow accounting
Properly track L2 flows, and ensure that stale data gets cleared
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'target/linux/generic/pending-5.15/736-05-net-ethernet-mtk_eth_soc-add-missing-ppe-cache-flush.patch')
-rw-r--r-- | target/linux/generic/pending-5.15/736-05-net-ethernet-mtk_eth_soc-add-missing-ppe-cache-flush.patch | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/target/linux/generic/pending-5.15/736-05-net-ethernet-mtk_eth_soc-add-missing-ppe-cache-flush.patch b/target/linux/generic/pending-5.15/736-05-net-ethernet-mtk_eth_soc-add-missing-ppe-cache-flush.patch new file mode 100644 index 0000000000..0b876acacf --- /dev/null +++ b/target/linux/generic/pending-5.15/736-05-net-ethernet-mtk_eth_soc-add-missing-ppe-cache-flush.patch @@ -0,0 +1,21 @@ +From: Felix Fietkau <nbd@nbd.name> +Date: Thu, 23 Mar 2023 11:19:14 +0100 +Subject: [PATCH] net: ethernet: mtk_eth_soc: add missing ppe cache flush when + deleting a flow + +The cache needs to be flushed to ensure that the hardware stops offloading +the flow immediately. + +Signed-off-by: Felix Fietkau <nbd@nbd.name> +--- + +--- a/drivers/net/ethernet/mediatek/mtk_ppe.c ++++ b/drivers/net/ethernet/mediatek/mtk_ppe.c +@@ -525,6 +525,7 @@ __mtk_foe_entry_clear(struct mtk_ppe *pp + hwe->ib1 &= ~MTK_FOE_IB1_STATE; + hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_INVALID); + dma_wmb(); ++ mtk_ppe_cache_clear(ppe); + } + entry->hash = 0xffff; + |