From 396dc89ee74c833ba3f687b586a1718c13f17900 Mon Sep 17 00:00:00 2001 From: Sander Vanheule Date: Sun, 19 Jun 2022 10:29:35 +0200 Subject: realtek: correct egress frame port verification MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Destination switch ports for outgoing frame can range from 0 to CPU_PORT-1. Refactor the code to only generate egress frame CPU headers when a valid destination port number is available, and make the code a bit more consistent between different switch generations. Change the dest_port argument's type to 'unsigned int', since only positive values are valid. This fixes the issue where egress frames on switch port 0 did not receive a VLAN tag, because they are sent out without a CPU header. Also fixes a potential issue with invalid (negative) egress port numbers on RTL93xx switches. Reported-by: Arınç ÜNAL Suggested-by: Birger Koblitz Tested-by: Luiz Angelo Daros de Luca Signed-off-by: Sander Vanheule (cherry picked from commit 1773264a0c6da099af7f36046f95f0126d6de1eb) --- target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.h') diff --git a/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.h b/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.h index 2d1f80dc9d..5db5f545b9 100644 --- a/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.h +++ b/target/linux/realtek/files-5.10/drivers/net/ethernet/rtl838x_eth.h @@ -436,7 +436,7 @@ struct rtl838x_eth_reg { int mac; int l2_tbl_flush_ctrl; void (*update_cntr)(int r, int work_done); - void (*create_tx_header)(struct p_hdr *h, int dest_port, int prio); + void (*create_tx_header)(struct p_hdr *h, unsigned int dest_port, int prio); bool (*decode_tag)(struct p_hdr *h, struct dsa_tag *tag); }; -- cgit v1.2.3