[openwrt/openwrt] realtek: fix RTL839x receive tag decoding

LEDE Commits lede-commits at lists.infradead.org
Fri Sep 9 13:12:02 PDT 2022


svanheule pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/2ca56028645c305d3d6b2a64b4bc8bbb5aaeebef

commit 2ca56028645c305d3d6b2a64b4bc8bbb5aaeebef
Author: Bjørn Mork <bjorn at mork.no>
AuthorDate: Fri Sep 9 08:28:13 2022 +0200

    realtek: fix RTL839x receive tag decoding
    
    The previous fixup was incomplete, and the offsets for the
    queue and crc_error cpu_tag bitfields were still wrong on
    RTL839x.
    
    Fixes: 545c6113c93b ("realtek: fix RTL838x receive tag decoding")
    Suggested-by: Jan Hoffmann <jan at 3e8.eu>
    Signed-off-by: Bjørn Mork <bjorn at mork.no>
---
 target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c b/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c
index d9ade65526..e96c5a7216 100644
--- a/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c
+++ b/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.c
@@ -282,9 +282,9 @@ bool rtl839x_decode_tag(struct p_hdr *h, struct dsa_tag *t)
 {
 	/* cpu_tag[0] is reserved. Fields are off-by-one */
 	t->reason = h->cpu_tag[5] & 0x1f;
-	t->queue = (h->cpu_tag[3] & 0xe000) >> 13;
+	t->queue = (h->cpu_tag[4] & 0xe000) >> 13;
 	t->port = h->cpu_tag[1] & 0x3f;
-	t->crc_error = h->cpu_tag[3] & BIT(2);
+	t->crc_error = h->cpu_tag[4] & BIT(6);
 
 	pr_debug("Reason: %d\n", t->reason);
 	if ((t->reason >= 7 && t->reason <= 13) || // NIC_RX_REASON_RMA




More information about the lede-commits mailing list