]> www.infradead.org Git - nvme.git/commitdiff
net: ethernet: mtk_eth_soc: ppe: prevent ppe update for non-mtk devices
authorElad Yifee <eladwf@gmail.com>
Sun, 23 Jun 2024 17:51:09 +0000 (20:51 +0300)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 25 Jun 2024 13:35:53 +0000 (15:35 +0200)
Introduce an additional validation to ensure that the PPE index
is modified exclusively for mtk_eth ingress devices.
This primarily addresses the issue related
to WED operation with multiple PPEs.

Fixes: dee4dd10c79a ("net: ethernet: mtk_eth_soc: ppe: add support for multiple PPEs")
Signed-off-by: Elad Yifee <eladwf@gmail.com>
Link: https://lore.kernel.org/r/20240623175113.24437-1-eladwf@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/mediatek/mtk_ppe_offload.c

index f80af73d0a1bcbe4ac4744e12aba823d6b33a5d4..f20bb390df3add25873130ade2ad93ab5b01fe43 100644 (file)
@@ -266,7 +266,7 @@ mtk_flow_offload_replace(struct mtk_eth *eth, struct flow_cls_offload *f,
                flow_rule_match_meta(rule, &match);
                if (mtk_is_netsys_v2_or_greater(eth)) {
                        idev = __dev_get_by_index(&init_net, match.key->ingress_ifindex);
-                       if (idev) {
+                       if (idev && idev->netdev_ops == eth->netdev[0]->netdev_ops) {
                                struct mtk_mac *mac = netdev_priv(idev);
 
                                if (WARN_ON(mac->ppe_idx >= eth->soc->ppe_num))