realtek: fix RTL838x receive tag decoding
authorBjørn Mork <bjorn@mork.no>
Thu, 8 Sep 2022 17:35:34 +0000 (19:35 +0200)
committerSander Vanheule <sander@svanheule.net>
Thu, 8 Sep 2022 20:28:15 +0000 (22:28 +0200)
commit545c6113c93bbf7de1b0e515141a4565f7e6cece
treeee5e537add79eaf736ad2382c9b4100eb2a0de33
parent007c8809c1e888748af70c1b878f4d0105fe7531
realtek: fix RTL838x receive tag decoding

Commit dc9cc0d3e2a1 ("realtek: add QoS and rate control") replaced a
16 bit reserved field in the RTL83xx packet header with the initial
cpu_tag word, shifting the real cpu_tag fields by one.  Adjusting for
this new shift was partially forgotten in the new RX tag decoders.

This caused the switch to block IGMP, effectively blocking IPv4
multicast.

The bug was partially fixed by commit 9d847244d9fd ("realtek: fix
RTL839X receive tag decoding")

Fix on RTL838x too, including correct NIC_RX_REASON_SPECIAL_TRAP value.

Suggested-by: Jan Hoffmann <jan@3e8.eu>
Fixes: dc9cc0d3e2a1 ("realtek: add QoS and rate control")
Signed-off-by: Bjørn Mork <bjorn@mork.no>
target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c