realtek: consistently flood RMA frames
authorSander Vanheule <sander@svanheule.net>
Fri, 9 Sep 2022 19:25:17 +0000 (21:25 +0200)
committerSander Vanheule <sander@svanheule.net>
Sun, 23 Oct 2022 20:33:08 +0000 (22:33 +0200)
commit9f6cbc78cd5da260d3fba83aae95f32e05e5f6a7
tree6dca4db9d8fad8e30774febf58922de13111ad36
parent039e5be4af2497bd40414eedb6f83a1c75d06cca
realtek: consistently flood RMA frames

The switches support different actions for incoming ethernet multicast
frames with Reserved Multicast Addresses (01-80-C2-00-00-{01-2F}). The
current code will set the 2-bit action field to FLOOD (0x3) for most
classes, but the highest bit is always unset for the relevant control
registers. This means the DROP (0x1) action being used for these
classes; whatever class the MSB happens to be in.

For RTL838x, this results in {20,23-2F} frames being dropped, instead of
flooding all ports. On other switch generations, {0F,1F,2F} frames are
dropped. This is inconsistent, and appears to be a mistake. Remove this
inconsistency by flooding all multicast frames with RMA addresses.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c