kernel: bump 4.19 to 4.19.115
authorKoen Vandeputte <koen.vandeputte@ncentric.com>
Wed, 15 Apr 2020 13:11:54 +0000 (15:11 +0200)
committerKoen Vandeputte <koen.vandeputte@ncentric.com>
Thu, 16 Apr 2020 11:23:11 +0000 (13:23 +0200)
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 <koen.vandeputte@ncentric.com>
47 files changed:
include/kernel-version.mk
target/linux/apm821xx/patches-4.19/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch
target/linux/apm821xx/patches-4.19/802-usb-xhci-force-msi-renesas-xhci.patch
target/linux/ath79/patches-4.19/0060-serial-ar933x_uart-set-UART_CS_-RX-TX-_READY_ORIDE.patch
target/linux/ath79/patches-4.19/0061-tty-serial-ar933x-uart-rs485-gpio.patch
target/linux/ath79/patches-4.19/410-spi-ath79-Implement-the-spi_mem-interface.patch
target/linux/ath79/patches-4.19/910-unaligned_access_hacks.patch
target/linux/bcm27xx/patches-4.19/950-0039-Add-dwc_otg-driver.patch
target/linux/bcm27xx/patches-4.19/950-0043-MMC-added-alternative-MMC-driver.patch
target/linux/bcm27xx/patches-4.19/950-0061-Improve-__copy_to_user-and-__copy_from_user-performa.patch
target/linux/bcm27xx/patches-4.19/950-0339-rtc-rv3028-add-new-driver.patch
target/linux/bcm27xx/patches-4.19/950-0476-usb-xhci-Show-that-the-VIA-VL805-supports-LPM.patch
target/linux/bcm27xx/patches-4.19/950-0609-xhci-add-quirk-for-host-controllers-that-don-t-updat.patch
target/linux/bcm27xx/patches-4.19/950-0636-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch
target/linux/bcm27xx/patches-4.19/950-0710-ARM-dts-bcm283x-Define-MMC-interfaces-at-board-level.patch
target/linux/bcm27xx/patches-4.19/950-0711-ARM-dts-bcm2835-rpi-zero-w-Fix-bus-width-of-sdhci.patch
target/linux/bcm53xx/patches-4.19/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch
target/linux/generic/backport-4.19/600-ipv6-addrconf-call-ipv6_mc_up-for-non-Ethernet-inter.patch [deleted file]
target/linux/generic/backport-4.19/702-v4.20-net-ethernet-Add-helper-for-MACs-which-support-asym-.patch
target/linux/generic/backport-4.19/703-v4.20-net-ethernet-Add-helper-for-set_pauseparam-for-Asym-.patch
target/linux/generic/backport-4.19/704-v4.20-net-phy-Stop-with-excessive-soft-reset.patch
target/linux/generic/backport-4.19/705-v5.1-net-phy-provide-full-set-of-accessor-functions-to-MM.patch
target/linux/generic/backport-4.19/706-v5.1-net-phy-add-register-modifying-helpers-returning-1-o.patch
target/linux/generic/backport-4.19/707-v5.1-net-phy-add-genphy_c45_check_and_restart_aneg.patch
target/linux/generic/backport-4.19/737-v5.5-net-phy-add-core-phylib-sfp-support.patch
target/linux/generic/backport-4.19/740-v5.5-net-phy-avoid-matching-all-ones-clause-45-PHY-IDs.patch
target/linux/generic/hack-4.19/647-netfilter-flow-acct.patch
target/linux/generic/hack-4.19/702-phy_add_aneg_done_function.patch
target/linux/generic/hack-4.19/721-phy_packets.patch
target/linux/generic/hack-4.19/901-debloat_sock_diag.patch
target/linux/generic/hack-4.19/902-debloat_proc.patch
target/linux/generic/pending-4.19/184-USB-serial-option-add-Wistron-Neweb-D19Q1.patch [deleted file]
target/linux/generic/pending-4.19/630-packet_socket_type.patch
target/linux/generic/pending-4.19/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
target/linux/generic/pending-4.19/703-phy-add-detach-callback-to-struct-phy_driver.patch
target/linux/imx6/patches-4.19/001-ARM-dts-imx-Add-GW5907-board-support.patch
target/linux/imx6/patches-4.19/002-ARM-dts-imx-Add-GW5910-board-support.patch
target/linux/imx6/patches-4.19/003-ARM-dts-imx-Add-GW5913-board-support.patch
target/linux/imx6/patches-4.19/004-ARM-dts-imx-Add-GW5912-board-support.patch
target/linux/mvebu/patches-4.19/300-mvneta-tx-queue-workaround.patch
target/linux/mvebu/patches-4.19/531-net-mvneta-Add-support-for-2500Mbps-SGMII.patch
target/linux/mvebu/patches-4.19/533-net-mvneta-Dont-advertise-2.5G-modes.patch
target/linux/mvebu/patches-4.19/534-net-mvneta-remove-redundant-check-for.patch
target/linux/mvebu/patches-4.19/535-net-marvell-neta-add-comphy-support.patch
target/linux/mvebu/patches-4.19/536-net-marvell-neta-disable-comphy-when-setting-mode.patch
target/linux/mvebu/patches-4.19/537-net-mvneta-add-2500baset-support.patch

index 3e46989f842a21e1fa592aab27ad9cb1387f51cb..ea83da09dc16150a92b016332f33cdf23ba2052d 100644 (file)
@@ -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))))
index 743ffe4206c1b6d546f3f2f0a43554f4be48cfd0..f3bd671cf7a11b358582510375ba0d7d76b2d592 100644 (file)
@@ -44,7 +44,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
  
  #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 <chunkeey@googlemail.com>
  /* 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 <chunkeey@googlemail.com>
        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;
  
index 5bed3d26fa4cdcb2e9ef553ff6e33c0ce62b5126..8ada844214ba83646464123e09639ede1a409f61 100644 (file)
@@ -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;
index 485aadcbbd46f9727d3ab0c843cd26d634eca6a8..30828d693c9269475dccabae23cda91cececffda 100644 (file)
@@ -40,9 +40,9 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- 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 <daniel@makrotopia.org>
        /* 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);
index 7bbcaa08a6ce59e028df22c708e5839142b05149..b77cd2d574c4e2d86ec11626a0610028948e37b8 100644 (file)
@@ -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);
  
index 9546f32a27a767a6b8f169057c6d34df1e2ccd37..62ee69e6a4ff6b5372add6a7a1cd5becc687c1f5 100644 (file)
@@ -8,10 +8,8 @@ Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
  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 <linux/platform_device.h>
  #include <linux/io.h>
index 1b63db7ba44ec626650082e97c8ff1d01b734480..0efb33676a4934d00d3b0fbda1db8ab44761809e 100644 (file)
  #include <linux/uaccess.h>
  #include <linux/ipv6.h>
  #include <linux/icmpv6.h>
-@@ -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) {
index 7fdfa4785e3fef0debf3ef332fa317a81ea3c46b..35eb49209e363cda812be298c9f87f072027220c 100644 (file)
@@ -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++;
  
index b154d6ee75f79003a43c30f056cb61dfcd46d071..bfe690d34e2057962789d70df4619ba2007983b1 100644 (file)
@@ -170,7 +170,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
                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) &&
index 430059cddf0005962f98df8b72c7cb252713fb84..72abdc7bb0c78a0ef32589b2c31f6d0f90374a1e 100644 (file)
@@ -276,7 +276,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
  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
index 6a00e82300f72b47e1f483b7082cd15689c678ad..64ed02f59a3761e826270f5c4e420001ed16157d 100644 (file)
@@ -96,7 +96,7 @@ Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
 +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.
  
index 27e1a6c473aaae4769fe90c175c2d8a4046b3a5d..69b0ffbf9eda63f6e6fa4f703a64c4ce03bde928 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
 
 --- 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;
  
index 7895040ff431db14f60a31feabbf790f4780b183..011a1eceba84dd6cc14d4e53905df8ea57759ef1 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
 
 --- 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 &&
index c0a7af1ee7f6001443042a092e9101c1dcfa8aeb..465697b91203ae486228d5e09447692287f69bb8 100644 (file)
@@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
  #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
  
index 7ad61b65fb6055fb0c166b1d61563f7a9e5196a4..a0a663602664cad38a91c17f03a9c2fd270cc782 100644 (file)
@@ -124,7 +124,7 @@ Acked-by: Eric Anholt <eric@anholt.net>
        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 @@
        };
  };
  
index 06dd01329f87859a3e68546b74ee8caa640945b5..83ba156161d7499d39c9983f144154ac89736ff0 100644 (file)
@@ -18,9 +18,9 @@ Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
 
 --- 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>;
index cfbf86ef6fac583b63981c5390e51eb66e35b3e7..b0f8a8c1566ddea8959b20ab51f2f53435b0d2fb 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
 
 --- 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 (file)
index d2d86f3..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-From 82afdcd4ec3c8ca6551cbf7c43c09e2fd240487a Mon Sep 17 00:00:00 2001
-From: Hangbin Liu <liuhangbin@gmail.com>
-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 <zajec5@gmail.com>
-Tested-by: Rafał Miłecki <zajec5@gmail.com>
-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 <liuhangbin@gmail.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- 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;
-       }
index 3ada51636bda284f8bcb02e937d6d2aacba326e2..96de83dabc2000b9fed13bf7979af72da631d1ef 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- 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 <davem@davemloft.net>
        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);
index 4ad3bf698ace8dc1a2047a517abb644c4890c46a..070544ea638426bf98786929059c21abe7e17bf6 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- 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 <davem@davemloft.net>
        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);
index 00ef6b7a1d4cb177329d83d27a2d38eaf278d191..d9c4b4ecdd0b50189598e44819d2484e03faa1b9 100644 (file)
@@ -29,7 +29,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
 
 --- 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);
index 9a587ad3a6a0e5f66275e3002f2de83af46b39cd..2dbf9ebd107d8085d9c19bb359745a57a462108d 100644 (file)
@@ -208,7 +208,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
        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 <rmk+kernel@armlinux.org.uk>
   * 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 <rmk+kernel@armlinux.org.uk>
  /**
   * __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 <rmk+kernel@armlinux.org.uk>
   * 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;
  }
  
index dddfcc201869c88038fedebb275faef205266178..1cd26a2ad3d88a9a4cf99dcc4fa9fbc738ee2af0 100644 (file)
@@ -191,7 +191,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
  }
 --- 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);
  
index 6d47fa9634375da7d86ae10772d37d768985eea1..0f2a216aa5b7c4748cb249556b01086669eafd8b 100644 (file)
@@ -54,7 +54,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
   *
 --- 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);
index 9b34d40a0ff3c2ab073c7bbecba6ff9da86dc336..3bb87ab963300d7fd0b77998b76e26a24c9f9ba7 100644 (file)
@@ -54,7 +54,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
  #include <linux/mdio.h>
  #include <linux/io.h>
  #include <linux/uaccess.h>
-@@ -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 <rmk+kernel@armlinux.org.uk>
   * 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 <rmk+kernel@armlinux.org.uk>
        /* 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 <rmk+kernel@armlinux.org.uk>
  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 <rmk+kernel@armlinux.org.uk>
   * 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 <rmk+kernel@armlinux.org.uk>
        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);
index 81f161e9b1cbc52b7c288d945c1562c36186198a..08c7a402f57705174a7c53264fa356339778087d 100644 (file)
@@ -37,7 +37,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
 
 --- 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 <rmk+kernel@armlinux.org.uk>
                                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)
  {
index fd8a871113ed48532cc7c78ed0657fbfaaeecbd4..ac270944e63e523fc6506bbdaf1070cfbabb05f0 100644 (file)
@@ -52,7 +52,7 @@
  /* For layer 4 checksum field offset. */
  #include <linux/tcp.h>
  #include <linux/udp.h>
-@@ -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);
index a0e6484be8f3a2402fe0b7133182b56cdfdfb01c..56124f305c1c663482b88de5303965ac177acdfd 100644 (file)
@@ -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;
  
index 1ad7d46764540fcd2f50e75074eddfbc26e47551..33ae7043b7646f67471989132bacedfb52a41619 100644 (file)
@@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        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);
  
index 639f76d3091f04c559a1901f47f17e158efec413..f0ea558c4dc4d94fa8c6f4149e23071d20230148 100644 (file)
@@ -96,7 +96,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        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"
index 0f4f4456247ce3de6f7b8fc7153860d070d3f0e1..dd390f39bd7f2c78a7520e5eb5bea98b15aa3750 100644 (file)
@@ -232,7 +232,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        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 <nbd@nbd.name>
  
 --- 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 <nbd@nbd.name>
  
 --- 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 <nbd@nbd.name>
                        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 (file)
index a37e76d..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-From 9d2e23253eb5fabff02a7ce4be9c4a7fc23562e8 Mon Sep 17 00:00:00 2001
-From: Pawel Dembicki <paweldembicki@gmail.com>
-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 <paweldembicki@gmail.com>
----
- 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 */
index 25f44b466ae3d5a18bb5d35fd7acd8902147e147..8323240ae4eb5999465bc61e9e2cb8538dfc7aa2 100644 (file)
@@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        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 <nbd@nbd.name>
        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 <nbd@nbd.name>
  
        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 <nbd@nbd.name>
        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 <nbd@nbd.name>
                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;
index cfdfe1083686fd0d677119c20e8a642ad73e06a6..9fd05107c4f0565cfc15f99b047f57e7a1567db9 100644 (file)
@@ -66,7 +66,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  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",
index 61cc4e830a3b5bd72e603dac6b5777348254e92e..75cc8d2f7d06c18a92c0646badd189e01e7b51ee 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        __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 <nbd@nbd.name>
        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 <nbd@nbd.name>
  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 <nbd@nbd.name>
        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 <nbd@nbd.name>
        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;
index 1c180b225b17c8a246450bfd5e6c71d43dbba51c..c8847a0234fabc374da0d6f6d46328611a0cbd0d 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- 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 <juhosg@openwrt.org>
                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);
  
index a4e9604ffacce02198f143376bc9c9f83a89b999..99d11692fa914bf4b93b0e63621d787393eb366b 100644 (file)
@@ -26,11 +26,9 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
  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
-
index aade7650f9f0aaf21d75ecbb71218a1aa6594d59..ec982e96ad2d0de62140de25d1cd53c38575afc5 100644 (file)
@@ -35,11 +35,9 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
  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
-
index 2d242fb890e5d83dd87462feac7049dd11ffd284..9c46401201d06bc7a16f4f2586ceabe756774131 100644 (file)
@@ -30,11 +30,9 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
  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
-
index a47cb279cbedb6f02331bceb5d80ee2f9c392228..cd03a95d8e819b7c5b6d5d17729a66fcd896a3cb 100644 (file)
@@ -35,11 +35,9 @@ Signed-off-by: Shawn Guo <shawnguo@kernel.org>
  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
-
index 4a5ea3614494de1a1d94da1c27818c4a332af034..5d7e769246a4e4db86785e4b74735996650c4a9a 100644 (file)
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 ---
 --- 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 <nbd@nbd.name>
  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,
index a5553a3e96c8da372e6e36b21ad057836e6351c5..f56d726a28f9c6ebe222ecc3c1972cfc3abfe323 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  #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 <davem@davemloft.net>
            !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 <davem@davemloft.net>
  
        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 <davem@davemloft.net>
        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 <davem@davemloft.net>
                        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);
        }
  
index 01b101283cdd81caed3952a7466679f54952f65b..e85a61d197746b0b9e751895e8baa8f14f5a7078 100644 (file)
@@ -27,7 +27,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- 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 <davem@davemloft.net>
            !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);
  
index fd774e08398c0aebe5ed18172350b61a3b54e925..435ef92a125a2b92cdcc7dc181bf730513508710 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- 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. */
index 272beb6950f71364b2a859d27afeccb16aeac943..ecd38e3baacf9594399c659f9e9239a8338de3a8 100644 (file)
@@ -31,7 +31,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
        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 <davem@davemloft.net>
        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 <davem@davemloft.net>
  }
  
  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 <davem@davemloft.net>
        __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 <davem@davemloft.net>
  
        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 <davem@davemloft.net>
  }
  
  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 <davem@davemloft.net>
        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 <davem@davemloft.net>
        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 <davem@davemloft.net>
                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 <davem@davemloft.net>
        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 <davem@davemloft.net>
        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;
index bac9a55cf0d63333a52a7fd5f3e5e16a624f0ba7..dcaeb18fa32a30bde64b904cccd9657b16b35bdf 100644 (file)
@@ -28,7 +28,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- 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 <davem@davemloft.net>
  
        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;
  
index 9186ceb0da4acae4571c78f9da484d9bcad64798..639d5541fe6ddf138c8402d0b06de56cdefe6f8d 100644 (file)
@@ -24,7 +24,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- 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) {