]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
net: dsa: tag_sja1105: fix MAC DA patching from meta frames
authorVladimir Oltean <vladimir.oltean@nxp.com>
Mon, 3 Jul 2023 22:05:44 +0000 (01:05 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jul 2023 06:37:24 +0000 (08:37 +0200)
commit58b1b3c54e16223c3c1e5a503cce21eab54ed7e3
tree4aeeb73cbc3602301a618dd5a7d5e03425ece513
parent67a67e2584075042864ad83124bd03c771bf0e01
net: dsa: tag_sja1105: fix MAC DA patching from meta frames

[ Upstream commit 1dcf6efd5f0c1f4496b3ef7ec5a7db104a53b38c ]

The SJA1105 manual says that at offset 4 into the meta frame payload we
have "MAC destination byte 2" and at offset 5 we have "MAC destination
byte 1". These are counted from the LSB, so byte 1 is h_dest[ETH_HLEN-2]
aka h_dest[4] and byte 2 is h_dest[ETH_HLEN-3] aka h_dest[3].

The sja1105_meta_unpack() function decodes these the other way around,
so a frame with MAC DA 01:80:c2:11:22:33 is received by the network
stack as having 01:80:c2:22:11:33.

Fixes: e53e18a6fe4d ("net: dsa: sja1105: Receive and decode meta frames")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/dsa/tag_sja1105.c