]> www.infradead.org Git - users/hch/misc.git/commit
net: airoha: Validate egress gdm port in airoha_ppe_foe_entry_prepare()
authorLorenzo Bianconi <lorenzo@kernel.org>
Tue, 1 Apr 2025 09:42:30 +0000 (11:42 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 3 Apr 2025 22:18:16 +0000 (15:18 -0700)
commit09bccf56db36501ccb1935d921dc24451e9f57dd
tree29d9a4b377a62b7664ce12a9d55e00f85bee057f
parenta58d882841a0750da3c482cd3d82432b1c7edb77
net: airoha: Validate egress gdm port in airoha_ppe_foe_entry_prepare()

Dev pointer in airoha_ppe_foe_entry_prepare routine is not strictly
a device allocated by airoha_eth driver since it is an egress device
and the flowtable can contain even wlan, pppoe or vlan devices. E.g:

flowtable ft {
        hook ingress priority filter
        devices = { eth1, lan1, lan2, lan3, lan4, wlan0 }
        flags offload                               ^
                                                    |
                     "not allocated by airoha_eth" --
}

In this case airoha_get_dsa_port() will just return the original device
pointer and we can't assume netdev priv pointer points to an
airoha_gdm_port struct.
Fix the issue validating egress gdm port in airoha_ppe_foe_entry_prepare
routine before accessing net_device priv pointer.

Fixes: 00a7678310fe ("net: airoha: Introduce flowtable offload support")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250401-airoha-validate-egress-gdm-port-v4-1-c7315d33ce10@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/airoha/airoha_eth.c
drivers/net/ethernet/airoha/airoha_eth.h
drivers/net/ethernet/airoha/airoha_ppe.c