From: Koen Vandeputte Date: Wed, 15 Apr 2020 13:11:54 +0000 (+0200) Subject: kernel: bump 4.19 to 4.19.115 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=3c3825436e0e4107acd6ef722732a6444a1f7e0b;p=oweals%2Fopenwrt.git kernel: bump 4.19 to 4.19.115 Refreshed all patches. Remove upstreamed: - 600-ipv6-addrconf-call-ipv6_mc_up-for-non-Ethernet-inter.patch - 184-USB-serial-option-add-Wistron-Neweb-D19Q1.patch Fixes: - CVE-2020-8647 - CVE-2020-8648 (potentially) - CVE-2020-8649 Compile-tested on: cns3xxx Runtime-tested on: cns3xxx Signed-off-by: Koen Vandeputte --- diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 3e46989f84..ea83da09dc 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -7,11 +7,11 @@ ifdef CONFIG_TESTING_KERNEL endif LINUX_VERSION-4.14 = .176 -LINUX_VERSION-4.19 = .108 +LINUX_VERSION-4.19 = .115 LINUX_VERSION-5.4 = .32 LINUX_KERNEL_HASH-4.14.176 = bcae0956baaeb55dab5bad0401873fbc5baaa7fbe957ea6d27a5ab241cec5ca2 -LINUX_KERNEL_HASH-4.19.108 = 09aeeca5b08efea2f54b977b2999afb60d42f93b9f65b2b0111969f183f750a3 +LINUX_KERNEL_HASH-4.19.115 = 11b2d97c8ea5ceb40c5e1d0bb87ad5b2b8c84560181bc60c0d28ec3a3e3801c2 LINUX_KERNEL_HASH-5.4.32 = 192d99fab7a47a537493b6d7eddb52892b98f8ada655c0bbb419b360a995f2b3 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) diff --git a/target/linux/apm821xx/patches-4.19/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch b/target/linux/apm821xx/patches-4.19/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch index 743ffe4206..f3bd671cf7 100644 --- a/target/linux/apm821xx/patches-4.19/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch +++ b/target/linux/apm821xx/patches-4.19/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch @@ -44,7 +44,7 @@ Signed-off-by: Christian Lamparter #include "xhci.h" #include "xhci-trace.h" -@@ -264,6 +266,458 @@ static void xhci_pme_acpi_rtd3_enable(st +@@ -265,6 +267,458 @@ static void xhci_pme_acpi_rtd3_enable(st static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { } #endif /* CONFIG_ACPI */ @@ -503,7 +503,7 @@ Signed-off-by: Christian Lamparter /* called during probe() after chip reset completes */ static int xhci_pci_setup(struct usb_hcd *hcd) { -@@ -305,6 +759,22 @@ static int xhci_pci_probe(struct pci_dev +@@ -306,6 +760,22 @@ static int xhci_pci_probe(struct pci_dev struct hc_driver *driver; struct usb_hcd *hcd; @@ -526,7 +526,7 @@ Signed-off-by: Christian Lamparter driver = (struct hc_driver *)id->driver_data; /* Prevent runtime suspending between USB-2 and USB-3 initialization */ -@@ -363,6 +833,16 @@ static void xhci_pci_remove(struct pci_d +@@ -364,6 +834,16 @@ static void xhci_pci_remove(struct pci_d { struct xhci_hcd *xhci; diff --git a/target/linux/apm821xx/patches-4.19/802-usb-xhci-force-msi-renesas-xhci.patch b/target/linux/apm821xx/patches-4.19/802-usb-xhci-force-msi-renesas-xhci.patch index 5bed3d26fa..8ada844214 100644 --- a/target/linux/apm821xx/patches-4.19/802-usb-xhci-force-msi-renesas-xhci.patch +++ b/target/linux/apm821xx/patches-4.19/802-usb-xhci-force-msi-renesas-xhci.patch @@ -13,7 +13,7 @@ produce a noisy warning. --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -217,6 +217,7 @@ static void xhci_pci_quirks(struct devic +@@ -218,6 +218,7 @@ static void xhci_pci_quirks(struct devic pdev->device == 0x0015) { xhci->quirks |= XHCI_RESET_ON_RESUME; xhci->quirks |= XHCI_ZERO_64B_REGS; diff --git a/target/linux/ath79/patches-4.19/0060-serial-ar933x_uart-set-UART_CS_-RX-TX-_READY_ORIDE.patch b/target/linux/ath79/patches-4.19/0060-serial-ar933x_uart-set-UART_CS_-RX-TX-_READY_ORIDE.patch index 485aadcbbd..30828d693c 100644 --- a/target/linux/ath79/patches-4.19/0060-serial-ar933x_uart-set-UART_CS_-RX-TX-_READY_ORIDE.patch +++ b/target/linux/ath79/patches-4.19/0060-serial-ar933x_uart-set-UART_CS_-RX-TX-_READY_ORIDE.patch @@ -40,9 +40,9 @@ Signed-off-by: Daniel Golle --- a/drivers/tty/serial/ar933x_uart.c +++ b/drivers/tty/serial/ar933x_uart.c -@@ -286,6 +286,10 @@ static void ar933x_uart_set_termios(stru +@@ -290,6 +290,10 @@ static void ar933x_uart_set_termios(stru ar933x_uart_rmw_set(up, AR933X_UART_CS_REG, - AR933X_UART_CS_HOST_INT_EN); + AR933X_UART_CS_TX_READY_ORIDE | AR933X_UART_CS_RX_READY_ORIDE); + /* enable RX and TX ready overide */ + ar933x_uart_rmw_set(up, AR933X_UART_CS_REG, @@ -51,14 +51,14 @@ Signed-off-by: Daniel Golle /* reenable the UART */ ar933x_uart_rmw(up, AR933X_UART_CS_REG, AR933X_UART_CS_IF_MODE_M << AR933X_UART_CS_IF_MODE_S, -@@ -418,6 +422,10 @@ static int ar933x_uart_startup(struct ua - ar933x_uart_rmw_set(up, AR933X_UART_CS_REG, - AR933X_UART_CS_HOST_INT_EN); +@@ -424,6 +428,10 @@ static int ar933x_uart_startup(struct ua -+ /* enable RX and TX ready overide */ -+ ar933x_uart_rmw_set(up, AR933X_UART_CS_REG, + /* enable RX and TX ready overide */ + ar933x_uart_rmw_set(up, AR933X_UART_CS_REG, + AR933X_UART_CS_TX_READY_ORIDE | AR933X_UART_CS_RX_READY_ORIDE); + ++ /* enable RX and TX ready overide */ ++ ar933x_uart_rmw_set(up, AR933X_UART_CS_REG, + AR933X_UART_CS_TX_READY_ORIDE | AR933X_UART_CS_RX_READY_ORIDE); + /* Enable RX interrupts */ - up->ier = AR933X_UART_INT_RX_VALID; - ar933x_uart_write(up, AR933X_UART_INT_EN_REG, up->ier); diff --git a/target/linux/ath79/patches-4.19/0061-tty-serial-ar933x-uart-rs485-gpio.patch b/target/linux/ath79/patches-4.19/0061-tty-serial-ar933x-uart-rs485-gpio.patch index 7bbcaa08a6..b77cd2d574 100644 --- a/target/linux/ath79/patches-4.19/0061-tty-serial-ar933x-uart-rs485-gpio.patch +++ b/target/linux/ath79/patches-4.19/0061-tty-serial-ar933x-uart-rs485-gpio.patch @@ -160,7 +160,7 @@ v2: use bool to indicate ongoing half-duplex send, use it afterwards } static void ar933x_uart_break_ctl(struct uart_port *port, int break_state) -@@ -336,11 +393,20 @@ static void ar933x_uart_rx_chars(struct +@@ -340,11 +397,20 @@ static void ar933x_uart_rx_chars(struct static void ar933x_uart_tx_chars(struct ar933x_uart_port *up) { struct circ_buf *xmit = &up->port.state->xmit; @@ -181,7 +181,7 @@ v2: use bool to indicate ongoing half-duplex send, use it afterwards count = up->port.fifosize; do { unsigned int rdata; -@@ -368,8 +434,14 @@ static void ar933x_uart_tx_chars(struct +@@ -372,8 +438,14 @@ static void ar933x_uart_tx_chars(struct if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS) uart_write_wakeup(&up->port); @@ -197,7 +197,7 @@ v2: use bool to indicate ongoing half-duplex send, use it afterwards } static irqreturn_t ar933x_uart_interrupt(int irq, void *dev_id) -@@ -427,8 +499,7 @@ static int ar933x_uart_startup(struct ua +@@ -435,8 +507,7 @@ static int ar933x_uart_startup(struct ua AR933X_UART_CS_TX_READY_ORIDE | AR933X_UART_CS_RX_READY_ORIDE); /* Enable RX interrupts */ @@ -207,7 +207,7 @@ v2: use bool to indicate ongoing half-duplex send, use it afterwards spin_unlock_irqrestore(&up->port.lock, flags); -@@ -511,6 +582,21 @@ static const struct uart_ops ar933x_uart +@@ -519,6 +590,21 @@ static const struct uart_ops ar933x_uart .verify_port = ar933x_uart_verify_port, }; @@ -229,7 +229,7 @@ v2: use bool to indicate ongoing half-duplex send, use it afterwards #ifdef CONFIG_SERIAL_AR933X_CONSOLE static struct ar933x_uart_port * ar933x_console_ports[CONFIG_SERIAL_AR933X_NR_UARTS]; -@@ -680,6 +766,8 @@ static int ar933x_uart_probe(struct plat +@@ -688,6 +774,8 @@ static int ar933x_uart_probe(struct plat goto err_disable_clk; } @@ -238,7 +238,7 @@ v2: use bool to indicate ongoing half-duplex send, use it afterwards port->mapbase = mem_res->start; port->line = id; port->irq = irq_res->start; -@@ -690,6 +778,7 @@ static int ar933x_uart_probe(struct plat +@@ -698,6 +786,7 @@ static int ar933x_uart_probe(struct plat port->regshift = 2; port->fifosize = AR933X_UART_FIFO_SIZE; port->ops = &ar933x_uart_ops; @@ -246,7 +246,7 @@ v2: use bool to indicate ongoing half-duplex send, use it afterwards baud = ar933x_uart_get_baud(port->uartclk, AR933X_UART_MAX_SCALE, 1); up->min_baud = max_t(unsigned int, baud, AR933X_UART_MIN_BAUD); -@@ -697,6 +786,18 @@ static int ar933x_uart_probe(struct plat +@@ -705,6 +794,18 @@ static int ar933x_uart_probe(struct plat baud = ar933x_uart_get_baud(port->uartclk, 0, AR933X_UART_MAX_STEP); up->max_baud = min_t(unsigned int, baud, AR933X_UART_MAX_BAUD); diff --git a/target/linux/ath79/patches-4.19/410-spi-ath79-Implement-the-spi_mem-interface.patch b/target/linux/ath79/patches-4.19/410-spi-ath79-Implement-the-spi_mem-interface.patch index 9546f32a27..62ee69e6a4 100644 --- a/target/linux/ath79/patches-4.19/410-spi-ath79-Implement-the-spi_mem-interface.patch +++ b/target/linux/ath79/patches-4.19/410-spi-ath79-Implement-the-spi_mem-interface.patch @@ -8,10 +8,8 @@ Signed-off-by: Luiz Angelo Daros de Luca drivers/spi/spi-ath79.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) -Index: linux-4.19.106/drivers/spi/spi-ath79.c -=================================================================== ---- linux-4.19.106.orig/drivers/spi/spi-ath79.c -+++ linux-4.19.106/drivers/spi/spi-ath79.c +--- a/drivers/spi/spi-ath79.c ++++ b/drivers/spi/spi-ath79.c @@ -19,6 +19,7 @@ #include #include diff --git a/target/linux/ath79/patches-4.19/910-unaligned_access_hacks.patch b/target/linux/ath79/patches-4.19/910-unaligned_access_hacks.patch index 1b63db7ba4..0efb33676a 100644 --- a/target/linux/ath79/patches-4.19/910-unaligned_access_hacks.patch +++ b/target/linux/ath79/patches-4.19/910-unaligned_access_hacks.patch @@ -214,7 +214,7 @@ #include #include #include -@@ -837,10 +838,10 @@ static void tcp_v6_send_response(const s +@@ -836,10 +837,10 @@ static void tcp_v6_send_response(const s topt = (__be32 *)(t1 + 1); if (tsecr) { diff --git a/target/linux/bcm27xx/patches-4.19/950-0039-Add-dwc_otg-driver.patch b/target/linux/bcm27xx/patches-4.19/950-0039-Add-dwc_otg-driver.patch index 7fdfa4785e..35eb49209e 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0039-Add-dwc_otg-driver.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0039-Add-dwc_otg-driver.patch @@ -917,7 +917,7 @@ Fixes https://github.com/raspberrypi/linux/issues/2408 } --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -5228,7 +5228,7 @@ static void port_event(struct usb_hub *h +@@ -5232,7 +5232,7 @@ static void port_event(struct usb_hub *h u16 status = 0, unused; port_dev->over_current_count++; diff --git a/target/linux/bcm27xx/patches-4.19/950-0043-MMC-added-alternative-MMC-driver.patch b/target/linux/bcm27xx/patches-4.19/950-0043-MMC-added-alternative-MMC-driver.patch index b154d6ee75..bfe690d34e 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0043-MMC-added-alternative-MMC-driver.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0043-MMC-added-alternative-MMC-driver.patch @@ -170,7 +170,7 @@ Signed-off-by: Phil Elwell goto out; --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c -@@ -2230,7 +2230,8 @@ EXPORT_SYMBOL(mmc_erase); +@@ -2233,7 +2233,8 @@ EXPORT_SYMBOL(mmc_erase); int mmc_can_erase(struct mmc_card *card) { if ((card->host->caps & MMC_CAP_ERASE) && diff --git a/target/linux/bcm27xx/patches-4.19/950-0061-Improve-__copy_to_user-and-__copy_from_user-performa.patch b/target/linux/bcm27xx/patches-4.19/950-0061-Improve-__copy_to_user-and-__copy_from_user-performa.patch index 430059cddf..72abdc7bb0 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0061-Improve-__copy_to_user-and-__copy_from_user-performa.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0061-Improve-__copy_to_user-and-__copy_from_user-performa.patch @@ -276,7 +276,7 @@ Signed-off-by: Phil Elwell ENDPROC(arm_copy_from_user) +ENDPROC(__copy_from_user_std) - .pushsection .fixup,"ax" + .pushsection .text.fixup,"ax" .align 0 --- /dev/null +++ b/arch/arm/lib/exports_rpi.c diff --git a/target/linux/bcm27xx/patches-4.19/950-0339-rtc-rv3028-add-new-driver.patch b/target/linux/bcm27xx/patches-4.19/950-0339-rtc-rv3028-add-new-driver.patch index 6a00e82300..64ed02f59a 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0339-rtc-rv3028-add-new-driver.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0339-rtc-rv3028-add-new-driver.patch @@ -96,7 +96,7 @@ Signed-off-by: Alexandre Belloni +whwave,sd3078 I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC --- a/drivers/rtc/Kconfig +++ b/drivers/rtc/Kconfig -@@ -625,6 +625,15 @@ config RTC_DRV_EM3027 +@@ -626,6 +626,15 @@ config RTC_DRV_EM3027 This driver can also be built as a module. If so, the module will be called rtc-em3027. diff --git a/target/linux/bcm27xx/patches-4.19/950-0476-usb-xhci-Show-that-the-VIA-VL805-supports-LPM.patch b/target/linux/bcm27xx/patches-4.19/950-0476-usb-xhci-Show-that-the-VIA-VL805-supports-LPM.patch index 27e1a6c473..69b0ffbf9e 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0476-usb-xhci-Show-that-the-VIA-VL805-supports-LPM.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0476-usb-xhci-Show-that-the-VIA-VL805-supports-LPM.patch @@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -224,6 +224,10 @@ static void xhci_pci_quirks(struct devic +@@ -225,6 +225,10 @@ static void xhci_pci_quirks(struct devic pdev->device == 0x3432) xhci->quirks |= XHCI_BROKEN_STREAMS; diff --git a/target/linux/bcm27xx/patches-4.19/950-0609-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch b/target/linux/bcm27xx/patches-4.19/950-0609-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch index 7895040ff4..011a1eceba 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0609-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0609-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch @@ -23,7 +23,7 @@ Signed-off-by: Jonathan Bell --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c -@@ -225,8 +225,10 @@ static void xhci_pci_quirks(struct devic +@@ -226,8 +226,10 @@ static void xhci_pci_quirks(struct devic xhci->quirks |= XHCI_BROKEN_STREAMS; if (pdev->vendor == PCI_VENDOR_ID_VIA && diff --git a/target/linux/bcm27xx/patches-4.19/950-0636-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/target/linux/bcm27xx/patches-4.19/950-0636-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch index c0a7af1ee7..465697b912 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0636-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0636-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch @@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell #define USB_VENDOR_ID_BELKIN 0x050d #define USB_DEVICE_ID_FLIP_KVM 0x3201 -@@ -1196,6 +1199,9 @@ +@@ -1197,6 +1200,9 @@ #define USB_VENDOR_ID_XAT 0x2505 #define USB_DEVICE_ID_XAT_CSR 0x0220 diff --git a/target/linux/bcm27xx/patches-4.19/950-0710-ARM-dts-bcm283x-Define-MMC-interfaces-at-board-level.patch b/target/linux/bcm27xx/patches-4.19/950-0710-ARM-dts-bcm283x-Define-MMC-interfaces-at-board-level.patch index 7ad61b65fb..a0a6636026 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0710-ARM-dts-bcm283x-Define-MMC-interfaces-at-board-level.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0710-ARM-dts-bcm283x-Define-MMC-interfaces-at-board-level.patch @@ -124,7 +124,7 @@ Acked-by: Eric Anholt pinctrl-0 = <&uart0_gpio14>; --- a/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts +++ b/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts -@@ -129,6 +129,13 @@ +@@ -130,6 +130,13 @@ }; }; diff --git a/target/linux/bcm27xx/patches-4.19/950-0711-ARM-dts-bcm2835-rpi-zero-w-Fix-bus-width-of-sdhci.patch b/target/linux/bcm27xx/patches-4.19/950-0711-ARM-dts-bcm2835-rpi-zero-w-Fix-bus-width-of-sdhci.patch index 06dd01329f..83ba156161 100644 --- a/target/linux/bcm27xx/patches-4.19/950-0711-ARM-dts-bcm2835-rpi-zero-w-Fix-bus-width-of-sdhci.patch +++ b/target/linux/bcm27xx/patches-4.19/950-0711-ARM-dts-bcm2835-rpi-zero-w-Fix-bus-width-of-sdhci.patch @@ -18,9 +18,9 @@ Signed-off-by: Stefan Wahren --- a/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts +++ b/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts -@@ -119,6 +119,7 @@ - #address-cells = <1>; +@@ -120,6 +120,7 @@ #size-cells = <0>; + pinctrl-names = "default"; pinctrl-0 = <&emmc_gpio34 &gpclk2_gpio43>; + bus-width = <4>; mmc-pwrseq = <&wifi_pwrseq>; diff --git a/target/linux/bcm53xx/patches-4.19/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch b/target/linux/bcm53xx/patches-4.19/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch index cfbf86ef6f..b0f8a8c156 100644 --- a/target/linux/bcm53xx/patches-4.19/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch +++ b/target/linux/bcm53xx/patches-4.19/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch @@ -13,7 +13,7 @@ Signed-off-by: Rafał Miłecki --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -1305,6 +1305,18 @@ static const struct flash_info *spi_nor_ +@@ -1307,6 +1307,18 @@ static const struct flash_info *spi_nor_ } dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %02x, %02x\n", id[0], id[1], id[2]); diff --git a/target/linux/generic/backport-4.19/600-ipv6-addrconf-call-ipv6_mc_up-for-non-Ethernet-inter.patch b/target/linux/generic/backport-4.19/600-ipv6-addrconf-call-ipv6_mc_up-for-non-Ethernet-inter.patch deleted file mode 100644 index d2d86f3df1..0000000000 --- a/target/linux/generic/backport-4.19/600-ipv6-addrconf-call-ipv6_mc_up-for-non-Ethernet-inter.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 82afdcd4ec3c8ca6551cbf7c43c09e2fd240487a Mon Sep 17 00:00:00 2001 -From: Hangbin Liu -Date: Tue, 10 Mar 2020 15:27:37 +0800 -Subject: [PATCH] ipv6/addrconf: call ipv6_mc_up() for non-Ethernet interface -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Rafał found an issue that for non-Ethernet interface, if we down and up -frequently, the memory will be consumed slowly. - -The reason is we add allnodes/allrouters addressed in multicast list in -ipv6_add_dev(). When link down, we call ipv6_mc_down(), store all multicast -addresses via mld_add_delrec(). But when link up, we don't call ipv6_mc_up() -for non-Ethernet interface to remove the addresses. This makes idev->mc_tomb -getting bigger and bigger. The call stack looks like: - -addrconf_notify(NETDEV_REGISTER) - ipv6_add_dev - ipv6_dev_mc_inc(ff01::1) - ipv6_dev_mc_inc(ff02::1) - ipv6_dev_mc_inc(ff02::2) - -addrconf_notify(NETDEV_UP) - addrconf_dev_config - /* Alas, we support only Ethernet autoconfiguration. */ - return; - -addrconf_notify(NETDEV_DOWN) - addrconf_ifdown - ipv6_mc_down - igmp6_group_dropped(ff02::2) - mld_add_delrec(ff02::2) - igmp6_group_dropped(ff02::1) - igmp6_group_dropped(ff01::1) - -After investigating, I can't found a rule to disable multicast on -non-Ethernet interface. In RFC2460, the link could be Ethernet, PPP, ATM, -tunnels, etc. In IPv4, it doesn't check the dev type when calls ip_mc_up() -in inetdev_event(). Even for IPv6, we don't check the dev type and call -ipv6_add_dev(), ipv6_dev_mc_inc() after register device. - -So I think it's OK to fix this memory consumer by calling ipv6_mc_up() for -non-Ethernet interface. - -v2: Also check IFF_MULTICAST flag to make sure the interface supports - multicast - -Reported-by: Rafał Miłecki -Tested-by: Rafał Miłecki -Fixes: 74235a25c673 ("[IPV6] addrconf: Fix IPv6 on tuntap tunnels") -Fixes: 1666d49e1d41 ("mld: do not remove mld souce list info when set link down") -Signed-off-by: Hangbin Liu -Signed-off-by: David S. Miller ---- - net/ipv6/addrconf.c | 4 ++++ - 1 file changed, 4 insertions(+) - ---- a/net/ipv6/addrconf.c -+++ b/net/ipv6/addrconf.c -@@ -3291,6 +3291,10 @@ static void addrconf_dev_config(struct n - (dev->type != ARPHRD_NONE) && - (dev->type != ARPHRD_RAWIP)) { - /* Alas, we support only Ethernet autoconfiguration. */ -+ idev = __in6_dev_get(dev); -+ if (!IS_ERR_OR_NULL(idev) && dev->flags & IFF_UP && -+ dev->flags & IFF_MULTICAST) -+ ipv6_mc_up(idev); - return; - } - diff --git a/target/linux/generic/backport-4.19/702-v4.20-net-ethernet-Add-helper-for-MACs-which-support-asym-.patch b/target/linux/generic/backport-4.19/702-v4.20-net-ethernet-Add-helper-for-MACs-which-support-asym-.patch index 3ada51636b..96de83dabc 100644 --- a/target/linux/generic/backport-4.19/702-v4.20-net-ethernet-Add-helper-for-MACs-which-support-asym-.patch +++ b/target/linux/generic/backport-4.19/702-v4.20-net-ethernet-Add-helper-for-MACs-which-support-asym-.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -1777,6 +1777,19 @@ int phy_set_max_speed(struct phy_device +@@ -1781,6 +1781,19 @@ int phy_set_max_speed(struct phy_device } EXPORT_SYMBOL(phy_set_max_speed); @@ -39,7 +39,7 @@ Signed-off-by: David S. Miller struct device_node *node = phydev->mdio.dev.of_node; --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -1049,6 +1049,7 @@ int phy_mii_ioctl(struct phy_device *phy +@@ -1051,6 +1051,7 @@ int phy_mii_ioctl(struct phy_device *phy int phy_start_interrupts(struct phy_device *phydev); void phy_print_status(struct phy_device *phydev); int phy_set_max_speed(struct phy_device *phydev, u32 max_speed); diff --git a/target/linux/generic/backport-4.19/703-v4.20-net-ethernet-Add-helper-for-set_pauseparam-for-Asym-.patch b/target/linux/generic/backport-4.19/703-v4.20-net-ethernet-Add-helper-for-set_pauseparam-for-Asym-.patch index 4ad3bf698a..070544ea63 100644 --- a/target/linux/generic/backport-4.19/703-v4.20-net-ethernet-Add-helper-for-set_pauseparam-for-Asym-.patch +++ b/target/linux/generic/backport-4.19/703-v4.20-net-ethernet-Add-helper-for-set_pauseparam-for-Asym-.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -1790,6 +1790,36 @@ void phy_support_asym_pause(struct phy_d +@@ -1794,6 +1794,36 @@ void phy_support_asym_pause(struct phy_d } EXPORT_SYMBOL(phy_support_asym_pause); @@ -56,7 +56,7 @@ Signed-off-by: David S. Miller struct device_node *node = phydev->mdio.dev.of_node; --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -1050,6 +1050,7 @@ int phy_start_interrupts(struct phy_devi +@@ -1052,6 +1052,7 @@ int phy_start_interrupts(struct phy_devi void phy_print_status(struct phy_device *phydev); int phy_set_max_speed(struct phy_device *phydev, u32 max_speed); void phy_support_asym_pause(struct phy_device *phydev); diff --git a/target/linux/generic/backport-4.19/704-v4.20-net-phy-Stop-with-excessive-soft-reset.patch b/target/linux/generic/backport-4.19/704-v4.20-net-phy-Stop-with-excessive-soft-reset.patch index 00ef6b7a1d..d9c4b4ecdd 100644 --- a/target/linux/generic/backport-4.19/704-v4.20-net-phy-Stop-with-excessive-soft-reset.patch +++ b/target/linux/generic/backport-4.19/704-v4.20-net-phy-Stop-with-excessive-soft-reset.patch @@ -29,7 +29,7 @@ Signed-off-by: Russell King --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -886,8 +886,6 @@ int phy_init_hw(struct phy_device *phyde +@@ -890,8 +890,6 @@ int phy_init_hw(struct phy_device *phyde if (phydev->drv->soft_reset) ret = phydev->drv->soft_reset(phydev); diff --git a/target/linux/generic/backport-4.19/705-v5.1-net-phy-provide-full-set-of-accessor-functions-to-MM.patch b/target/linux/generic/backport-4.19/705-v5.1-net-phy-provide-full-set-of-accessor-functions-to-MM.patch index 9a587ad3a6..2dbf9ebd10 100644 --- a/target/linux/generic/backport-4.19/705-v5.1-net-phy-provide-full-set-of-accessor-functions-to-MM.patch +++ b/target/linux/generic/backport-4.19/705-v5.1-net-phy-provide-full-set-of-accessor-functions-to-MM.patch @@ -208,7 +208,7 @@ Signed-off-by: Russell King return phydev->drv->read_page(phydev); --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -695,17 +695,6 @@ size_t phy_speeds(unsigned int *speeds, +@@ -697,17 +697,6 @@ size_t phy_speeds(unsigned int *speeds, void phy_resolve_aneg_linkmode(struct phy_device *phydev); /** @@ -226,7 +226,7 @@ Signed-off-by: Russell King * phy_read - Convenience function for reading a given PHY register * @phydev: the phy_device struct * @regnum: register number to read -@@ -760,9 +749,60 @@ static inline int __phy_write(struct phy +@@ -762,9 +751,60 @@ static inline int __phy_write(struct phy val); } @@ -287,7 +287,7 @@ Signed-off-by: Russell King /** * __phy_set_bits - Convenience function for setting bits in a PHY register * @phydev: the phy_device struct -@@ -813,6 +853,66 @@ static inline int phy_clear_bits(struct +@@ -815,6 +855,66 @@ static inline int phy_clear_bits(struct } /** @@ -354,7 +354,7 @@ Signed-off-by: Russell King * phy_interrupt_is_valid - Convenience function for testing a given PHY irq * @phydev: the phy_device struct * -@@ -888,18 +988,6 @@ static inline bool phy_is_pseudo_fixed_l +@@ -890,18 +990,6 @@ static inline bool phy_is_pseudo_fixed_l return phydev->is_pseudo_fixed_link; } diff --git a/target/linux/generic/backport-4.19/706-v5.1-net-phy-add-register-modifying-helpers-returning-1-o.patch b/target/linux/generic/backport-4.19/706-v5.1-net-phy-add-register-modifying-helpers-returning-1-o.patch index dddfcc2018..1cd26a2ad3 100644 --- a/target/linux/generic/backport-4.19/706-v5.1-net-phy-add-register-modifying-helpers-returning-1-o.patch +++ b/target/linux/generic/backport-4.19/706-v5.1-net-phy-add-register-modifying-helpers-returning-1-o.patch @@ -191,7 +191,7 @@ Signed-off-by: Russell King } --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -795,13 +795,21 @@ int phy_write_mmd(struct phy_device *phy +@@ -797,13 +797,21 @@ int phy_write_mmd(struct phy_device *phy */ int __phy_write_mmd(struct phy_device *phydev, int devad, u32 regnum, u16 val); diff --git a/target/linux/generic/backport-4.19/707-v5.1-net-phy-add-genphy_c45_check_and_restart_aneg.patch b/target/linux/generic/backport-4.19/707-v5.1-net-phy-add-genphy_c45_check_and_restart_aneg.patch index 6d47fa9634..0f2a216aa5 100644 --- a/target/linux/generic/backport-4.19/707-v5.1-net-phy-add-genphy_c45_check_and_restart_aneg.patch +++ b/target/linux/generic/backport-4.19/707-v5.1-net-phy-add-genphy_c45_check_and_restart_aneg.patch @@ -54,7 +54,7 @@ Signed-off-by: David S. Miller * --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -1098,6 +1098,7 @@ int genphy_write_mmd_unsupported(struct +@@ -1100,6 +1100,7 @@ int genphy_write_mmd_unsupported(struct /* Clause 45 PHY */ int genphy_c45_restart_aneg(struct phy_device *phydev); diff --git a/target/linux/generic/backport-4.19/737-v5.5-net-phy-add-core-phylib-sfp-support.patch b/target/linux/generic/backport-4.19/737-v5.5-net-phy-add-core-phylib-sfp-support.patch index 9b34d40a0f..3bb87ab963 100644 --- a/target/linux/generic/backport-4.19/737-v5.5-net-phy-add-core-phylib-sfp-support.patch +++ b/target/linux/generic/backport-4.19/737-v5.5-net-phy-add-core-phylib-sfp-support.patch @@ -54,7 +54,7 @@ Signed-off-by: Russell King #include #include #include -@@ -944,6 +945,65 @@ void phy_attached_print(struct phy_devic +@@ -948,6 +949,65 @@ void phy_attached_print(struct phy_devic EXPORT_SYMBOL(phy_attached_print); /** @@ -120,7 +120,7 @@ Signed-off-by: Russell King * phy_attach_direct - attach a network device to a given PHY device pointer * @dev: network device to attach * @phydev: Pointer to phy_device to attach -@@ -1016,6 +1076,9 @@ int phy_attach_direct(struct net_device +@@ -1020,6 +1080,9 @@ int phy_attach_direct(struct net_device phydev->attached_dev = dev; dev->phydev = phydev; @@ -130,7 +130,7 @@ Signed-off-by: Russell King /* Some Ethernet drivers try to connect to a PHY device before * calling register_netdevice() -> netdev_register_kobject() and * does the dev->dev.kobj initialization. Here we only check for -@@ -1950,6 +2013,9 @@ static int phy_remove(struct device *dev +@@ -1954,6 +2017,9 @@ static int phy_remove(struct device *dev phydev->state = PHY_DOWN; mutex_unlock(&phydev->lock); @@ -151,7 +151,7 @@ Signed-off-by: Russell King struct sk_buff; /* -@@ -382,6 +384,8 @@ struct phy_c45_device_ids { +@@ -383,6 +385,8 @@ struct phy_c45_device_ids { * irq: IRQ number of the PHY's interrupt (-1 if none) * phy_timer: The timer for handling the state machine * phy_queue: A work_queue for the phy_mac_interrupt @@ -160,7 +160,7 @@ Signed-off-by: Russell King * attached_dev: The attached enet driver's device instance ptr * adjust_link: Callback for the enet controller to respond to * changes in the link state. -@@ -471,6 +475,9 @@ struct phy_device { +@@ -473,6 +477,9 @@ struct phy_device { struct mutex lock; @@ -170,7 +170,7 @@ Signed-off-by: Russell King struct phylink *phylink; struct net_device *attached_dev; -@@ -1031,6 +1038,10 @@ int phy_suspend(struct phy_device *phyde +@@ -1033,6 +1040,10 @@ int phy_suspend(struct phy_device *phyde int phy_resume(struct phy_device *phydev); int __phy_resume(struct phy_device *phydev); int phy_loopback(struct phy_device *phydev, bool enable); diff --git a/target/linux/generic/backport-4.19/740-v5.5-net-phy-avoid-matching-all-ones-clause-45-PHY-IDs.patch b/target/linux/generic/backport-4.19/740-v5.5-net-phy-avoid-matching-all-ones-clause-45-PHY-IDs.patch index 81f161e9b1..08c7a402f5 100644 --- a/target/linux/generic/backport-4.19/740-v5.5-net-phy-avoid-matching-all-ones-clause-45-PHY-IDs.patch +++ b/target/linux/generic/backport-4.19/740-v5.5-net-phy-avoid-matching-all-ones-clause-45-PHY-IDs.patch @@ -37,7 +37,7 @@ Signed-off-by: Russell King --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -335,7 +335,7 @@ static int phy_bus_match(struct device * +@@ -339,7 +339,7 @@ static int phy_bus_match(struct device * if (phydev->is_c45) { for (i = 1; i < num_ids; i++) { @@ -46,7 +46,7 @@ Signed-off-by: Russell King continue; if ((phydrv->phy_id & phydrv->phy_id_mask) == -@@ -623,10 +623,13 @@ static int get_phy_id(struct mii_bus *bu +@@ -627,10 +627,13 @@ static int get_phy_id(struct mii_bus *bu */ struct phy_device *get_phy_device(struct mii_bus *bus, int addr, bool is_c45) { diff --git a/target/linux/generic/hack-4.19/647-netfilter-flow-acct.patch b/target/linux/generic/hack-4.19/647-netfilter-flow-acct.patch index fd8a871113..ac270944e6 100644 --- a/target/linux/generic/hack-4.19/647-netfilter-flow-acct.patch +++ b/target/linux/generic/hack-4.19/647-netfilter-flow-acct.patch @@ -52,7 +52,7 @@ /* For layer 4 checksum field offset. */ #include #include -@@ -267,6 +268,7 @@ nf_flow_offload_ip_hook(void *priv, stru +@@ -268,6 +269,7 @@ nf_flow_offload_ip_hook(void *priv, stru skb->dev = outdev; nexthop = rt_nexthop(rt, flow->tuplehash[!dir].tuple.src_v4.s_addr); skb_dst_set_noref(skb, &rt->dst); @@ -60,7 +60,7 @@ neigh_xmit(NEIGH_ARP_TABLE, outdev, &nexthop, skb); return NF_STOLEN; -@@ -487,6 +489,7 @@ nf_flow_offload_ipv6_hook(void *priv, st +@@ -489,6 +491,7 @@ nf_flow_offload_ipv6_hook(void *priv, st skb->dev = outdev; nexthop = rt6_nexthop(rt, &flow->tuplehash[!dir].tuple.src_v6); skb_dst_set_noref(skb, &rt->dst); diff --git a/target/linux/generic/hack-4.19/702-phy_add_aneg_done_function.patch b/target/linux/generic/hack-4.19/702-phy_add_aneg_done_function.patch index a0e6484be8..56124f305c 100644 --- a/target/linux/generic/hack-4.19/702-phy_add_aneg_done_function.patch +++ b/target/linux/generic/hack-4.19/702-phy_add_aneg_done_function.patch @@ -1,6 +1,6 @@ --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -555,6 +555,12 @@ struct phy_driver { +@@ -557,6 +557,12 @@ struct phy_driver { /* Determines the negotiated speed and duplex */ int (*read_status)(struct phy_device *phydev); @@ -15,7 +15,7 @@ --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -1577,6 +1577,9 @@ int genphy_update_link(struct phy_device +@@ -1581,6 +1581,9 @@ int genphy_update_link(struct phy_device { int status; diff --git a/target/linux/generic/hack-4.19/721-phy_packets.patch b/target/linux/generic/hack-4.19/721-phy_packets.patch index 1ad7d46764..33ae7043b7 100644 --- a/target/linux/generic/hack-4.19/721-phy_packets.patch +++ b/target/linux/generic/hack-4.19/721-phy_packets.patch @@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau help --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -3253,10 +3253,20 @@ static int xmit_one(struct sk_buff *skb, +@@ -3255,10 +3255,20 @@ static int xmit_one(struct sk_buff *skb, if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all)) dev_queue_xmit_nit(skb, dev); diff --git a/target/linux/generic/hack-4.19/901-debloat_sock_diag.patch b/target/linux/generic/hack-4.19/901-debloat_sock_diag.patch index 639f76d309..f0ea558c4d 100644 --- a/target/linux/generic/hack-4.19/901-debloat_sock_diag.patch +++ b/target/linux/generic/hack-4.19/901-debloat_sock_diag.patch @@ -96,7 +96,7 @@ Signed-off-by: Felix Fietkau u64 res; --- a/net/ipv4/Kconfig +++ b/net/ipv4/Kconfig -@@ -425,6 +425,7 @@ config INET_XFRM_MODE_BEET +@@ -426,6 +426,7 @@ config INET_XFRM_MODE_BEET config INET_DIAG tristate "INET: socket monitoring interface" diff --git a/target/linux/generic/hack-4.19/902-debloat_proc.patch b/target/linux/generic/hack-4.19/902-debloat_proc.patch index 0f4f445624..dd390f39bd 100644 --- a/target/linux/generic/hack-4.19/902-debloat_proc.patch +++ b/target/linux/generic/hack-4.19/902-debloat_proc.patch @@ -232,7 +232,7 @@ Signed-off-by: Felix Fietkau if (!pe) --- a/mm/vmalloc.c +++ b/mm/vmalloc.c -@@ -2749,6 +2749,8 @@ static const struct seq_operations vmall +@@ -2752,6 +2752,8 @@ static const struct seq_operations vmall static int __init proc_vmalloc_init(void) { @@ -327,7 +327,7 @@ Signed-off-by: Felix Fietkau --- a/net/core/sock.c +++ b/net/core/sock.c -@@ -3486,6 +3486,8 @@ static __net_initdata struct pernet_oper +@@ -3489,6 +3489,8 @@ static __net_initdata struct pernet_oper static int __init proto_init(void) { @@ -338,7 +338,7 @@ Signed-off-by: Felix Fietkau --- a/net/ipv4/fib_trie.c +++ b/net/ipv4/fib_trie.c -@@ -2717,11 +2717,13 @@ static const struct seq_operations fib_r +@@ -2720,11 +2720,13 @@ static const struct seq_operations fib_r int __net_init fib_proc_init(struct net *net) { @@ -354,7 +354,7 @@ Signed-off-by: Felix Fietkau fib_triestat_seq_show, NULL)) goto out2; -@@ -2732,17 +2734,21 @@ int __net_init fib_proc_init(struct net +@@ -2735,17 +2737,21 @@ int __net_init fib_proc_init(struct net return 0; out3: diff --git a/target/linux/generic/pending-4.19/184-USB-serial-option-add-Wistron-Neweb-D19Q1.patch b/target/linux/generic/pending-4.19/184-USB-serial-option-add-Wistron-Neweb-D19Q1.patch deleted file mode 100644 index a37e76d350..0000000000 --- a/target/linux/generic/pending-4.19/184-USB-serial-option-add-Wistron-Neweb-D19Q1.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 9d2e23253eb5fabff02a7ce4be9c4a7fc23562e8 Mon Sep 17 00:00:00 2001 -From: Pawel Dembicki -Date: Fri, 20 Mar 2020 22:56:28 +0100 -Subject: [PATCH v2 3/3] USB: serial: option: add Wistron Neweb D19Q1 - -This modem is embedded on dlink dwr-960 router. -The oem configuration states: - -T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 0 -D: Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 -P: Vendor=1435 ProdID=d191 Rev=ff.ff -S: Manufacturer=Android -S: Product=Android -S: SerialNumber=0123456789ABCDEF -C:* #Ifs= 6 Cfg#= 1 Atr=80 MxPwr=500mA -I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) -E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms -E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms -I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none) -E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms -E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms -I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none) -E: Ad=84(I) Atr=03(Int.) MxPS= 10 Ivl=32ms -E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms -E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms -I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none) -E: Ad=86(I) Atr=03(Int.) MxPS= 10 Ivl=32ms -E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms -E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms -I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan -E: Ad=88(I) Atr=03(Int.) MxPS= 8 Ivl=32ms -E: Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms -E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms -I:* If#= 5 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none) -E: Ad=89(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms -E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=125us - -Tested on openwrt distribution - -Signed-off-by: Pawel Dembicki ---- - drivers/usb/serial/option.c | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/drivers/usb/serial/option.c -+++ b/drivers/usb/serial/option.c -@@ -1990,6 +1990,8 @@ static const struct usb_device_id option - { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) }, /* D-Link DWM-152/C1 */ - { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e02, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/C1 */ - { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x7e11, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/A3 */ -+ { USB_DEVICE_INTERFACE_CLASS(0x1435, 0xd191, 0xff), /* Wistron Neweb D19Q1 */ -+ .driver_info = RSVD(1) | RSVD(4) }, - { USB_DEVICE_INTERFACE_CLASS(0x2020, 0x2031, 0xff), /* Olicard 600 */ - .driver_info = RSVD(4) }, - { USB_DEVICE_INTERFACE_CLASS(0x2020, 0x2060, 0xff), /* BroadMobi BM818 */ diff --git a/target/linux/generic/pending-4.19/630-packet_socket_type.patch b/target/linux/generic/pending-4.19/630-packet_socket_type.patch index 25f44b466a..8323240ae4 100644 --- a/target/linux/generic/pending-4.19/630-packet_socket_type.patch +++ b/target/linux/generic/pending-4.19/630-packet_socket_type.patch @@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -2174,12 +2176,12 @@ static int tpacket_rcv(struct sk_buff *s +@@ -2175,12 +2177,12 @@ static int tpacket_rcv(struct sk_buff *s BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32); BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48); @@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -3265,6 +3267,7 @@ static int packet_create(struct net *net +@@ -3277,6 +3279,7 @@ static int packet_create(struct net *net mutex_init(&po->pg_vec_lock); po->rollover = NULL; po->prot_hook.func = packet_rcv; @@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -3885,6 +3888,16 @@ packet_setsockopt(struct socket *sock, i +@@ -3897,6 +3900,16 @@ packet_setsockopt(struct socket *sock, i po->xmit = val ? packet_direct_xmit : dev_queue_xmit; return 0; } @@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau default: return -ENOPROTOOPT; } -@@ -3937,6 +3950,13 @@ static int packet_getsockopt(struct sock +@@ -3949,6 +3962,13 @@ static int packet_getsockopt(struct sock case PACKET_VNET_HDR: val = po->has_vnet_hdr; break; @@ -128,7 +128,7 @@ Signed-off-by: Felix Fietkau break; --- a/net/packet/internal.h +++ b/net/packet/internal.h -@@ -132,6 +132,7 @@ struct packet_sock { +@@ -135,6 +135,7 @@ struct packet_sock { struct net_device __rcu *cached_dev; int (*xmit)(struct sk_buff *skb); struct packet_type prot_hook ____cacheline_aligned_in_smp; diff --git a/target/linux/generic/pending-4.19/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-4.19/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch index cfdfe10836..9fd05107c4 100644 --- a/target/linux/generic/pending-4.19/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/target/linux/generic/pending-4.19/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -66,7 +66,7 @@ Signed-off-by: Jonas Gorski static void rt_fibinfo_free(struct rtable __rcu **rtp) --- a/net/ipv4/fib_trie.c +++ b/net/ipv4/fib_trie.c -@@ -2474,6 +2474,7 @@ static const char *const rtn_type_names[ +@@ -2477,6 +2477,7 @@ static const char *const rtn_type_names[ [RTN_THROW] = "THROW", [RTN_NAT] = "NAT", [RTN_XRESOLVE] = "XRESOLVE", diff --git a/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index 61cc4e830a..75cc8d2f7d 100644 --- a/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau __u16 tc_index; /* traffic control index */ --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -5454,6 +5454,9 @@ static enum gro_result dev_gro_receive(s +@@ -5456,6 +5456,9 @@ static enum gro_result dev_gro_receive(s int same_flow; int grow; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau if (netif_elide_gro(skb->dev)) goto normal; -@@ -7112,6 +7115,48 @@ static void __netdev_adjacent_dev_unlink +@@ -7114,6 +7117,48 @@ static void __netdev_adjacent_dev_unlink &upper_dev->adj_list.lower); } @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau static int __netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev, bool master, void *upper_priv, void *upper_info, -@@ -7162,6 +7207,7 @@ static int __netdev_upper_dev_link(struc +@@ -7164,6 +7209,7 @@ static int __netdev_upper_dev_link(struc if (ret) return ret; @@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); ret = notifier_to_errno(ret); -@@ -7254,6 +7300,7 @@ void netdev_upper_dev_unlink(struct net_ +@@ -7256,6 +7302,7 @@ void netdev_upper_dev_unlink(struct net_ __netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); -@@ -7893,6 +7940,7 @@ int dev_set_mac_address(struct net_devic +@@ -7895,6 +7942,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; diff --git a/target/linux/generic/pending-4.19/703-phy-add-detach-callback-to-struct-phy_driver.patch b/target/linux/generic/pending-4.19/703-phy-add-detach-callback-to-struct-phy_driver.patch index 1c180b225b..c8847a0234 100644 --- a/target/linux/generic/pending-4.19/703-phy-add-detach-callback-to-struct-phy_driver.patch +++ b/target/linux/generic/pending-4.19/703-phy-add-detach-callback-to-struct-phy_driver.patch @@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -1201,6 +1201,9 @@ void phy_detach(struct phy_device *phyde +@@ -1205,6 +1205,9 @@ void phy_detach(struct phy_device *phyde struct module *ndev_owner = dev->dev.parent->driver->owner; struct mii_bus *bus; @@ -23,7 +23,7 @@ Signed-off-by: Gabor Juhos sysfs_remove_link(&phydev->mdio.dev.kobj, "attached_dev"); --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -567,6 +567,12 @@ struct phy_driver { +@@ -569,6 +569,12 @@ struct phy_driver { */ int (*did_interrupt)(struct phy_device *phydev); diff --git a/target/linux/imx6/patches-4.19/001-ARM-dts-imx-Add-GW5907-board-support.patch b/target/linux/imx6/patches-4.19/001-ARM-dts-imx-Add-GW5907-board-support.patch index a4e9604ffa..99d11692fa 100644 --- a/target/linux/imx6/patches-4.19/001-ARM-dts-imx-Add-GW5907-board-support.patch +++ b/target/linux/imx6/patches-4.19/001-ARM-dts-imx-Add-GW5907-board-support.patch @@ -26,11 +26,9 @@ Signed-off-by: Shawn Guo create mode 100644 arch/arm/boot/dts/imx6q-gw5907.dts create mode 100644 arch/arm/boot/dts/imx6qdl-gw5907.dtsi -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index 1e9e1af..9ee80e2 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -422,6 +422,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ +@@ -404,6 +404,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ imx6dl-gw560x.dtb \ imx6dl-gw5903.dtb \ imx6dl-gw5904.dtb \ @@ -38,7 +36,7 @@ index 1e9e1af..9ee80e2 100644 imx6dl-hummingboard.dtb \ imx6dl-hummingboard-emmc-som-v15.dtb \ imx6dl-hummingboard-som-v15.dtb \ -@@ -493,6 +494,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ +@@ -471,6 +472,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ imx6q-gw560x.dtb \ imx6q-gw5903.dtb \ imx6q-gw5904.dtb \ @@ -46,9 +44,6 @@ index 1e9e1af..9ee80e2 100644 imx6q-h100.dtb \ imx6q-hummingboard.dtb \ imx6q-hummingboard-emmc-som-v15.dtb \ -diff --git a/arch/arm/boot/dts/imx6dl-gw5907.dts b/arch/arm/boot/dts/imx6dl-gw5907.dts -new file mode 100644 -index 00000000..3fa2822 --- /dev/null +++ b/arch/arm/boot/dts/imx6dl-gw5907.dts @@ -0,0 +1,14 @@ @@ -66,9 +61,6 @@ index 00000000..3fa2822 + model = "Gateworks Ventana i.MX6 DualLite/Solo GW5907"; + compatible = "gw,imx6dl-gw5907", "gw,ventana", "fsl,imx6dl"; +}; -diff --git a/arch/arm/boot/dts/imx6q-gw5907.dts b/arch/arm/boot/dts/imx6q-gw5907.dts -new file mode 100644 -index 00000000..b25526e --- /dev/null +++ b/arch/arm/boot/dts/imx6q-gw5907.dts @@ -0,0 +1,14 @@ @@ -86,9 +78,6 @@ index 00000000..b25526e + model = "Gateworks Ventana i.MX6 Dual/Quad GW5907"; + compatible = "gw,imx6q-gw5907", "gw,ventana", "fsl,imx6q"; +}; -diff --git a/arch/arm/boot/dts/imx6qdl-gw5907.dtsi b/arch/arm/boot/dts/imx6qdl-gw5907.dtsi -new file mode 100644 -index 00000000..0bdebdd --- /dev/null +++ b/arch/arm/boot/dts/imx6qdl-gw5907.dtsi @@ -0,0 +1,399 @@ @@ -491,6 +480,3 @@ index 00000000..0bdebdd + >; + }; +}; --- -2.7.4 - diff --git a/target/linux/imx6/patches-4.19/002-ARM-dts-imx-Add-GW5910-board-support.patch b/target/linux/imx6/patches-4.19/002-ARM-dts-imx-Add-GW5910-board-support.patch index aade7650f9..ec982e96ad 100644 --- a/target/linux/imx6/patches-4.19/002-ARM-dts-imx-Add-GW5910-board-support.patch +++ b/target/linux/imx6/patches-4.19/002-ARM-dts-imx-Add-GW5910-board-support.patch @@ -35,11 +35,9 @@ Signed-off-by: Shawn Guo create mode 100644 arch/arm/boot/dts/imx6q-gw5910.dts create mode 100644 arch/arm/boot/dts/imx6qdl-gw5910.dtsi -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index 9ee80e2..85e53cc 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -423,6 +423,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ +@@ -405,6 +405,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ imx6dl-gw5903.dtb \ imx6dl-gw5904.dtb \ imx6dl-gw5907.dtb \ @@ -47,7 +45,7 @@ index 9ee80e2..85e53cc 100644 imx6dl-hummingboard.dtb \ imx6dl-hummingboard-emmc-som-v15.dtb \ imx6dl-hummingboard-som-v15.dtb \ -@@ -495,6 +496,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ +@@ -473,6 +474,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ imx6q-gw5903.dtb \ imx6q-gw5904.dtb \ imx6q-gw5907.dtb \ @@ -55,9 +53,6 @@ index 9ee80e2..85e53cc 100644 imx6q-h100.dtb \ imx6q-hummingboard.dtb \ imx6q-hummingboard-emmc-som-v15.dtb \ -diff --git a/arch/arm/boot/dts/imx6dl-gw5910.dts b/arch/arm/boot/dts/imx6dl-gw5910.dts -new file mode 100644 -index 00000000..0d5e7e5 --- /dev/null +++ b/arch/arm/boot/dts/imx6dl-gw5910.dts @@ -0,0 +1,14 @@ @@ -75,9 +70,6 @@ index 00000000..0d5e7e5 + model = "Gateworks Ventana i.MX6 DualLite/Solo GW5910"; + compatible = "gw,imx6dl-gw5910", "gw,ventana", "fsl,imx6dl"; +}; -diff --git a/arch/arm/boot/dts/imx6q-gw5910.dts b/arch/arm/boot/dts/imx6q-gw5910.dts -new file mode 100644 -index 00000000..6aafa2f --- /dev/null +++ b/arch/arm/boot/dts/imx6q-gw5910.dts @@ -0,0 +1,14 @@ @@ -95,9 +87,6 @@ index 00000000..6aafa2f + model = "Gateworks Ventana i.MX6 Dual/Quad GW5910"; + compatible = "gw,imx6q-gw5910", "gw,ventana", "fsl,imx6q"; +}; -diff --git a/arch/arm/boot/dts/imx6qdl-gw5910.dtsi b/arch/arm/boot/dts/imx6qdl-gw5910.dtsi -new file mode 100644 -index 00000000..be1af74 --- /dev/null +++ b/arch/arm/boot/dts/imx6qdl-gw5910.dtsi @@ -0,0 +1,491 @@ @@ -592,6 +581,3 @@ index 00000000..be1af74 + >; + }; +}; --- -2.7.4 - diff --git a/target/linux/imx6/patches-4.19/003-ARM-dts-imx-Add-GW5913-board-support.patch b/target/linux/imx6/patches-4.19/003-ARM-dts-imx-Add-GW5913-board-support.patch index 2d242fb890..9c46401201 100644 --- a/target/linux/imx6/patches-4.19/003-ARM-dts-imx-Add-GW5913-board-support.patch +++ b/target/linux/imx6/patches-4.19/003-ARM-dts-imx-Add-GW5913-board-support.patch @@ -30,11 +30,9 @@ Signed-off-by: Shawn Guo create mode 100644 arch/arm/boot/dts/imx6q-gw5913.dts create mode 100644 arch/arm/boot/dts/imx6qdl-gw5913.dtsi -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index 85e53cc..5b059fc 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -424,6 +424,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ +@@ -406,6 +406,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ imx6dl-gw5904.dtb \ imx6dl-gw5907.dtb \ imx6dl-gw5910.dtb \ @@ -42,7 +40,7 @@ index 85e53cc..5b059fc 100644 imx6dl-hummingboard.dtb \ imx6dl-hummingboard-emmc-som-v15.dtb \ imx6dl-hummingboard-som-v15.dtb \ -@@ -497,6 +498,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ +@@ -475,6 +476,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ imx6q-gw5904.dtb \ imx6q-gw5907.dtb \ imx6q-gw5910.dtb \ @@ -50,9 +48,6 @@ index 85e53cc..5b059fc 100644 imx6q-h100.dtb \ imx6q-hummingboard.dtb \ imx6q-hummingboard-emmc-som-v15.dtb \ -diff --git a/arch/arm/boot/dts/imx6dl-gw5913.dts b/arch/arm/boot/dts/imx6dl-gw5913.dts -new file mode 100644 -index 00000000..b74e533 --- /dev/null +++ b/arch/arm/boot/dts/imx6dl-gw5913.dts @@ -0,0 +1,14 @@ @@ -70,9 +65,6 @@ index 00000000..b74e533 + model = "Gateworks Ventana i.MX6 DualLite/Solo GW5913"; + compatible = "gw,imx6dl-gw5913", "gw,ventana", "fsl,imx6dl"; +}; -diff --git a/arch/arm/boot/dts/imx6q-gw5913.dts b/arch/arm/boot/dts/imx6q-gw5913.dts -new file mode 100644 -index 00000000..6f511f1 --- /dev/null +++ b/arch/arm/boot/dts/imx6q-gw5913.dts @@ -0,0 +1,14 @@ @@ -90,9 +82,6 @@ index 00000000..6f511f1 + model = "Gateworks Ventana i.MX6 Dual/Quad GW5913"; + compatible = "gw,imx6q-gw5913", "gw,ventana", "fsl,imx6q"; +}; -diff --git a/arch/arm/boot/dts/imx6qdl-gw5913.dtsi b/arch/arm/boot/dts/imx6qdl-gw5913.dtsi -new file mode 100644 -index 00000000..635c203 --- /dev/null +++ b/arch/arm/boot/dts/imx6qdl-gw5913.dtsi @@ -0,0 +1,348 @@ @@ -444,6 +433,3 @@ index 00000000..635c203 + >; + }; +}; --- -2.7.4 - diff --git a/target/linux/imx6/patches-4.19/004-ARM-dts-imx-Add-GW5912-board-support.patch b/target/linux/imx6/patches-4.19/004-ARM-dts-imx-Add-GW5912-board-support.patch index a47cb279cb..cd03a95d8e 100644 --- a/target/linux/imx6/patches-4.19/004-ARM-dts-imx-Add-GW5912-board-support.patch +++ b/target/linux/imx6/patches-4.19/004-ARM-dts-imx-Add-GW5912-board-support.patch @@ -35,11 +35,9 @@ Signed-off-by: Shawn Guo create mode 100644 arch/arm/boot/dts/imx6q-gw5912.dts create mode 100644 arch/arm/boot/dts/imx6qdl-gw5912.dtsi -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index 5b059fc..1a32a7d 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -424,6 +424,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ +@@ -406,6 +406,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ imx6dl-gw5904.dtb \ imx6dl-gw5907.dtb \ imx6dl-gw5910.dtb \ @@ -47,7 +45,7 @@ index 5b059fc..1a32a7d 100644 imx6dl-gw5913.dtb \ imx6dl-hummingboard.dtb \ imx6dl-hummingboard-emmc-som-v15.dtb \ -@@ -498,6 +499,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ +@@ -476,6 +477,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ imx6q-gw5904.dtb \ imx6q-gw5907.dtb \ imx6q-gw5910.dtb \ @@ -55,9 +53,6 @@ index 5b059fc..1a32a7d 100644 imx6q-gw5913.dtb \ imx6q-h100.dtb \ imx6q-hummingboard.dtb \ -diff --git a/arch/arm/boot/dts/imx6dl-gw5912.dts b/arch/arm/boot/dts/imx6dl-gw5912.dts -new file mode 100644 -index 00000000..5260e01 --- /dev/null +++ b/arch/arm/boot/dts/imx6dl-gw5912.dts @@ -0,0 +1,13 @@ @@ -74,9 +69,6 @@ index 00000000..5260e01 + model = "Gateworks Ventana i.MX6 DualLite/Solo GW5912"; + compatible = "gw,imx6dl-gw5912", "gw,ventana", "fsl,imx6dl"; +}; -diff --git a/arch/arm/boot/dts/imx6q-gw5912.dts b/arch/arm/boot/dts/imx6q-gw5912.dts -new file mode 100644 -index 00000000..4dcbd94 --- /dev/null +++ b/arch/arm/boot/dts/imx6q-gw5912.dts @@ -0,0 +1,13 @@ @@ -93,9 +85,6 @@ index 00000000..4dcbd94 + model = "Gateworks Ventana i.MX6 Dual/Quad GW5912"; + compatible = "gw,imx6q-gw5912", "gw,ventana", "fsl,imx6q"; +}; -diff --git a/arch/arm/boot/dts/imx6qdl-gw5912.dtsi b/arch/arm/boot/dts/imx6qdl-gw5912.dtsi -new file mode 100644 -index 00000000..8c57fd2 --- /dev/null +++ b/arch/arm/boot/dts/imx6qdl-gw5912.dtsi @@ -0,0 +1,461 @@ @@ -560,6 +549,3 @@ index 00000000..8c57fd2 + >; + }; +}; --- -2.7.4 - diff --git a/target/linux/mvebu/patches-4.19/300-mvneta-tx-queue-workaround.patch b/target/linux/mvebu/patches-4.19/300-mvneta-tx-queue-workaround.patch index 4a5ea36144..5d7e769246 100644 --- a/target/linux/mvebu/patches-4.19/300-mvneta-tx-queue-workaround.patch +++ b/target/linux/mvebu/patches-4.19/300-mvneta-tx-queue-workaround.patch @@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau --- --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -4272,6 +4272,15 @@ static int mvneta_ethtool_set_eee(struct +@@ -4271,6 +4271,15 @@ static int mvneta_ethtool_set_eee(struct return phylink_ethtool_set_eee(pp->phylink, eee); } @@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau static const struct net_device_ops mvneta_netdev_ops = { .ndo_open = mvneta_open, .ndo_stop = mvneta_stop, -@@ -4282,6 +4291,7 @@ static const struct net_device_ops mvnet +@@ -4281,6 +4290,7 @@ static const struct net_device_ops mvnet .ndo_fix_features = mvneta_fix_features, .ndo_get_stats64 = mvneta_get_stats64, .ndo_do_ioctl = mvneta_ioctl, diff --git a/target/linux/mvebu/patches-4.19/531-net-mvneta-Add-support-for-2500Mbps-SGMII.patch b/target/linux/mvebu/patches-4.19/531-net-mvneta-Add-support-for-2500Mbps-SGMII.patch index a5553a3e96..f56d726a28 100644 --- a/target/linux/mvebu/patches-4.19/531-net-mvneta-Add-support-for-2500Mbps-SGMII.patch +++ b/target/linux/mvebu/patches-4.19/531-net-mvneta-Add-support-for-2500Mbps-SGMII.patch @@ -32,7 +32,7 @@ Signed-off-by: David S. Miller #define MVNETA_MIB_COUNTERS_BASE 0x3000 #define MVNETA_MIB_LATE_COLLISION 0x7c #define MVNETA_DA_FILT_SPEC_MCAST 0x3400 -@@ -3359,6 +3361,7 @@ static void mvneta_validate(struct net_d +@@ -3358,6 +3360,7 @@ static void mvneta_validate(struct net_d if (state->interface != PHY_INTERFACE_MODE_NA && state->interface != PHY_INTERFACE_MODE_QSGMII && state->interface != PHY_INTERFACE_MODE_SGMII && @@ -40,7 +40,7 @@ Signed-off-by: David S. Miller !phy_interface_mode_is_8023z(state->interface) && !phy_interface_mode_is_rgmii(state->interface)) { bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS); -@@ -3371,9 +3374,15 @@ static void mvneta_validate(struct net_d +@@ -3370,9 +3373,15 @@ static void mvneta_validate(struct net_d /* Asymmetric pause is unsupported */ phylink_set(mask, Pause); @@ -59,7 +59,7 @@ Signed-off-by: David S. Miller if (!phy_interface_mode_is_8023z(state->interface)) { /* 10M and 100M are only supported in non-802.3z mode */ -@@ -3434,12 +3443,14 @@ static void mvneta_mac_config(struct net +@@ -3433,12 +3442,14 @@ static void mvneta_mac_config(struct net struct mvneta_port *pp = netdev_priv(ndev); u32 new_ctrl0, gmac_ctrl0 = mvreg_read(pp, MVNETA_GMAC_CTRL_0); u32 new_ctrl2, gmac_ctrl2 = mvreg_read(pp, MVNETA_GMAC_CTRL_2); @@ -74,7 +74,7 @@ Signed-off-by: David S. Miller new_clk = gmac_clk & ~MVNETA_GMAC_1MS_CLOCK_ENABLE; new_an = gmac_an & ~(MVNETA_GMAC_INBAND_AN_ENABLE | MVNETA_GMAC_INBAND_RESTART_AN | -@@ -3472,7 +3483,7 @@ static void mvneta_mac_config(struct net +@@ -3471,7 +3482,7 @@ static void mvneta_mac_config(struct net if (state->duplex) new_an |= MVNETA_GMAC_CONFIG_FULL_DUPLEX; @@ -83,7 +83,7 @@ Signed-off-by: David S. Miller new_an |= MVNETA_GMAC_CONFIG_GMII_SPEED; else if (state->speed == SPEED_100) new_an |= MVNETA_GMAC_CONFIG_MII_SPEED; -@@ -3511,10 +3522,18 @@ static void mvneta_mac_config(struct net +@@ -3510,10 +3521,18 @@ static void mvneta_mac_config(struct net MVNETA_GMAC_FORCE_LINK_DOWN); } diff --git a/target/linux/mvebu/patches-4.19/533-net-mvneta-Dont-advertise-2.5G-modes.patch b/target/linux/mvebu/patches-4.19/533-net-mvneta-Dont-advertise-2.5G-modes.patch index 01b101283c..e85a61d197 100644 --- a/target/linux/mvebu/patches-4.19/533-net-mvneta-Dont-advertise-2.5G-modes.patch +++ b/target/linux/mvebu/patches-4.19/533-net-mvneta-Dont-advertise-2.5G-modes.patch @@ -27,7 +27,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -3361,7 +3361,6 @@ static void mvneta_validate(struct net_d +@@ -3360,7 +3360,6 @@ static void mvneta_validate(struct net_d if (state->interface != PHY_INTERFACE_MODE_NA && state->interface != PHY_INTERFACE_MODE_QSGMII && state->interface != PHY_INTERFACE_MODE_SGMII && @@ -35,7 +35,7 @@ Signed-off-by: David S. Miller !phy_interface_mode_is_8023z(state->interface) && !phy_interface_mode_is_rgmii(state->interface)) { bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS); -@@ -3375,14 +3374,9 @@ static void mvneta_validate(struct net_d +@@ -3374,14 +3373,9 @@ static void mvneta_validate(struct net_d /* Asymmetric pause is unsupported */ phylink_set(mask, Pause); diff --git a/target/linux/mvebu/patches-4.19/534-net-mvneta-remove-redundant-check-for.patch b/target/linux/mvebu/patches-4.19/534-net-mvneta-remove-redundant-check-for.patch index fd774e0839..435ef92a12 100644 --- a/target/linux/mvebu/patches-4.19/534-net-mvneta-remove-redundant-check-for.patch +++ b/target/linux/mvebu/patches-4.19/534-net-mvneta-remove-redundant-check-for.patch @@ -18,7 +18,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -4268,8 +4268,7 @@ static int mvneta_ethtool_set_eee(struct +@@ -4267,8 +4267,7 @@ static int mvneta_ethtool_set_eee(struct /* The Armada 37x documents do not give limits for this other than * it being an 8-bit register. */ diff --git a/target/linux/mvebu/patches-4.19/535-net-marvell-neta-add-comphy-support.patch b/target/linux/mvebu/patches-4.19/535-net-marvell-neta-add-comphy-support.patch index 272beb6950..ecd38e3baa 100644 --- a/target/linux/mvebu/patches-4.19/535-net-marvell-neta-add-comphy-support.patch +++ b/target/linux/mvebu/patches-4.19/535-net-marvell-neta-add-comphy-support.patch @@ -31,7 +31,7 @@ Signed-off-by: David S. Miller struct mvneta_bm *bm_priv; struct mvneta_bm_pool *pool_long; -@@ -3168,6 +3170,8 @@ static void mvneta_start_dev(struct mvne +@@ -3167,6 +3169,8 @@ static void mvneta_start_dev(struct mvne { int cpu; @@ -40,7 +40,7 @@ Signed-off-by: David S. Miller mvneta_max_rx_size_set(pp, pp->pkt_size); mvneta_txq_max_tx_size_set(pp, pp->pkt_size); -@@ -3230,6 +3234,8 @@ static void mvneta_stop_dev(struct mvnet +@@ -3229,6 +3233,8 @@ static void mvneta_stop_dev(struct mvnet mvneta_tx_reset(pp); mvneta_rx_reset(pp); @@ -49,7 +49,7 @@ Signed-off-by: David S. Miller } static void mvneta_percpu_enable(void *arg) -@@ -3355,6 +3361,7 @@ static int mvneta_set_mac_addr(struct ne +@@ -3354,6 +3360,7 @@ static int mvneta_set_mac_addr(struct ne static void mvneta_validate(struct net_device *ndev, unsigned long *supported, struct phylink_link_state *state) { @@ -57,7 +57,7 @@ Signed-off-by: David S. Miller __ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, }; /* We only support QSGMII, SGMII, 802.3z and RGMII modes */ -@@ -3375,8 +3382,13 @@ static void mvneta_validate(struct net_d +@@ -3374,8 +3381,13 @@ static void mvneta_validate(struct net_d phylink_set(mask, Pause); /* Half-duplex at speeds higher than 100Mbit is unsupported */ @@ -73,7 +73,7 @@ Signed-off-by: David S. Miller if (!phy_interface_mode_is_8023z(state->interface)) { /* 10M and 100M are only supported in non-802.3z mode */ -@@ -3390,6 +3402,11 @@ static void mvneta_validate(struct net_d +@@ -3389,6 +3401,11 @@ static void mvneta_validate(struct net_d __ETHTOOL_LINK_MODE_MASK_NBITS); bitmap_and(state->advertising, state->advertising, mask, __ETHTOOL_LINK_MODE_MASK_NBITS); @@ -85,7 +85,7 @@ Signed-off-by: David S. Miller } static int mvneta_mac_link_state(struct net_device *ndev, -@@ -3401,7 +3418,9 @@ static int mvneta_mac_link_state(struct +@@ -3400,7 +3417,9 @@ static int mvneta_mac_link_state(struct gmac_stat = mvreg_read(pp, MVNETA_GMAC_STATUS); if (gmac_stat & MVNETA_GMAC_SPEED_1000) @@ -96,7 +96,7 @@ Signed-off-by: David S. Miller else if (gmac_stat & MVNETA_GMAC_SPEED_100) state->speed = SPEED_100; else -@@ -3516,12 +3535,20 @@ static void mvneta_mac_config(struct net +@@ -3515,12 +3534,20 @@ static void mvneta_mac_config(struct net MVNETA_GMAC_FORCE_LINK_DOWN); } @@ -117,7 +117,7 @@ Signed-off-by: David S. Miller if (new_ctrl0 != gmac_ctrl0) mvreg_write(pp, MVNETA_GMAC_CTRL_0, new_ctrl0); if (new_ctrl2 != gmac_ctrl2) -@@ -4434,7 +4461,7 @@ static int mvneta_port_power_up(struct m +@@ -4433,7 +4460,7 @@ static int mvneta_port_power_up(struct m if (phy_mode == PHY_INTERFACE_MODE_QSGMII) mvreg_write(pp, MVNETA_SERDES_CFG, MVNETA_QSGMII_SERDES_PROTO); else if (phy_mode == PHY_INTERFACE_MODE_SGMII || @@ -126,7 +126,7 @@ Signed-off-by: David S. Miller mvreg_write(pp, MVNETA_SERDES_CFG, MVNETA_SGMII_SERDES_PROTO); else if (!phy_interface_mode_is_rgmii(phy_mode)) return -EINVAL; -@@ -4451,6 +4478,7 @@ static int mvneta_probe(struct platform_ +@@ -4450,6 +4477,7 @@ static int mvneta_probe(struct platform_ struct mvneta_port *pp; struct net_device *dev; struct phylink *phylink; @@ -134,7 +134,7 @@ Signed-off-by: David S. Miller const char *dt_mac_addr; char hw_mac_addr[ETH_ALEN]; const char *mac_from; -@@ -4476,6 +4504,14 @@ static int mvneta_probe(struct platform_ +@@ -4475,6 +4503,14 @@ static int mvneta_probe(struct platform_ goto err_free_irq; } @@ -149,7 +149,7 @@ Signed-off-by: David S. Miller phylink = phylink_create(dev, pdev->dev.fwnode, phy_mode, &mvneta_phylink_ops); if (IS_ERR(phylink)) { -@@ -4492,6 +4528,7 @@ static int mvneta_probe(struct platform_ +@@ -4491,6 +4527,7 @@ static int mvneta_probe(struct platform_ pp = netdev_priv(dev); spin_lock_init(&pp->lock); pp->phylink = phylink; diff --git a/target/linux/mvebu/patches-4.19/536-net-marvell-neta-disable-comphy-when-setting-mode.patch b/target/linux/mvebu/patches-4.19/536-net-marvell-neta-disable-comphy-when-setting-mode.patch index bac9a55cf0..dcaeb18fa3 100644 --- a/target/linux/mvebu/patches-4.19/536-net-marvell-neta-disable-comphy-when-setting-mode.patch +++ b/target/linux/mvebu/patches-4.19/536-net-marvell-neta-disable-comphy-when-setting-mode.patch @@ -28,7 +28,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -3166,11 +3166,26 @@ static int mvneta_setup_txqs(struct mvne +@@ -3165,11 +3165,26 @@ static int mvneta_setup_txqs(struct mvne return 0; } @@ -56,7 +56,7 @@ Signed-off-by: David S. Miller mvneta_max_rx_size_set(pp, pp->pkt_size); mvneta_txq_max_tx_size_set(pp, pp->pkt_size); -@@ -3542,12 +3557,15 @@ static void mvneta_mac_config(struct net +@@ -3541,12 +3556,15 @@ static void mvneta_mac_config(struct net if (state->speed == SPEED_2500) new_ctrl4 |= MVNETA_GMAC4_SHORT_PREAMBLE_ENABLE; diff --git a/target/linux/mvebu/patches-4.19/537-net-mvneta-add-2500baset-support.patch b/target/linux/mvebu/patches-4.19/537-net-mvneta-add-2500baset-support.patch index 9186ceb0da..639d5541fe 100644 --- a/target/linux/mvebu/patches-4.19/537-net-mvneta-add-2500baset-support.patch +++ b/target/linux/mvebu/patches-4.19/537-net-mvneta-add-2500baset-support.patch @@ -24,7 +24,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -3402,6 +3402,7 @@ static void mvneta_validate(struct net_d +@@ -3401,6 +3401,7 @@ static void mvneta_validate(struct net_d phylink_set(mask, 1000baseX_Full); } if (pp->comphy || state->interface == PHY_INTERFACE_MODE_2500BASEX) {