Browse Source

kernel: bump 4.14 to 4.14.66

Refreshed all patches

Compile-tested on: cns3xxx, imx6
Runtime-tested on: cns3xxx, imx6

Signed-off-by: Koen Vandeputte <[email protected]>
Koen Vandeputte 7 years ago
parent
commit
6b4ba118ac
47 changed files with 232 additions and 370 deletions
  1. 2 2
      include/kernel-version.mk
  2. 2 2
      target/linux/ar71xx/patches-4.14/310-lib-add-rle-decompression.patch
  3. 1 1
      target/linux/ar71xx/patches-4.14/404-mtd-cybertan-trx-parser.patch
  4. 1 1
      target/linux/ar71xx/patches-4.14/405-mtd-tp-link-partition-parser.patch
  5. 3 3
      target/linux/ar71xx/patches-4.14/407-mtd-m25p80-allow-to-pass-probe-types-via-platform-data.patch
  6. 3 3
      target/linux/ar71xx/patches-4.14/408-mtd-redboot_partition_scan.patch
  7. 3 3
      target/linux/ar71xx/patches-4.14/409-mtd-rb4xx_nand_driver.patch
  8. 3 3
      target/linux/ar71xx/patches-4.14/410-mtd-rb750-nand-driver.patch
  9. 3 3
      target/linux/ar71xx/patches-4.14/411-mtd-cfi_cmdset_0002-force-word-write.patch
  10. 1 1
      target/linux/ar71xx/patches-4.14/413-mtd-ar934x-nand-driver.patch
  11. 3 3
      target/linux/ar71xx/patches-4.14/414-mtd-rb91x-nand-driver.patch
  12. 1 1
      target/linux/ar71xx/patches-4.14/420-net-ar71xx_mac_driver.patch
  13. 4 8
      target/linux/ar71xx/patches-4.14/423-dsa-add-88e6063-driver.patch
  14. 1 1
      target/linux/ar71xx/patches-4.14/430-drivers-link-spi-before-mtd.patch
  15. 2 2
      target/linux/ar71xx/patches-4.14/432-spi-rb4xx-spi-driver.patch
  16. 2 2
      target/linux/ar71xx/patches-4.14/433-spi-rb4xx-cpld-driver.patch
  17. 2 2
      target/linux/ar71xx/patches-4.14/435-spi-vsc7385_driver.patch
  18. 4 4
      target/linux/ar71xx/patches-4.14/440-leds-wndr3700-usb-led-driver.patch
  19. 3 3
      target/linux/ar71xx/patches-4.14/441-leds-rb750-led-driver.patch
  20. 2 2
      target/linux/ar71xx/patches-4.14/442-leds-gpio-allow-to-use-OPEN_-DRAIN-SOURCE-flags-with.patch
  21. 2 2
      target/linux/ar71xx/patches-4.14/450-gpio-nxp-74hc153-gpio-chip-driver.patch
  22. 7 7
      target/linux/ar71xx/patches-4.14/451-gpio-74x164-improve-platform-device-support.patch
  23. 2 2
      target/linux/ar71xx/patches-4.14/452-gpio-add-gpio-latch-driver.patch
  24. 2 2
      target/linux/ar71xx/patches-4.14/461-spi-ath79-add-fast-flash-read.patch
  25. 3 7
      target/linux/ar71xx/patches-4.14/470-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch
  26. 3 3
      target/linux/ar71xx/patches-4.14/490-usb-ehci-add-quirks-for-qca-socs.patch
  27. 2 2
      target/linux/ar71xx/patches-4.14/500-MIPS-fw-myloader.patch
  28. 3 3
      target/linux/ar71xx/patches-4.14/602-MIPS-ath79-add-openwrt-stuff.patch
  29. 1 1
      target/linux/ar71xx/patches-4.14/603-MIPS-ath79-ap121-fixes.patch
  30. 2 2
      target/linux/ar71xx/patches-4.14/604-MIPS-ath79-no-of.patch
  31. 1 1
      target/linux/ar71xx/patches-4.14/605-MIPS-ath79-db120-fixes.patch
  32. 4 8
      target/linux/ar71xx/patches-4.14/606-MIPS-ath79-pb44-fixes.patch
  33. 1 1
      target/linux/ar71xx/patches-4.14/607-MIPS-ath79-ubnt-xm-fixes.patch
  34. 1 1
      target/linux/ar71xx/patches-4.14/608-MIPS-ath79-ubnt-xm-add-more-boards.patch
  35. 1 1
      target/linux/ar71xx/patches-4.14/609-MIPS-ath79-ap136-fixes.patch
  36. 4 4
      target/linux/ar71xx/patches-4.14/620-MIPS-ath79-add-support-for-QCA953x-SoC.patch
  37. 26 52
      target/linux/ar71xx/patches-4.14/621-MIPS-ath79-add-support-for-QCA956x-SoC.patch
  38. 1 1
      target/linux/ar71xx/patches-4.14/700-MIPS-ath79-add-openwrt-Kconfig.patch
  39. 2 4
      target/linux/ar71xx/patches-4.14/740-MIPS-ath79-add-PCI-for-QCA953x-SoC.patch
  40. 3 3
      target/linux/ar71xx/patches-4.14/818-MIPS-ath79-add-nu801-led-driver.patch
  41. 3 3
      target/linux/ar71xx/patches-4.14/902-at803x-add-reset-gpio-pdata.patch
  42. 6 10
      target/linux/ar71xx/patches-4.14/903-at803x-add-sgmii-aneg-override-pdata.patch
  43. 84 168
      target/linux/ar71xx/patches-4.14/910-unaligned_access_hacks.patch
  44. 8 16
      target/linux/ar71xx/patches-4.14/930-chipidea-pullup.patch
  45. 2 4
      target/linux/ar71xx/patches-4.14/940-qca955x-add-more-registers.patch
  46. 1 1
      target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch
  47. 11 11
      target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch

+ 2 - 2
include/kernel-version.mk

@@ -3,12 +3,12 @@
 LINUX_RELEASE?=1
 
 LINUX_VERSION-3.18 = .119
-LINUX_VERSION-4.14 = .65
 LINUX_VERSION-4.9 = .123
+LINUX_VERSION-4.14 = .66
 
 LINUX_KERNEL_HASH-3.18.119 = 2bab623ed868b679eac224f62212cc285264061bedf1e32897f72e35aa26160d
-LINUX_KERNEL_HASH-4.14.65 = 12980c406bb9be670db58a88464d1c36cafd3c1d4d5ee09e8ecfa71e5eb5a5ec
 LINUX_KERNEL_HASH-4.9.123 = 8d12ceab9f8cbfd0555c881b35ed4384cf3ea8e223d894c030b04786005e5071
+LINUX_KERNEL_HASH-4.14.66 = a38061ca4c864d11a72beb3dc5918a99f13372fe9ee35508d004fdfabd460413
 
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))

+ 2 - 2
target/linux/ar71xx/patches-4.14/310-lib-add-rle-decompression.patch

@@ -1,6 +1,6 @@
 --- a/lib/Kconfig
 +++ b/lib/Kconfig
-@@ -247,6 +247,9 @@ config LZMA_COMPRESS
+@@ -265,6 +265,9 @@ config LZMA_COMPRESS
  config LZMA_DECOMPRESS
      tristate
  
@@ -12,7 +12,7 @@
  # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
 --- a/lib/Makefile
 +++ b/lib/Makefile
-@@ -120,6 +120,7 @@ obj-$(CONFIG_XZ_DEC) += xz/
+@@ -134,6 +134,7 @@ obj-$(CONFIG_XZ_DEC) += xz/
  obj-$(CONFIG_RAID6_PQ) += raid6/
  obj-$(CONFIG_LZMA_COMPRESS) += lzma/
  obj-$(CONFIG_LZMA_DECOMPRESS) += lzma/

+ 1 - 1
target/linux/ar71xx/patches-4.14/404-mtd-cybertan-trx-parser.patch

@@ -15,7 +15,7 @@
  	depends on ADM5120 || ATH25 || ATH79
 --- a/drivers/mtd/Makefile
 +++ b/drivers/mtd/Makefile
-@@ -17,6 +17,7 @@ obj-$(CONFIG_MTD_BCM63XX_PARTS)	+= bcm63
+@@ -18,6 +18,7 @@ obj-$(CONFIG_MTD_BCM63XX_PARTS)	+= bcm63
  obj-$(CONFIG_MTD_BCM47XX_PARTS)	+= bcm47xxpart.o
  obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o
  obj-y				+= parsers/

+ 1 - 1
target/linux/ar71xx/patches-4.14/405-mtd-tp-link-partition-parser.patch

@@ -15,7 +15,7 @@
  #
 --- a/drivers/mtd/Makefile
 +++ b/drivers/mtd/Makefile
-@@ -17,6 +17,7 @@ obj-$(CONFIG_MTD_BCM63XX_PARTS)	+= bcm63
+@@ -18,6 +18,7 @@ obj-$(CONFIG_MTD_BCM63XX_PARTS)	+= bcm63
  obj-$(CONFIG_MTD_BCM47XX_PARTS)	+= bcm47xxpart.o
  obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o
  obj-y				+= parsers/

+ 3 - 3
target/linux/ar71xx/patches-4.14/407-mtd-m25p80-allow-to-pass-probe-types-via-platform-data.patch

@@ -1,6 +1,6 @@
 --- a/drivers/mtd/devices/m25p80.c
 +++ b/drivers/mtd/devices/m25p80.c
-@@ -195,6 +195,7 @@ static ssize_t m25p80_read(struct spi_no
+@@ -235,6 +235,7 @@ static ssize_t m25p80_read(struct spi_no
   */
  static int m25p_probe(struct spi_device *spi)
  {
@@ -8,7 +8,7 @@
  	struct flash_platform_data	*data;
  	struct m25p *flash;
  	struct spi_nor *nor;
-@@ -247,8 +248,11 @@ static int m25p_probe(struct spi_device
+@@ -300,8 +301,11 @@ static int m25p_probe(struct spi_device
  	if (ret)
  		return ret;
  
@@ -24,7 +24,7 @@
  
 --- a/include/linux/spi/flash.h
 +++ b/include/linux/spi/flash.h
-@@ -24,6 +24,7 @@ struct flash_platform_data {
+@@ -25,6 +25,7 @@ struct flash_platform_data {
  	unsigned int	nr_parts;
  
  	char		*type;

+ 3 - 3
target/linux/ar71xx/patches-4.14/408-mtd-redboot_partition_scan.patch

@@ -1,6 +1,6 @@
 --- a/drivers/mtd/redboot.c
 +++ b/drivers/mtd/redboot.c
-@@ -77,12 +77,18 @@ static int parse_redboot_partitions(stru
+@@ -76,12 +76,18 @@ static int parse_redboot_partitions(stru
  	static char nullstring[] = "unallocated";
  #endif
  
@@ -19,7 +19,7 @@
  				return -EIO;
  			}
  			offset -= master->erasesize;
-@@ -95,10 +101,6 @@ static int parse_redboot_partitions(stru
+@@ -94,10 +100,6 @@ static int parse_redboot_partitions(stru
  				goto nogood;
  		}
  	}
@@ -30,7 +30,7 @@
  
  	printk(KERN_NOTICE "Searching for RedBoot partition table in %s at offset 0x%lx\n",
  	       master->name, offset);
-@@ -171,6 +173,11 @@ static int parse_redboot_partitions(stru
+@@ -170,6 +172,11 @@ static int parse_redboot_partitions(stru
  	}
  	if (i == numslots) {
  		/* Didn't find it */

+ 3 - 3
target/linux/ar71xx/patches-4.14/409-mtd-rb4xx_nand_driver.patch

@@ -1,6 +1,6 @@
 --- a/drivers/mtd/nand/Kconfig
 +++ b/drivers/mtd/nand/Kconfig
-@@ -569,4 +569,8 @@ config MTD_NAND_MTK
+@@ -563,4 +563,8 @@ config MTD_NAND_MTK
  	  Enables support for NAND controller on MTK SoCs.
  	  This controller is found on mt27xx, mt81xx, mt65xx SoCs.
  
@@ -11,11 +11,11 @@
  endif # MTD_NAND
 --- a/drivers/mtd/nand/Makefile
 +++ b/drivers/mtd/nand/Makefile
-@@ -33,6 +33,7 @@ obj-$(CONFIG_MTD_NAND_CM_X270)		+= cmx27
+@@ -34,6 +34,7 @@ obj-$(CONFIG_MTD_NAND_CM_X270)		+= cmx27
  obj-$(CONFIG_MTD_NAND_PXA3xx)		+= pxa3xx_nand.o
  obj-$(CONFIG_MTD_NAND_TMIO)		+= tmio_nand.o
  obj-$(CONFIG_MTD_NAND_PLATFORM)		+= plat_nand.o
 +obj-$(CONFIG_MTD_NAND_RB4XX)		+= rb4xx_nand.o
  obj-$(CONFIG_MTD_NAND_PASEMI)		+= pasemi_nand.o
  obj-$(CONFIG_MTD_NAND_ORION)		+= orion_nand.o
- obj-$(CONFIG_MTD_NAND_FSL_ELBC)		+= fsl_elbc_nand.o
+ obj-$(CONFIG_MTD_NAND_OXNAS)		+= oxnas_nand.o

+ 3 - 3
target/linux/ar71xx/patches-4.14/410-mtd-rb750-nand-driver.patch

@@ -1,6 +1,6 @@
 --- a/drivers/mtd/nand/Kconfig
 +++ b/drivers/mtd/nand/Kconfig
-@@ -573,4 +573,8 @@ config MTD_NAND_RB4XX
+@@ -567,4 +567,8 @@ config MTD_NAND_RB4XX
  	tristate "NAND flash driver for RouterBoard 4xx series"
  	depends on MTD_NAND && ATH79_MACH_RB4XX
  
@@ -11,11 +11,11 @@
  endif # MTD_NAND
 --- a/drivers/mtd/nand/Makefile
 +++ b/drivers/mtd/nand/Makefile
-@@ -34,6 +34,7 @@ obj-$(CONFIG_MTD_NAND_PXA3xx)		+= pxa3xx
+@@ -35,6 +35,7 @@ obj-$(CONFIG_MTD_NAND_PXA3xx)		+= pxa3xx
  obj-$(CONFIG_MTD_NAND_TMIO)		+= tmio_nand.o
  obj-$(CONFIG_MTD_NAND_PLATFORM)		+= plat_nand.o
  obj-$(CONFIG_MTD_NAND_RB4XX)		+= rb4xx_nand.o
 +obj-$(CONFIG_MTD_NAND_RB750)		+= rb750_nand.o
  obj-$(CONFIG_MTD_NAND_PASEMI)		+= pasemi_nand.o
  obj-$(CONFIG_MTD_NAND_ORION)		+= orion_nand.o
- obj-$(CONFIG_MTD_NAND_FSL_ELBC)		+= fsl_elbc_nand.o
+ obj-$(CONFIG_MTD_NAND_OXNAS)		+= oxnas_nand.o

+ 3 - 3
target/linux/ar71xx/patches-4.14/411-mtd-cfi_cmdset_0002-force-word-write.patch

@@ -35,7 +35,7 @@
  
  /* Atmel chips don't use the same PRI format as AMD chips */
  static void fixup_convert_atmel_pri(struct mtd_info *mtd)
-@@ -1788,6 +1792,7 @@ static int cfi_amdstd_write_words(struct
+@@ -1792,6 +1796,7 @@ static int cfi_amdstd_write_words(struct
  /*
   * FIXME: interleaved mode not tested, and probably not supported!
   */
@@ -43,7 +43,7 @@
  static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip,
  				    unsigned long adr, const u_char *buf,
  				    int len)
-@@ -1916,7 +1921,6 @@ static int __xipram do_write_buffer(stru
+@@ -1920,7 +1925,6 @@ static int __xipram do_write_buffer(stru
  	return ret;
  }
  
@@ -51,7 +51,7 @@
  static int cfi_amdstd_write_buffers(struct mtd_info *mtd, loff_t to, size_t len,
  				    size_t *retlen, const u_char *buf)
  {
-@@ -1991,6 +1995,7 @@ static int cfi_amdstd_write_buffers(stru
+@@ -1995,6 +1999,7 @@ static int cfi_amdstd_write_buffers(stru
  
  	return 0;
  }

+ 1 - 1
target/linux/ar71xx/patches-4.14/413-mtd-ar934x-nand-driver.patch

@@ -1,6 +1,6 @@
 --- a/drivers/mtd/nand/Kconfig
 +++ b/drivers/mtd/nand/Kconfig
-@@ -577,4 +577,12 @@ config MTD_NAND_RB750
+@@ -571,4 +571,12 @@ config MTD_NAND_RB750
  	tristate "NAND flash driver for the RouterBoard 750"
  	depends on MTD_NAND && ATH79_MACH_RB750
  

+ 3 - 3
target/linux/ar71xx/patches-4.14/414-mtd-rb91x-nand-driver.patch

@@ -1,6 +1,6 @@
 --- a/drivers/mtd/nand/Kconfig
 +++ b/drivers/mtd/nand/Kconfig
-@@ -577,6 +577,10 @@ config MTD_NAND_RB750
+@@ -571,6 +571,10 @@ config MTD_NAND_RB750
  	tristate "NAND flash driver for the RouterBoard 750"
  	depends on MTD_NAND && ATH79_MACH_RB750
  
@@ -13,11 +13,11 @@
  	depends on (SOC_AR934X || SOC_QCA955X)
 --- a/drivers/mtd/nand/Makefile
 +++ b/drivers/mtd/nand/Makefile
-@@ -36,6 +36,7 @@ obj-$(CONFIG_MTD_NAND_TMIO)		+= tmio_nan
+@@ -37,6 +37,7 @@ obj-$(CONFIG_MTD_NAND_TMIO)		+= tmio_nan
  obj-$(CONFIG_MTD_NAND_PLATFORM)		+= plat_nand.o
  obj-$(CONFIG_MTD_NAND_RB4XX)		+= rb4xx_nand.o
  obj-$(CONFIG_MTD_NAND_RB750)		+= rb750_nand.o
 +obj-$(CONFIG_MTD_NAND_RB91X)		+= rb91x_nand.o
  obj-$(CONFIG_MTD_NAND_PASEMI)		+= pasemi_nand.o
  obj-$(CONFIG_MTD_NAND_ORION)		+= orion_nand.o
- obj-$(CONFIG_MTD_NAND_FSL_ELBC)		+= fsl_elbc_nand.o
+ obj-$(CONFIG_MTD_NAND_OXNAS)		+= oxnas_nand.o

+ 1 - 1
target/linux/ar71xx/patches-4.14/420-net-ar71xx_mac_driver.patch

@@ -18,7 +18,7 @@
  endif # NET_VENDOR_ATHEROS
 --- a/drivers/net/ethernet/atheros/Makefile
 +++ b/drivers/net/ethernet/atheros/Makefile
-@@ -2,6 +2,7 @@
+@@ -3,6 +3,7 @@
  # Makefile for the Atheros network device drivers.
  #
  

+ 4 - 8
target/linux/ar71xx/patches-4.14/423-dsa-add-88e6063-driver.patch

@@ -1,7 +1,5 @@
-Index: linux-4.14.61/drivers/net/dsa/Kconfig
-===================================================================
---- linux-4.14.61.orig/drivers/net/dsa/Kconfig
-+++ linux-4.14.61/drivers/net/dsa/Kconfig
+--- a/drivers/net/dsa/Kconfig
++++ b/drivers/net/dsa/Kconfig
 @@ -3,6 +3,14 @@ menu "Distributed Switch Architecture dr
  
  source "drivers/net/dsa/b53/Kconfig"
@@ -17,10 +15,8 @@ Index: linux-4.14.61/drivers/net/dsa/Kconfig
  config NET_DSA_BCM_SF2
  	tristate "Broadcom Starfighter 2 Ethernet switch support"
  	depends on HAS_IOMEM && NET_DSA && OF_MDIO
-Index: linux-4.14.61/drivers/net/dsa/Makefile
-===================================================================
---- linux-4.14.61.orig/drivers/net/dsa/Makefile
-+++ linux-4.14.61/drivers/net/dsa/Makefile
+--- a/drivers/net/dsa/Makefile
++++ b/drivers/net/dsa/Makefile
 @@ -7,6 +7,7 @@ obj-$(CONFIG_FIXED_PHY)		+= dsa_loop_bdi
  endif
  obj-$(CONFIG_NET_DSA_MT7530)	+= mt7530.o

+ 1 - 1
target/linux/ar71xx/patches-4.14/430-drivers-link-spi-before-mtd.patch

@@ -1,6 +1,6 @@
 --- a/drivers/Makefile
 +++ b/drivers/Makefile
-@@ -77,8 +77,8 @@ obj-$(CONFIG_SCSI)		+= scsi/
+@@ -83,8 +83,8 @@ obj-$(CONFIG_SCSI)		+= scsi/
  obj-y				+= nvme/
  obj-$(CONFIG_ATA)		+= ata/
  obj-$(CONFIG_TARGET_CORE)	+= target/

+ 2 - 2
target/linux/ar71xx/patches-4.14/432-spi-rb4xx-spi-driver.patch

@@ -1,6 +1,6 @@
 --- a/drivers/spi/Kconfig
 +++ b/drivers/spi/Kconfig
-@@ -533,6 +533,12 @@ config SPI_QUP
+@@ -563,6 +563,12 @@ config SPI_QUP
  	  This driver can also be built as a module.  If so, the module
  	  will be called spi_qup.
  
@@ -15,7 +15,7 @@
  	depends on ARCH_S3C24XX
 --- a/drivers/spi/Makefile
 +++ b/drivers/spi/Makefile
-@@ -72,6 +72,7 @@ obj-$(CONFIG_SPI_PPC4xx)		+= spi-ppc4xx.
+@@ -77,6 +77,7 @@ obj-$(CONFIG_SPI_PPC4xx)		+= spi-ppc4xx.
  spi-pxa2xx-platform-objs		:= spi-pxa2xx.o spi-pxa2xx-dma.o
  obj-$(CONFIG_SPI_PXA2XX)		+= spi-pxa2xx-platform.o
  obj-$(CONFIG_SPI_PXA2XX_PCI)		+= spi-pxa2xx-pci.o

+ 2 - 2
target/linux/ar71xx/patches-4.14/433-spi-rb4xx-cpld-driver.patch

@@ -1,6 +1,6 @@
 --- a/drivers/spi/Kconfig
 +++ b/drivers/spi/Kconfig
-@@ -761,6 +761,13 @@ config SPI_TLE62X0
+@@ -801,6 +801,13 @@ config SPI_TLE62X0
  	  sysfs interface, with each line presented as a kind of GPIO
  	  exposing both switch control and diagnostic feedback.
  
@@ -16,7 +16,7 @@
  #
 --- a/drivers/spi/Makefile
 +++ b/drivers/spi/Makefile
-@@ -73,6 +73,7 @@ spi-pxa2xx-platform-objs		:= spi-pxa2xx.
+@@ -78,6 +78,7 @@ spi-pxa2xx-platform-objs		:= spi-pxa2xx.
  obj-$(CONFIG_SPI_PXA2XX)		+= spi-pxa2xx-platform.o
  obj-$(CONFIG_SPI_PXA2XX_PCI)		+= spi-pxa2xx-pci.o
  obj-$(CONFIG_SPI_RB4XX)			+= spi-rb4xx.o

+ 2 - 2
target/linux/ar71xx/patches-4.14/435-spi-vsc7385_driver.patch

@@ -1,6 +1,6 @@
 --- a/drivers/spi/Kconfig
 +++ b/drivers/spi/Kconfig
-@@ -768,6 +768,11 @@ config SPI_RB4XX_CPLD
+@@ -808,6 +808,11 @@ config SPI_RB4XX_CPLD
  	  SPI driver for the Xilinx CPLD chip present on the
  	  MikroTik RB4xx boards.
  
@@ -14,7 +14,7 @@
  #
 --- a/drivers/spi/Makefile
 +++ b/drivers/spi/Makefile
-@@ -99,6 +99,7 @@ spi-thunderx-objs			:= spi-cavium.o spi-
+@@ -105,6 +105,7 @@ spi-thunderx-objs			:= spi-cavium.o spi-
  obj-$(CONFIG_SPI_THUNDERX)		+= spi-thunderx.o
  obj-$(CONFIG_SPI_TOPCLIFF_PCH)		+= spi-topcliff-pch.o
  obj-$(CONFIG_SPI_TXX9)			+= spi-txx9.o

+ 4 - 4
target/linux/ar71xx/patches-4.14/440-leds-wndr3700-usb-led-driver.patch

@@ -1,8 +1,8 @@
 --- a/drivers/leds/Kconfig
 +++ b/drivers/leds/Kconfig
-@@ -659,6 +659,13 @@ config LEDS_MLXCPLD
- 	  This option enabled support for the LEDs on the Mellanox
- 	  boards. Say Y to enabled these.
+@@ -696,6 +696,13 @@ config LEDS_NIC78BX
+ 	  To compile this driver as a module, choose M here: the module
+ 	  will be called leds-nic78bx.
  
 +config LEDS_WNDR3700_USB
 +	tristate "NETGEAR WNDR3700 USB LED driver"
@@ -16,7 +16,7 @@
  
 --- a/drivers/leds/Makefile
 +++ b/drivers/leds/Makefile
-@@ -48,6 +48,7 @@ obj-$(CONFIG_LEDS_DA9052)		+= leds-da905
+@@ -51,6 +51,7 @@ obj-$(CONFIG_LEDS_DA9052)		+= leds-da905
  obj-$(CONFIG_LEDS_WM831X_STATUS)	+= leds-wm831x-status.o
  obj-$(CONFIG_LEDS_WM8350)		+= leds-wm8350.o
  obj-$(CONFIG_LEDS_PWM)			+= leds-pwm.o

+ 3 - 3
target/linux/ar71xx/patches-4.14/441-leds-rb750-led-driver.patch

@@ -1,6 +1,6 @@
 --- a/drivers/leds/Kconfig
 +++ b/drivers/leds/Kconfig
-@@ -666,6 +666,10 @@ config LEDS_WNDR3700_USB
+@@ -703,6 +703,10 @@ config LEDS_WNDR3700_USB
  	  This option enables support for the USB LED found on the
  	  NETGEAR WNDR3700 board.
  
@@ -13,9 +13,9 @@
  
 --- a/drivers/leds/Makefile
 +++ b/drivers/leds/Makefile
-@@ -55,6 +55,7 @@ obj-$(CONFIG_LEDS_LT3593)		+= leds-lt359
+@@ -57,6 +57,7 @@ obj-$(CONFIG_LEDS_INTEL_SS4200)		+= leds
+ obj-$(CONFIG_LEDS_LT3593)		+= leds-lt3593.o
  obj-$(CONFIG_LEDS_ADP5520)		+= leds-adp5520.o
- obj-$(CONFIG_LEDS_DELL_NETBOOKS)	+= dell-led.o
  obj-$(CONFIG_LEDS_MC13783)		+= leds-mc13783.o
 +obj-$(CONFIG_LEDS_RB750)		+= leds-rb750.o
  obj-$(CONFIG_LEDS_NS2)			+= leds-ns2.o

+ 2 - 2
target/linux/ar71xx/patches-4.14/442-leds-gpio-allow-to-use-OPEN_-DRAIN-SOURCE-flags-with.patch

@@ -34,9 +34,9 @@ Signed-off-by: Gabor Juhos <[email protected]>
  		if (ret < 0)
 --- a/include/linux/leds.h
 +++ b/include/linux/leds.h
-@@ -380,6 +380,8 @@ struct gpio_led {
- 	unsigned	panic_indicator : 1;
+@@ -395,6 +395,8 @@ struct gpio_led {
  	unsigned	default_state : 2;
+ 	unsigned	retain_state_shutdown : 1;
  	/* default_state should be one of LEDS_GPIO_DEFSTATE_(ON|OFF|KEEP) */
 +	unsigned	open_drain : 1;
 +	unsigned	open_source : 1;

+ 2 - 2
target/linux/ar71xx/patches-4.14/450-gpio-nxp-74hc153-gpio-chip-driver.patch

@@ -1,6 +1,6 @@
 --- a/drivers/gpio/Kconfig
 +++ b/drivers/gpio/Kconfig
-@@ -1213,4 +1213,12 @@ config GPIO_VIPERBOARD
+@@ -1298,4 +1298,12 @@ config GPIO_VIPERBOARD
  
  endmenu
  
@@ -15,7 +15,7 @@
  endif
 --- a/drivers/gpio/Makefile
 +++ b/drivers/gpio/Makefile
-@@ -83,6 +83,7 @@ obj-$(CONFIG_GPIO_MSIC)		+= gpio-msic.o
+@@ -89,6 +89,7 @@ obj-$(CONFIG_GPIO_MSIC)		+= gpio-msic.o
  obj-$(CONFIG_GPIO_MVEBU)        += gpio-mvebu.o
  obj-$(CONFIG_GPIO_MXC)		+= gpio-mxc.o
  obj-$(CONFIG_GPIO_MXS)		+= gpio-mxs.o

+ 7 - 7
target/linux/ar71xx/patches-4.14/451-gpio-74x164-improve-platform-device-support.patch

@@ -1,6 +1,6 @@
 --- a/drivers/gpio/gpio-74x164.c
 +++ b/drivers/gpio/gpio-74x164.c
-@@ -12,6 +12,7 @@
+@@ -13,6 +13,7 @@
  #include <linux/init.h>
  #include <linux/mutex.h>
  #include <linux/spi/spi.h>
@@ -8,7 +8,7 @@
  #include <linux/gpio.h>
  #include <linux/of_gpio.h>
  #include <linux/slab.h>
-@@ -103,9 +104,16 @@ static int gen_74x164_direction_output(s
+@@ -105,9 +106,16 @@ static int gen_74x164_direction_output(s
  static int gen_74x164_probe(struct spi_device *spi)
  {
  	struct gen_74x164_chip *chip;
@@ -25,7 +25,7 @@
  	/*
  	 * bits_per_word cannot be configured in platform data
  	 */
-@@ -115,12 +123,15 @@ static int gen_74x164_probe(struct spi_d
+@@ -117,12 +125,15 @@ static int gen_74x164_probe(struct spi_d
  	if (ret < 0)
  		return ret;
  
@@ -47,7 +47,7 @@
  
  	chip = devm_kzalloc(&spi->dev, sizeof(*chip) + nregs, GFP_KERNEL);
  	if (!chip)
-@@ -133,7 +144,11 @@ static int gen_74x164_probe(struct spi_d
+@@ -142,7 +153,11 @@ static int gen_74x164_probe(struct spi_d
  	chip->gpio_chip.get = gen_74x164_get_value;
  	chip->gpio_chip.set = gen_74x164_set_value;
  	chip->gpio_chip.set_multiple = gen_74x164_set_multiple;
@@ -60,7 +60,7 @@
  
  	chip->registers = nregs;
  	chip->gpio_chip.ngpio = GEN_74X164_NUMBER_GPIOS * chip->registers;
-@@ -142,6 +157,9 @@ static int gen_74x164_probe(struct spi_d
+@@ -151,6 +166,9 @@ static int gen_74x164_probe(struct spi_d
  	chip->gpio_chip.parent = &spi->dev;
  	chip->gpio_chip.owner = THIS_MODULE;
  
@@ -70,7 +70,7 @@
  	mutex_init(&chip->lock);
  
  	ret = __gen_74x164_write_config(chip);
-@@ -170,17 +188,19 @@ static int gen_74x164_remove(struct spi_
+@@ -180,17 +198,19 @@ static int gen_74x164_remove(struct spi_
  	return 0;
  }
  
@@ -109,7 +109,7 @@
 +#endif
 --- a/drivers/gpio/Kconfig
 +++ b/drivers/gpio/Kconfig
-@@ -1154,7 +1154,6 @@ menu "SPI GPIO expanders"
+@@ -1250,7 +1250,6 @@ menu "SPI GPIO expanders"
  
  config GPIO_74X164
  	tristate "74x164 serial-in/parallel-out 8-bits shift register"

+ 2 - 2
target/linux/ar71xx/patches-4.14/452-gpio-add-gpio-latch-driver.patch

@@ -1,6 +1,6 @@
 --- a/drivers/gpio/Kconfig
 +++ b/drivers/gpio/Kconfig
-@@ -1220,4 +1220,9 @@ config GPIO_NXP_74HC153
+@@ -1305,4 +1305,9 @@ config GPIO_NXP_74HC153
  	  Platform driver for NXP 74HC153 Dual 4-input Multiplexer. This
  	  provides a GPIO interface supporting input mode only.
  
@@ -12,7 +12,7 @@
  endif
 --- a/drivers/gpio/Makefile
 +++ b/drivers/gpio/Makefile
-@@ -56,6 +56,7 @@ obj-$(CONFIG_GPIO_JANZ_TTL)	+= gpio-janz
+@@ -63,6 +63,7 @@ obj-$(CONFIG_GPIO_JANZ_TTL)	+= gpio-janz
  obj-$(CONFIG_GPIO_KEMPLD)	+= gpio-kempld.o
  obj-$(CONFIG_ARCH_KS8695)	+= gpio-ks8695.o
  obj-$(CONFIG_GPIO_INTEL_MID)	+= gpio-intel-mid.o

+ 2 - 2
target/linux/ar71xx/patches-4.14/461-spi-ath79-add-fast-flash-read.patch

@@ -10,7 +10,7 @@
  }
  
  static void ath79_spi_disable(struct ath79_spi *sp)
-@@ -205,6 +202,38 @@ static u32 ath79_spi_txrx_mode0(struct s
+@@ -204,6 +201,38 @@ static u32 ath79_spi_txrx_mode0(struct s
  	return ath79_spi_rr(sp, AR71XX_SPI_REG_RDS);
  }
  
@@ -49,7 +49,7 @@
  static int ath79_spi_probe(struct platform_device *pdev)
  {
  	struct spi_master *master;
-@@ -234,6 +263,8 @@ static int ath79_spi_probe(struct platfo
+@@ -233,6 +262,8 @@ static int ath79_spi_probe(struct platfo
  		master->num_chipselect = pdata->num_chipselect;
  		master->cs_gpios = pdata->cs_gpios;
  	}

+ 3 - 7
target/linux/ar71xx/patches-4.14/470-MIPS-ath79-swizzle-pci-address-for-ar71xx.patch

@@ -1,7 +1,5 @@
-Index: linux-4.14.61/arch/mips/include/asm/mach-ath79/mangle-port.h
-===================================================================
 --- /dev/null
-+++ linux-4.14.61/arch/mips/include/asm/mach-ath79/mangle-port.h
++++ b/arch/mips/include/asm/mach-ath79/mangle-port.h
 @@ -0,0 +1,37 @@
 +/*
 + *  Copyright (C) 2012 Gabor Juhos <[email protected]>
@@ -40,10 +38,8 @@ Index: linux-4.14.61/arch/mips/include/asm/mach-ath79/mangle-port.h
 +# define __mem_ioswabq(a, x)     cpu_to_le64(x)
 +
 +#endif /* __ASM_MACH_ATH79_MANGLE_PORT_H */
-Index: linux-4.14.61/arch/mips/ath79/pci.c
-===================================================================
---- linux-4.14.61.orig/arch/mips/ath79/pci.c
-+++ linux-4.14.61/arch/mips/ath79/pci.c
+--- a/arch/mips/ath79/pci.c
++++ b/arch/mips/ath79/pci.c
 @@ -13,6 +13,7 @@
   */
  

+ 3 - 3
target/linux/ar71xx/patches-4.14/490-usb-ehci-add-quirks-for-qca-socs.patch

@@ -40,7 +40,7 @@
  	retval = ehci_handshake(ehci, &ehci->regs->command,
 --- a/drivers/usb/host/ehci.h
 +++ b/drivers/usb/host/ehci.h
-@@ -231,6 +231,10 @@ struct ehci_hcd {			/* one per controlle
+@@ -232,6 +232,10 @@ struct ehci_hcd {			/* one per controlle
  	unsigned		need_oc_pp_cycle:1; /* MPC834X port power */
  	unsigned		imx28_write_fix:1; /* For Freescale i.MX28 */
  	unsigned		ignore_oc:1;
@@ -72,7 +72,7 @@
  #endif /* __USB_CORE_EHCI_PDRIVER_H */
 --- a/drivers/usb/host/ehci-platform.c
 +++ b/drivers/usb/host/ehci-platform.c
-@@ -52,6 +52,14 @@ struct ehci_platform_priv {
+@@ -53,6 +53,14 @@ struct ehci_platform_priv {
  
  static const char hcd_name[] = "ehci-platform";
  
@@ -87,7 +87,7 @@
  static int ehci_platform_reset(struct usb_hcd *hcd)
  {
  	struct platform_device *pdev = to_platform_device(hcd->self.controller);
-@@ -261,6 +269,13 @@ static int ehci_platform_probe(struct pl
+@@ -265,6 +273,13 @@ static int ehci_platform_probe(struct pl
  		priv->reset_on_resume = true;
  	if (pdata->ignore_oc)
  		ehci->ignore_oc = 1;

+ 2 - 2
target/linux/ar71xx/patches-4.14/500-MIPS-fw-myloader.patch

@@ -1,6 +1,6 @@
 --- a/arch/mips/Makefile
 +++ b/arch/mips/Makefile
-@@ -218,6 +218,7 @@ cflags-$(toolchain-virt)		+= -DTOOLCHAIN
+@@ -227,6 +227,7 @@ cflags-$(toolchain-virt)		+= -DTOOLCHAIN
  #
  libs-$(CONFIG_FW_ARC)		+= arch/mips/fw/arc/
  libs-$(CONFIG_FW_CFE)		+= arch/mips/fw/cfe/
@@ -10,7 +10,7 @@
  
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -1150,6 +1150,9 @@ config MIPS_MSC
+@@ -1151,6 +1151,9 @@ config MIPS_MSC
  config MIPS_NILE4
  	bool
  

+ 3 - 3
target/linux/ar71xx/patches-4.14/602-MIPS-ath79-add-openwrt-stuff.patch

@@ -1,6 +1,6 @@
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -98,6 +98,20 @@ config SOC_QCA955X
+@@ -99,6 +99,20 @@ config SOC_QCA955X
  	select PCI_AR724X if PCI
  	def_bool n
  
@@ -21,7 +21,7 @@
  config PCI_AR724X
  	def_bool n
  
-@@ -107,6 +121,10 @@ config ATH79_DEV_GPIO_BUTTONS
+@@ -108,6 +122,10 @@ config ATH79_DEV_GPIO_BUTTONS
  config ATH79_DEV_LEDS_GPIO
  	def_bool n
  
@@ -32,7 +32,7 @@
  config ATH79_DEV_SPI
  	def_bool n
  
-@@ -117,4 +135,14 @@ config ATH79_DEV_WMAC
+@@ -118,4 +136,14 @@ config ATH79_DEV_WMAC
  	depends on (SOC_AR913X || SOC_AR933X || SOC_AR934X || SOC_QCA955X)
  	def_bool n
  

+ 1 - 1
target/linux/ar71xx/patches-4.14/603-MIPS-ath79-ap121-fixes.patch

@@ -135,7 +135,7 @@
 +	     ap121_mini_setup);
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -5,9 +5,10 @@ menu "Atheros AR71XX/AR724X/AR913X machi
+@@ -6,9 +6,10 @@ menu "Atheros AR71XX/AR724X/AR913X machi
  config ATH79_MACH_AP121
  	bool "Atheros AP121 reference board"
  	select SOC_AR933X

+ 2 - 2
target/linux/ar71xx/patches-4.14/604-MIPS-ath79-no-of.patch

@@ -1,6 +1,6 @@
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -196,7 +196,6 @@ config ATH79
+@@ -202,7 +202,6 @@ config ATH79
  	select SYS_SUPPORTS_BIG_ENDIAN
  	select SYS_SUPPORTS_MIPS16
  	select SYS_SUPPORTS_ZBOOT_UART_PROM
@@ -55,7 +55,7 @@
 +#endif
 --- a/arch/mips/ath79/clock.c
 +++ b/arch/mips/ath79/clock.c
-@@ -33,10 +33,12 @@
+@@ -32,10 +32,12 @@
  #define AR724X_BASE_FREQ	40000000
  
  static struct clk *clks[ATH79_CLK_END];

+ 1 - 1
target/linux/ar71xx/patches-4.14/605-MIPS-ath79-db120-fixes.patch

@@ -188,7 +188,7 @@
  MIPS_MACHINE(ATH79_MACH_DB120, "DB120", "Atheros DB120 reference board",
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -42,9 +42,12 @@ config ATH79_MACH_AP81
+@@ -43,9 +43,12 @@ config ATH79_MACH_AP81
  config ATH79_MACH_DB120
  	bool "Atheros DB120 reference board"
  	select SOC_AR934X

+ 4 - 8
target/linux/ar71xx/patches-4.14/606-MIPS-ath79-pb44-fixes.patch

@@ -1,7 +1,5 @@
-Index: linux-4.14.61/arch/mips/ath79/mach-pb44.c
-===================================================================
---- linux-4.14.61.orig/arch/mips/ath79/mach-pb44.c
-+++ linux-4.14.61/arch/mips/ath79/mach-pb44.c
+--- a/arch/mips/ath79/mach-pb44.c
++++ b/arch/mips/ath79/mach-pb44.c
 @@ -8,23 +8,47 @@
   *  by the Free Software Foundation.
   */
@@ -134,10 +132,8 @@ Index: linux-4.14.61/arch/mips/ath79/mach-pb44.c
  }
  
  MIPS_MACHINE(ATH79_MACH_PB44, "PB44", "Atheros PB44 reference board",
-Index: linux-4.14.61/arch/mips/ath79/Kconfig
-===================================================================
---- linux-4.14.61.orig/arch/mips/ath79/Kconfig
-+++ linux-4.14.61/arch/mips/ath79/Kconfig
+--- a/arch/mips/ath79/Kconfig
++++ b/arch/mips/ath79/Kconfig
 @@ -58,6 +58,7 @@ config ATH79_MACH_DB120
  config ATH79_MACH_PB44
  	bool "Atheros PB44 reference board"

+ 1 - 1
target/linux/ar71xx/patches-4.14/607-MIPS-ath79-ubnt-xm-fixes.patch

@@ -1,6 +1,6 @@
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -69,9 +69,10 @@ config ATH79_MACH_PB44
+@@ -70,9 +70,10 @@ config ATH79_MACH_PB44
  config ATH79_MACH_UBNT_XM
  	bool "Ubiquiti Networks XM (rev 1.0) board"
  	select SOC_AR724X

+ 1 - 1
target/linux/ar71xx/patches-4.14/608-MIPS-ath79-ubnt-xm-add-more-boards.patch

@@ -1,6 +1,6 @@
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -67,12 +67,16 @@ config ATH79_MACH_PB44
+@@ -68,12 +68,16 @@ config ATH79_MACH_PB44
  	  Atheros PB44 reference board.
  
  config ATH79_MACH_UBNT_XM

+ 1 - 1
target/linux/ar71xx/patches-4.14/609-MIPS-ath79-ap136-fixes.patch

@@ -278,7 +278,7 @@
 +	     ap135_020_setup);
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -16,16 +16,17 @@ config ATH79_MACH_AP121
+@@ -17,16 +17,17 @@ config ATH79_MACH_AP121
  	  Atheros AP121 reference board.
  
  config ATH79_MACH_AP136

+ 4 - 4
target/linux/ar71xx/patches-4.14/620-MIPS-ath79-add-support-for-QCA953x-SoC.patch

@@ -22,7 +22,7 @@ meaning of the bits CPUCLK_FROM_CPUPLL and DDRCLK_FROM_DDRPLL is reversed.
 
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -104,6 +104,10 @@ config SOC_AR934X
+@@ -105,6 +105,10 @@ config SOC_AR934X
  	select PCI_AR724X if PCI
  	def_bool n
  
@@ -33,7 +33,7 @@ meaning of the bits CPUCLK_FROM_CPUPLL and DDRCLK_FROM_DDRPLL is reversed.
  config SOC_QCA955X
  	select HW_HAS_PCI
  	select PCI_AR724X if PCI
-@@ -143,7 +147,7 @@ config ATH79_DEV_USB
+@@ -144,7 +148,7 @@ config ATH79_DEV_USB
  	def_bool n
  
  config ATH79_DEV_WMAC
@@ -44,7 +44,7 @@ meaning of the bits CPUCLK_FROM_CPUPLL and DDRCLK_FROM_DDRPLL is reversed.
  config ATH79_NVRAM
 --- a/arch/mips/ath79/clock.c
 +++ b/arch/mips/ath79/clock.c
-@@ -358,6 +358,87 @@ static void __init ar934x_clocks_init(vo
+@@ -357,6 +357,87 @@ static void __init ar934x_clocks_init(vo
  	iounmap(dpll_base);
  }
  
@@ -132,7 +132,7 @@ meaning of the bits CPUCLK_FROM_CPUPLL and DDRCLK_FROM_DDRPLL is reversed.
  static void __init qca955x_clocks_init(void)
  {
  	unsigned long ref_rate;
-@@ -453,6 +534,8 @@ void __init ath79_clocks_init(void)
+@@ -452,6 +533,8 @@ void __init ath79_clocks_init(void)
  		ar933x_clocks_init();
  	else if (soc_is_ar934x())
  		ar934x_clocks_init();

+ 26 - 52
target/linux/ar71xx/patches-4.14/621-MIPS-ath79-add-support-for-QCA956x-SoC.patch

@@ -1,7 +1,5 @@
-Index: linux-4.14.61/arch/mips/ath79/Kconfig
-===================================================================
---- linux-4.14.61.orig/arch/mips/ath79/Kconfig
-+++ linux-4.14.61/arch/mips/ath79/Kconfig
+--- a/arch/mips/ath79/Kconfig
++++ b/arch/mips/ath79/Kconfig
 @@ -114,6 +114,12 @@ config SOC_QCA955X
  	select PCI_AR724X if PCI
  	def_bool n
@@ -24,10 +22,8 @@ Index: linux-4.14.61/arch/mips/ath79/Kconfig
  	def_bool n
  
  config ATH79_NVRAM
-Index: linux-4.14.61/arch/mips/ath79/clock.c
-===================================================================
---- linux-4.14.61.orig/arch/mips/ath79/clock.c
-+++ linux-4.14.61/arch/mips/ath79/clock.c
+--- a/arch/mips/ath79/clock.c
++++ b/arch/mips/ath79/clock.c
 @@ -523,6 +523,100 @@ static void __init qca955x_clocks_init(v
  	clk_add_alias("uart", NULL, "ref", NULL);
  }
@@ -138,10 +134,8 @@ Index: linux-4.14.61/arch/mips/ath79/clock.c
  	else
  		BUG();
  }
-Index: linux-4.14.61/arch/mips/ath79/common.c
-===================================================================
---- linux-4.14.61.orig/arch/mips/ath79/common.c
-+++ linux-4.14.61/arch/mips/ath79/common.c
+--- a/arch/mips/ath79/common.c
++++ b/arch/mips/ath79/common.c
 @@ -107,6 +107,8 @@ void ath79_device_reset_set(u32 mask)
  		reg = QCA953X_RESET_REG_RESET_MODULE;
  	else if (soc_is_qca955x())
@@ -169,10 +163,8 @@ Index: linux-4.14.61/arch/mips/ath79/common.c
  	else
  		BUG();
  
-Index: linux-4.14.61/arch/mips/ath79/dev-common.c
-===================================================================
---- linux-4.14.61.orig/arch/mips/ath79/dev-common.c
-+++ linux-4.14.61/arch/mips/ath79/dev-common.c
+--- a/arch/mips/ath79/dev-common.c
++++ b/arch/mips/ath79/dev-common.c
 @@ -95,7 +95,9 @@ void __init ath79_register_uart(void)
  	    soc_is_ar913x() ||
  	    soc_is_ar934x() ||
@@ -194,10 +186,8 @@ Index: linux-4.14.61/arch/mips/ath79/dev-common.c
  	} else {
  		BUG();
  	}
-Index: linux-4.14.61/arch/mips/ath79/dev-usb.c
-===================================================================
---- linux-4.14.61.orig/arch/mips/ath79/dev-usb.c
-+++ linux-4.14.61/arch/mips/ath79/dev-usb.c
+--- a/arch/mips/ath79/dev-usb.c
++++ b/arch/mips/ath79/dev-usb.c
 @@ -296,6 +296,19 @@ static void __init qca955x_usb_setup(voi
  			   &ath79_ehci_pdata_v2, sizeof(ath79_ehci_pdata_v2));
  }
@@ -227,10 +217,8 @@ Index: linux-4.14.61/arch/mips/ath79/dev-usb.c
  	else
  		BUG();
  }
-Index: linux-4.14.61/arch/mips/ath79/dev-wmac.c
-===================================================================
---- linux-4.14.61.orig/arch/mips/ath79/dev-wmac.c
-+++ linux-4.14.61/arch/mips/ath79/dev-wmac.c
+--- a/arch/mips/ath79/dev-wmac.c
++++ b/arch/mips/ath79/dev-wmac.c
 @@ -195,6 +195,26 @@ static void qca955x_wmac_setup(void)
  #define AR93XX_OTP_READ_DATA \
  	(soc_is_ar934x() ? AR934X_OTP_READ_DATA : AR9300_OTP_READ_DATA)
@@ -267,10 +255,8 @@ Index: linux-4.14.61/arch/mips/ath79/dev-wmac.c
  	else
  		BUG();
  
-Index: linux-4.14.61/arch/mips/ath79/early_printk.c
-===================================================================
---- linux-4.14.61.orig/arch/mips/ath79/early_printk.c
-+++ linux-4.14.61/arch/mips/ath79/early_printk.c
+--- a/arch/mips/ath79/early_printk.c
++++ b/arch/mips/ath79/early_printk.c
 @@ -120,6 +120,8 @@ static void prom_putchar_init(void)
  	case REV_ID_MAJOR_QCA9533_V2:
  	case REV_ID_MAJOR_QCA9556:
@@ -280,10 +266,8 @@ Index: linux-4.14.61/arch/mips/ath79/early_printk.c
  		_prom_putchar = prom_putchar_ar71xx;
  		break;
  
-Index: linux-4.14.61/arch/mips/ath79/gpio.c
-===================================================================
---- linux-4.14.61.orig/arch/mips/ath79/gpio.c
-+++ linux-4.14.61/arch/mips/ath79/gpio.c
+--- a/arch/mips/ath79/gpio.c
++++ b/arch/mips/ath79/gpio.c
 @@ -31,7 +31,10 @@ static void __iomem *ath79_gpio_get_func
  	    soc_is_ar913x() ||
  	    soc_is_ar933x())
@@ -305,10 +289,8 @@ Index: linux-4.14.61/arch/mips/ath79/gpio.c
  
  	if (gpio >= AR934X_GPIO_COUNT)
  		return;
-Index: linux-4.14.61/arch/mips/ath79/irq.c
-===================================================================
---- linux-4.14.61.orig/arch/mips/ath79/irq.c
-+++ linux-4.14.61/arch/mips/ath79/irq.c
+--- a/arch/mips/ath79/irq.c
++++ b/arch/mips/ath79/irq.c
 @@ -156,6 +156,87 @@ static void qca955x_irq_init(void)
  	irq_set_chained_handler(ATH79_CPU_IRQ(3), qca955x_ip3_irq_dispatch);
  }
@@ -415,10 +397,8 @@ Index: linux-4.14.61/arch/mips/ath79/irq.c
 +	else if (soc_is_qca956x() || soc_is_tp9343())
 +		qca956x_irq_init();
  }
-Index: linux-4.14.61/arch/mips/ath79/pci.c
-===================================================================
---- linux-4.14.61.orig/arch/mips/ath79/pci.c
-+++ linux-4.14.61/arch/mips/ath79/pci.c
+--- a/arch/mips/ath79/pci.c
++++ b/arch/mips/ath79/pci.c
 @@ -68,6 +68,21 @@ static const struct ath79_pci_irq qca955
  	},
  };
@@ -467,10 +447,8 @@ Index: linux-4.14.61/arch/mips/ath79/pci.c
  	} else {
  		/* No PCI support */
  		return -ENODEV;
-Index: linux-4.14.61/arch/mips/ath79/setup.c
-===================================================================
---- linux-4.14.61.orig/arch/mips/ath79/setup.c
-+++ linux-4.14.61/arch/mips/ath79/setup.c
+--- a/arch/mips/ath79/setup.c
++++ b/arch/mips/ath79/setup.c
 @@ -176,6 +176,18 @@ static void __init ath79_detect_sys_type
  		rev = id & QCA955X_REV_ID_REVISION_MASK;
  		break;
@@ -504,10 +482,8 @@ Index: linux-4.14.61/arch/mips/ath79/setup.c
  	else
  		sprintf(ath79_sys_type, "Atheros AR%s rev %u", chip, rev);
  	pr_info("SoC: %s\n", ath79_sys_type);
-Index: linux-4.14.61/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
-===================================================================
---- linux-4.14.61.orig/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
-+++ linux-4.14.61/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
+--- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
++++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
 @@ -143,6 +143,23 @@
  #define QCA955X_NFC_BASE	0x1b800200
  #define QCA955X_NFC_SIZE	0xb8
@@ -701,10 +677,8 @@ Index: linux-4.14.61/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
  
  /*
   * SRIF block
-Index: linux-4.14.61/arch/mips/include/asm/mach-ath79/ath79.h
-===================================================================
---- linux-4.14.61.orig/arch/mips/include/asm/mach-ath79/ath79.h
-+++ linux-4.14.61/arch/mips/include/asm/mach-ath79/ath79.h
+--- a/arch/mips/include/asm/mach-ath79/ath79.h
++++ b/arch/mips/include/asm/mach-ath79/ath79.h
 @@ -35,6 +35,8 @@ enum ath79_soc_type {
  	ATH79_SOC_QCA9533,
  	ATH79_SOC_QCA9556,

+ 1 - 1
target/linux/ar71xx/patches-4.14/700-MIPS-ath79-add-openwrt-Kconfig.patch

@@ -1,6 +1,6 @@
 --- a/arch/mips/ath79/Kconfig
 +++ b/arch/mips/ath79/Kconfig
-@@ -82,6 +82,8 @@ config ATH79_MACH_UBNT_XM
+@@ -83,6 +83,8 @@ config ATH79_MACH_UBNT_XM
  	  Say 'Y' here if you want your kernel to support the
  	  Ubiquiti Networks XM (rev 1.0) board.
  

+ 2 - 4
target/linux/ar71xx/patches-4.14/740-MIPS-ath79-add-PCI-for-QCA953x-SoC.patch

@@ -1,7 +1,5 @@
-Index: linux-4.14.61/arch/mips/ath79/pci.c
-===================================================================
---- linux-4.14.61.orig/arch/mips/ath79/pci.c
-+++ linux-4.14.61/arch/mips/ath79/pci.c
+--- a/arch/mips/ath79/pci.c
++++ b/arch/mips/ath79/pci.c
 @@ -53,6 +53,15 @@ static const struct ath79_pci_irq ar724x
  	}
  };

+ 3 - 3
target/linux/ar71xx/patches-4.14/818-MIPS-ath79-add-nu801-led-driver.patch

@@ -1,6 +1,6 @@
 --- a/drivers/leds/Kconfig
 +++ b/drivers/leds/Kconfig
-@@ -606,6 +606,13 @@ config LEDS_IS31FL32XX
+@@ -632,6 +632,13 @@ config LEDS_IS31FL32XX
  
  comment "LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)"
  
@@ -16,8 +16,8 @@
  	depends on LEDS_CLASS
 --- a/drivers/leds/Makefile
 +++ b/drivers/leds/Makefile
-@@ -56,6 +56,7 @@ obj-$(CONFIG_LEDS_ADP5520)		+= leds-adp5
- obj-$(CONFIG_LEDS_DELL_NETBOOKS)	+= dell-led.o
+@@ -58,6 +58,7 @@ obj-$(CONFIG_LEDS_LT3593)		+= leds-lt359
+ obj-$(CONFIG_LEDS_ADP5520)		+= leds-adp5520.o
  obj-$(CONFIG_LEDS_MC13783)		+= leds-mc13783.o
  obj-$(CONFIG_LEDS_RB750)		+= leds-rb750.o
 +obj-$(CONFIG_LEDS_NU801)		+= leds-nu801.o

+ 3 - 3
target/linux/ar71xx/patches-4.14/902-at803x-add-reset-gpio-pdata.patch

@@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  #endif /* _PHY_AT803X_PDATA_H */
 --- a/drivers/net/phy/at803x.c
 +++ b/drivers/net/phy/at803x.c
-@@ -261,6 +261,7 @@ static int at803x_resume(struct phy_devi
+@@ -259,6 +259,7 @@ static int at803x_resume(struct phy_devi
  
  static int at803x_probe(struct phy_device *phydev)
  {
@@ -24,7 +24,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	struct device *dev = &phydev->mdio.dev;
  	struct at803x_priv *priv;
  	struct gpio_desc *gpiod_reset;
-@@ -273,6 +274,12 @@ static int at803x_probe(struct phy_devic
+@@ -271,6 +272,12 @@ static int at803x_probe(struct phy_devic
  	    phydev->drv->phy_id != ATH8032_PHY_ID)
  		goto does_not_require_reset_workaround;
  
@@ -37,7 +37,7 @@ Signed-off-by: Felix Fietkau <[email protected]>
  	gpiod_reset = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW);
  	if (IS_ERR(gpiod_reset))
  		return PTR_ERR(gpiod_reset);
-@@ -404,15 +411,23 @@ static void at803x_link_change_notify(st
+@@ -411,15 +418,23 @@ static void at803x_link_change_notify(st
  	 * cannot recover from by software.
  	 */
  	if (phydev->state == PHY_NOLINK) {

+ 6 - 10
target/linux/ar71xx/patches-4.14/903-at803x-add-sgmii-aneg-override-pdata.patch

@@ -1,8 +1,6 @@
-Index: linux-4.9.111/drivers/net/phy/at803x.c
-===================================================================
---- linux-4.9.111.orig/drivers/net/phy/at803x.c
-+++ linux-4.9.111/drivers/net/phy/at803x.c
-@@ -461,12 +461,15 @@ static void at803x_link_change_notify(st
+--- a/drivers/net/phy/at803x.c
++++ b/drivers/net/phy/at803x.c
+@@ -478,12 +478,15 @@ static void at803x_link_change_notify(st
  
  static int at803x_aneg_done(struct phy_device *phydev)
  {
@@ -18,7 +16,7 @@ Index: linux-4.9.111/drivers/net/phy/at803x.c
  	/*
  	 * in SGMII mode, if copper side autoneg is successful,
  	 * also check SGMII side autoneg result
-@@ -481,7 +484,8 @@ static int at803x_aneg_done(struct phy_d
+@@ -498,7 +501,8 @@ static int at803x_aneg_done(struct phy_d
  	/* check if the SGMII link is OK. */
  	if (!(phy_read(phydev, AT803X_PSSR) & AT803X_PSSR_MR_AN_COMPLETE)) {
  		pr_warn("803x_aneg_done: SGMII link is not ok\n");
@@ -28,10 +26,8 @@ Index: linux-4.9.111/drivers/net/phy/at803x.c
  	}
  	/* switch back to copper page */
  	phy_write(phydev, AT803X_REG_CHIP_CONFIG, ccr | AT803X_BT_BX_REG_SEL);
-Index: linux-4.9.111/include/linux/platform_data/phy-at803x.h
-===================================================================
---- linux-4.9.111.orig/include/linux/platform_data/phy-at803x.h
-+++ linux-4.9.111/include/linux/platform_data/phy-at803x.h
+--- a/include/linux/platform_data/phy-at803x.h
++++ b/include/linux/platform_data/phy-at803x.h
 @@ -7,6 +7,7 @@ struct at803x_platform_data {
  	int enable_rgmii_rx_delay:1;
  	int fixup_rgmii_tx_delay:1;

+ 84 - 168
target/linux/ar71xx/patches-4.14/910-unaligned_access_hacks.patch

@@ -1,7 +1,5 @@
-Index: linux-4.14.61/arch/mips/include/asm/checksum.h
-===================================================================
---- linux-4.14.61.orig/arch/mips/include/asm/checksum.h
-+++ linux-4.14.61/arch/mips/include/asm/checksum.h
+--- a/arch/mips/include/asm/checksum.h
++++ b/arch/mips/include/asm/checksum.h
 @@ -134,26 +134,30 @@ static inline __sum16 ip_fast_csum(const
  	const unsigned int *stop = word + ihl;
  	unsigned int csum;
@@ -118,10 +116,8 @@ Index: linux-4.14.61/arch/mips/include/asm/checksum.h
  #include <asm-generic/checksum.h>
  #endif /* CONFIG_GENERIC_CSUM */
  
-Index: linux-4.14.61/include/uapi/linux/ip.h
-===================================================================
---- linux-4.14.61.orig/include/uapi/linux/ip.h
-+++ linux-4.14.61/include/uapi/linux/ip.h
+--- a/include/uapi/linux/ip.h
++++ b/include/uapi/linux/ip.h
 @@ -103,7 +103,7 @@ struct iphdr {
  	__be32	saddr;
  	__be32	daddr;
@@ -131,10 +127,8 @@ Index: linux-4.14.61/include/uapi/linux/ip.h
  
  
  struct ip_auth_hdr {
-Index: linux-4.14.61/include/uapi/linux/ipv6.h
-===================================================================
---- linux-4.14.61.orig/include/uapi/linux/ipv6.h
-+++ linux-4.14.61/include/uapi/linux/ipv6.h
+--- a/include/uapi/linux/ipv6.h
++++ b/include/uapi/linux/ipv6.h
 @@ -131,7 +131,7 @@ struct ipv6hdr {
  
  	struct	in6_addr	saddr;
@@ -144,10 +138,8 @@ Index: linux-4.14.61/include/uapi/linux/ipv6.h
  
  
  /* index values for the variables in ipv6_devconf */
-Index: linux-4.14.61/include/uapi/linux/tcp.h
-===================================================================
---- linux-4.14.61.orig/include/uapi/linux/tcp.h
-+++ linux-4.14.61/include/uapi/linux/tcp.h
+--- a/include/uapi/linux/tcp.h
++++ b/include/uapi/linux/tcp.h
 @@ -55,7 +55,7 @@ struct tcphdr {
  	__be16	window;
  	__sum16	check;
@@ -166,10 +158,8 @@ Index: linux-4.14.61/include/uapi/linux/tcp.h
  
  #define tcp_flag_word(tp) ( ((union tcp_word_hdr *)(tp))->words [3]) 
  
-Index: linux-4.14.61/include/uapi/linux/udp.h
-===================================================================
---- linux-4.14.61.orig/include/uapi/linux/udp.h
-+++ linux-4.14.61/include/uapi/linux/udp.h
+--- a/include/uapi/linux/udp.h
++++ b/include/uapi/linux/udp.h
 @@ -25,7 +25,7 @@ struct udphdr {
  	__be16	dest;
  	__be16	len;
@@ -179,10 +169,8 @@ Index: linux-4.14.61/include/uapi/linux/udp.h
  
  /* UDP socket options */
  #define UDP_CORK	1	/* Never send partially complete segments */
-Index: linux-4.14.61/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
-===================================================================
---- linux-4.14.61.orig/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
-+++ linux-4.14.61/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
+--- a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
++++ b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
 @@ -48,8 +48,8 @@ static bool ipv4_pkt_to_tuple(const stru
  	if (ap == NULL)
  		return false;
@@ -194,10 +182,8 @@ Index: linux-4.14.61/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
  
  	return true;
  }
-Index: linux-4.14.61/include/uapi/linux/icmp.h
-===================================================================
---- linux-4.14.61.orig/include/uapi/linux/icmp.h
-+++ linux-4.14.61/include/uapi/linux/icmp.h
+--- a/include/uapi/linux/icmp.h
++++ b/include/uapi/linux/icmp.h
 @@ -82,7 +82,7 @@ struct icmphdr {
  	} frag;
  	__u8	reserved[4];
@@ -207,10 +193,8 @@ Index: linux-4.14.61/include/uapi/linux/icmp.h
  
  
  /*
-Index: linux-4.14.61/include/uapi/linux/in6.h
-===================================================================
---- linux-4.14.61.orig/include/uapi/linux/in6.h
-+++ linux-4.14.61/include/uapi/linux/in6.h
+--- a/include/uapi/linux/in6.h
++++ b/include/uapi/linux/in6.h
 @@ -43,7 +43,7 @@ struct in6_addr {
  #define s6_addr16		in6_u.u6_addr16
  #define s6_addr32		in6_u.u6_addr32
@@ -220,10 +204,8 @@ Index: linux-4.14.61/include/uapi/linux/in6.h
  #endif /* __UAPI_DEF_IN6_ADDR */
  
  #if __UAPI_DEF_SOCKADDR_IN6
-Index: linux-4.14.61/net/ipv6/tcp_ipv6.c
-===================================================================
---- linux-4.14.61.orig/net/ipv6/tcp_ipv6.c
-+++ linux-4.14.61/net/ipv6/tcp_ipv6.c
+--- a/net/ipv6/tcp_ipv6.c
++++ b/net/ipv6/tcp_ipv6.c
 @@ -39,6 +39,7 @@
  #include <linux/ipsec.h>
  #include <linux/times.h>
@@ -247,10 +229,8 @@ Index: linux-4.14.61/net/ipv6/tcp_ipv6.c
  	}
  
  #ifdef CONFIG_TCP_MD5SIG
-Index: linux-4.14.61/include/linux/ipv6.h
-===================================================================
---- linux-4.14.61.orig/include/linux/ipv6.h
-+++ linux-4.14.61/include/linux/ipv6.h
+--- a/include/linux/ipv6.h
++++ b/include/linux/ipv6.h
 @@ -6,6 +6,7 @@
  
  #define ipv6_optlen(p)  (((p)->hdrlen+1) << 3)
@@ -259,10 +239,8 @@ Index: linux-4.14.61/include/linux/ipv6.h
  /*
   * This structure contains configuration options per IPv6 link.
   */
-Index: linux-4.14.61/net/ipv6/datagram.c
-===================================================================
---- linux-4.14.61.orig/net/ipv6/datagram.c
-+++ linux-4.14.61/net/ipv6/datagram.c
+--- a/net/ipv6/datagram.c
++++ b/net/ipv6/datagram.c
 @@ -485,7 +485,7 @@ int ipv6_recv_error(struct sock *sk, str
  				ipv6_iface_scope_id(&sin->sin6_addr,
  						    IP6CB(skb)->iif);
@@ -287,10 +265,8 @@ Index: linux-4.14.61/net/ipv6/datagram.c
  			break;
  
  		case IPV6_2292HOPOPTS:
-Index: linux-4.14.61/net/ipv6/ip6_gre.c
-===================================================================
---- linux-4.14.61.orig/net/ipv6/ip6_gre.c
-+++ linux-4.14.61/net/ipv6/ip6_gre.c
+--- a/net/ipv6/ip6_gre.c
++++ b/net/ipv6/ip6_gre.c
 @@ -397,7 +397,7 @@ static void ip6gre_err(struct sk_buff *s
  		return;
  	ipv6h = (const struct ipv6hdr *)skb->data;
@@ -300,10 +276,8 @@ Index: linux-4.14.61/net/ipv6/ip6_gre.c
  
  	t = ip6gre_tunnel_lookup(skb->dev, &ipv6h->daddr, &ipv6h->saddr,
  				 key, greh->protocol);
-Index: linux-4.14.61/net/ipv6/exthdrs.c
-===================================================================
---- linux-4.14.61.orig/net/ipv6/exthdrs.c
-+++ linux-4.14.61/net/ipv6/exthdrs.c
+--- a/net/ipv6/exthdrs.c
++++ b/net/ipv6/exthdrs.c
 @@ -733,7 +733,7 @@ static bool ipv6_hop_jumbo(struct sk_buf
  		goto drop;
  	}
@@ -313,10 +287,8 @@ Index: linux-4.14.61/net/ipv6/exthdrs.c
  	if (pkt_len <= IPV6_MAXPLEN) {
  		__IP6_INC_STATS(net, ipv6_skb_idev(skb),
  				IPSTATS_MIB_INHDRERRORS);
-Index: linux-4.14.61/include/linux/types.h
-===================================================================
---- linux-4.14.61.orig/include/linux/types.h
-+++ linux-4.14.61/include/linux/types.h
+--- a/include/linux/types.h
++++ b/include/linux/types.h
 @@ -229,5 +229,11 @@ struct callback_head {
  typedef void (*rcu_callback_t)(struct rcu_head *head);
  typedef void (*call_rcu_func_t)(struct rcu_head *head, rcu_callback_t func);
@@ -329,10 +301,8 @@ Index: linux-4.14.61/include/linux/types.h
 +
  #endif /*  __ASSEMBLY__ */
  #endif /* _LINUX_TYPES_H */
-Index: linux-4.14.61/net/ipv4/af_inet.c
-===================================================================
---- linux-4.14.61.orig/net/ipv4/af_inet.c
-+++ linux-4.14.61/net/ipv4/af_inet.c
+--- a/net/ipv4/af_inet.c
++++ b/net/ipv4/af_inet.c
 @@ -1351,8 +1351,8 @@ struct sk_buff **inet_gro_receive(struct
  	if (unlikely(ip_fast_csum((u8 *)iph, 5)))
  		goto out_unlock;
@@ -344,10 +314,8 @@ Index: linux-4.14.61/net/ipv4/af_inet.c
  	id >>= 16;
  
  	for (p = *head; p; p = p->next) {
-Index: linux-4.14.61/net/ipv4/route.c
-===================================================================
---- linux-4.14.61.orig/net/ipv4/route.c
-+++ linux-4.14.61/net/ipv4/route.c
+--- a/net/ipv4/route.c
++++ b/net/ipv4/route.c
 @@ -465,7 +465,7 @@ static struct neighbour *ipv4_neigh_look
  	else if (skb)
  		pkey = &ip_hdr(skb)->daddr;
@@ -357,10 +325,8 @@ Index: linux-4.14.61/net/ipv4/route.c
  	if (n)
  		return n;
  	return neigh_create(&arp_tbl, pkey, dev);
-Index: linux-4.14.61/net/ipv4/tcp_output.c
-===================================================================
---- linux-4.14.61.orig/net/ipv4/tcp_output.c
-+++ linux-4.14.61/net/ipv4/tcp_output.c
+--- a/net/ipv4/tcp_output.c
++++ b/net/ipv4/tcp_output.c
 @@ -454,48 +454,53 @@ static void tcp_options_write(__be32 *pt
  	u16 options = opts->options;	/* mungable copy */
  
@@ -480,10 +446,8 @@ Index: linux-4.14.61/net/ipv4/tcp_output.c
  		}
  
  		memcpy(p, foc->val, foc->len);
-Index: linux-4.14.61/net/ipv4/igmp.c
-===================================================================
---- linux-4.14.61.orig/net/ipv4/igmp.c
-+++ linux-4.14.61/net/ipv4/igmp.c
+--- a/net/ipv4/igmp.c
++++ b/net/ipv4/igmp.c
 @@ -537,7 +537,7 @@ static struct sk_buff *add_grec(struct s
  		if (!skb)
  			return NULL;
@@ -493,10 +457,8 @@ Index: linux-4.14.61/net/ipv4/igmp.c
  		scount++; stotal++;
  		if ((type == IGMPV3_ALLOW_NEW_SOURCES ||
  		     type == IGMPV3_BLOCK_OLD_SOURCES) && psf->sf_crcount) {
-Index: linux-4.14.61/include/uapi/linux/igmp.h
-===================================================================
---- linux-4.14.61.orig/include/uapi/linux/igmp.h
-+++ linux-4.14.61/include/uapi/linux/igmp.h
+--- a/include/uapi/linux/igmp.h
++++ b/include/uapi/linux/igmp.h
 @@ -33,7 +33,7 @@ struct igmphdr {
  	__u8 code;		/* For newer IGMP */
  	__sum16 csum;
@@ -533,10 +495,8 @@ Index: linux-4.14.61/include/uapi/linux/igmp.h
  
  #define IGMP_HOST_MEMBERSHIP_QUERY	0x11	/* From RFC1112 */
  #define IGMP_HOST_MEMBERSHIP_REPORT	0x12	/* Ditto */
-Index: linux-4.14.61/net/core/flow_dissector.c
-===================================================================
---- linux-4.14.61.orig/net/core/flow_dissector.c
-+++ linux-4.14.61/net/core/flow_dissector.c
+--- a/net/core/flow_dissector.c
++++ b/net/core/flow_dissector.c
 @@ -108,7 +108,7 @@ __be32 __skb_flow_get_ports(const struct
  		ports = __skb_header_pointer(skb, thoff + poff,
  					     sizeof(_ports), data, hlen, &_ports);
@@ -546,10 +506,8 @@ Index: linux-4.14.61/net/core/flow_dissector.c
  	}
  
  	return 0;
-Index: linux-4.14.61/include/uapi/linux/icmpv6.h
-===================================================================
---- linux-4.14.61.orig/include/uapi/linux/icmpv6.h
-+++ linux-4.14.61/include/uapi/linux/icmpv6.h
+--- a/include/uapi/linux/icmpv6.h
++++ b/include/uapi/linux/icmpv6.h
 @@ -77,7 +77,7 @@ struct icmp6hdr {
  #define icmp6_addrconf_other	icmp6_dataun.u_nd_ra.other
  #define icmp6_rt_lifetime	icmp6_dataun.u_nd_ra.rt_lifetime
@@ -559,10 +517,8 @@ Index: linux-4.14.61/include/uapi/linux/icmpv6.h
  
  
  #define ICMPV6_ROUTER_PREF_LOW		0x3
-Index: linux-4.14.61/include/net/ndisc.h
-===================================================================
---- linux-4.14.61.orig/include/net/ndisc.h
-+++ linux-4.14.61/include/net/ndisc.h
+--- a/include/net/ndisc.h
++++ b/include/net/ndisc.h
 @@ -89,7 +89,7 @@ struct ra_msg {
          struct icmp6hdr		icmph;
  	__be32			reachable_time;
@@ -587,10 +543,8 @@ Index: linux-4.14.61/include/net/ndisc.h
  }
  
  static inline struct neighbour *__ipv6_neigh_lookup_noref(struct net_device *dev, const void *pkey)
-Index: linux-4.14.61/net/sched/cls_u32.c
-===================================================================
---- linux-4.14.61.orig/net/sched/cls_u32.c
-+++ linux-4.14.61/net/sched/cls_u32.c
+--- a/net/sched/cls_u32.c
++++ b/net/sched/cls_u32.c
 @@ -165,7 +165,7 @@ next_knode:
  			data = skb_header_pointer(skb, toff, 4, &hdata);
  			if (!data)
@@ -611,10 +565,8 @@ Index: linux-4.14.61/net/sched/cls_u32.c
  		}
  		if (!(n->sel.flags & (TC_U32_VAROFFSET | TC_U32_OFFSET | TC_U32_EAT)))
  			goto next_ht;
-Index: linux-4.14.61/net/ipv6/ip6_offload.c
-===================================================================
---- linux-4.14.61.orig/net/ipv6/ip6_offload.c
-+++ linux-4.14.61/net/ipv6/ip6_offload.c
+--- a/net/ipv6/ip6_offload.c
++++ b/net/ipv6/ip6_offload.c
 @@ -220,7 +220,7 @@ static struct sk_buff **ipv6_gro_receive
  			continue;
  
@@ -624,10 +576,8 @@ Index: linux-4.14.61/net/ipv6/ip6_offload.c
  
  		/* All fields must match except length and Traffic Class.
  		 * XXX skbs on the gro_list have all been parsed and pulled
-Index: linux-4.14.61/include/net/addrconf.h
-===================================================================
---- linux-4.14.61.orig/include/net/addrconf.h
-+++ linux-4.14.61/include/net/addrconf.h
+--- a/include/net/addrconf.h
++++ b/include/net/addrconf.h
 @@ -47,7 +47,7 @@ struct prefix_info {
  	__be32			reserved2;
  
@@ -637,10 +587,8 @@ Index: linux-4.14.61/include/net/addrconf.h
  
  #include <linux/netdevice.h>
  #include <net/if_inet6.h>
-Index: linux-4.14.61/include/net/inet_ecn.h
-===================================================================
---- linux-4.14.61.orig/include/net/inet_ecn.h
-+++ linux-4.14.61/include/net/inet_ecn.h
+--- a/include/net/inet_ecn.h
++++ b/include/net/inet_ecn.h
 @@ -125,9 +125,9 @@ static inline int IP6_ECN_set_ce(struct
  	if (INET_ECN_is_not_ect(ipv6_get_dsfield(iph)))
  		return 0;
@@ -662,10 +610,8 @@ Index: linux-4.14.61/include/net/inet_ecn.h
  }
  
  static inline void ipv6_copy_dscp(unsigned int dscp, struct ipv6hdr *inner)
-Index: linux-4.14.61/include/net/ipv6.h
-===================================================================
---- linux-4.14.61.orig/include/net/ipv6.h
-+++ linux-4.14.61/include/net/ipv6.h
+--- a/include/net/ipv6.h
++++ b/include/net/ipv6.h
 @@ -108,7 +108,7 @@ struct frag_hdr {
  	__u8	reserved;
  	__be16	frag_off;
@@ -744,10 +690,8 @@ Index: linux-4.14.61/include/net/ipv6.h
  }
  
  static inline u8 ip6_tclass(__be32 flowinfo)
-Index: linux-4.14.61/include/net/secure_seq.h
-===================================================================
---- linux-4.14.61.orig/include/net/secure_seq.h
-+++ linux-4.14.61/include/net/secure_seq.h
+--- a/include/net/secure_seq.h
++++ b/include/net/secure_seq.h
 @@ -3,6 +3,7 @@
  #define _NET_SECURE_SEQ
  
@@ -756,10 +700,8 @@ Index: linux-4.14.61/include/net/secure_seq.h
  
  u32 secure_ipv4_port_ephemeral(__be32 saddr, __be32 daddr, __be16 dport);
  u32 secure_ipv6_port_ephemeral(const __be32 *saddr, const __be32 *daddr,
-Index: linux-4.14.61/include/uapi/linux/in.h
-===================================================================
---- linux-4.14.61.orig/include/uapi/linux/in.h
-+++ linux-4.14.61/include/uapi/linux/in.h
+--- a/include/uapi/linux/in.h
++++ b/include/uapi/linux/in.h
 @@ -84,7 +84,7 @@ enum {
  /* Internet address. */
  struct in_addr {
@@ -769,10 +711,8 @@ Index: linux-4.14.61/include/uapi/linux/in.h
  #endif
  
  #define IP_TOS		1
-Index: linux-4.14.61/net/ipv6/ip6_fib.c
-===================================================================
---- linux-4.14.61.orig/net/ipv6/ip6_fib.c
-+++ linux-4.14.61/net/ipv6/ip6_fib.c
+--- a/net/ipv6/ip6_fib.c
++++ b/net/ipv6/ip6_fib.c
 @@ -137,7 +137,7 @@ static __be32 addr_bit_set(const void *t
  	 * See include/asm-generic/bitops/le.h.
  	 */
@@ -782,10 +722,8 @@ Index: linux-4.14.61/net/ipv6/ip6_fib.c
  }
  
  static struct fib6_node *node_alloc(void)
-Index: linux-4.14.61/net/netfilter/nf_conntrack_proto_tcp.c
-===================================================================
---- linux-4.14.61.orig/net/netfilter/nf_conntrack_proto_tcp.c
-+++ linux-4.14.61/net/netfilter/nf_conntrack_proto_tcp.c
+--- a/net/netfilter/nf_conntrack_proto_tcp.c
++++ b/net/netfilter/nf_conntrack_proto_tcp.c
 @@ -447,7 +447,7 @@ static void tcp_sack(const struct sk_buf
  
  	/* Fast path for timestamp-only option */
@@ -795,10 +733,8 @@ Index: linux-4.14.61/net/netfilter/nf_conntrack_proto_tcp.c
  				       | (TCPOPT_NOP << 16)
  				       | (TCPOPT_TIMESTAMP << 8)
  				       | TCPOLEN_TIMESTAMP))
-Index: linux-4.14.61/net/xfrm/xfrm_input.c
-===================================================================
---- linux-4.14.61.orig/net/xfrm/xfrm_input.c
-+++ linux-4.14.61/net/xfrm/xfrm_input.c
+--- a/net/xfrm/xfrm_input.c
++++ b/net/xfrm/xfrm_input.c
 @@ -193,8 +193,8 @@ int xfrm_parse_spi(struct sk_buff *skb,
  	if (!pskb_may_pull(skb, hlen))
  		return -EINVAL;
@@ -810,10 +746,8 @@ Index: linux-4.14.61/net/xfrm/xfrm_input.c
  	return 0;
  }
  EXPORT_SYMBOL(xfrm_parse_spi);
-Index: linux-4.14.61/net/ipv4/tcp_input.c
-===================================================================
---- linux-4.14.61.orig/net/ipv4/tcp_input.c
-+++ linux-4.14.61/net/ipv4/tcp_input.c
+--- a/net/ipv4/tcp_input.c
++++ b/net/ipv4/tcp_input.c
 @@ -3858,14 +3858,16 @@ static bool tcp_parse_aligned_timestamp(
  {
  	const __be32 *ptr = (const __be32 *)(th + 1);
@@ -836,10 +770,8 @@ Index: linux-4.14.61/net/ipv4/tcp_input.c
  		else
  			tp->rx_opt.rcv_tsecr = 0;
  		return true;
-Index: linux-4.14.61/include/uapi/linux/if_pppox.h
-===================================================================
---- linux-4.14.61.orig/include/uapi/linux/if_pppox.h
-+++ linux-4.14.61/include/uapi/linux/if_pppox.h
+--- a/include/uapi/linux/if_pppox.h
++++ b/include/uapi/linux/if_pppox.h
 @@ -51,6 +51,7 @@ struct pppoe_addr {
   */
  struct pptp_addr {
@@ -848,10 +780,8 @@ Index: linux-4.14.61/include/uapi/linux/if_pppox.h
  	struct in_addr	sin_addr;
  };
  
-Index: linux-4.14.61/net/ipv6/netfilter/nf_log_ipv6.c
-===================================================================
---- linux-4.14.61.orig/net/ipv6/netfilter/nf_log_ipv6.c
-+++ linux-4.14.61/net/ipv6/netfilter/nf_log_ipv6.c
+--- a/net/ipv6/netfilter/nf_log_ipv6.c
++++ b/net/ipv6/netfilter/nf_log_ipv6.c
 @@ -66,9 +66,9 @@ static void dump_ipv6_packet(struct nf_l
  	/* Max length: 44 "LEN=65535 TC=255 HOPLIMIT=255 FLOWLBL=FFFFF " */
  	nf_log_buf_add(m, "LEN=%zu TC=%u HOPLIMIT=%u FLOWLBL=%u ",
@@ -864,10 +794,8 @@ Index: linux-4.14.61/net/ipv6/netfilter/nf_log_ipv6.c
  
  	fragment = 0;
  	ptr = ip6hoff + sizeof(struct ipv6hdr);
-Index: linux-4.14.61/include/net/neighbour.h
-===================================================================
---- linux-4.14.61.orig/include/net/neighbour.h
-+++ linux-4.14.61/include/net/neighbour.h
+--- a/include/net/neighbour.h
++++ b/include/net/neighbour.h
 @@ -265,8 +265,10 @@ static inline bool neigh_key_eq128(const
  	const u32 *n32 = (const u32 *)n->primary_key;
  	const u32 *p32 = pkey;
@@ -881,10 +809,8 @@ Index: linux-4.14.61/include/net/neighbour.h
  }
  
  static inline struct neighbour *___neigh_lookup_noref(
-Index: linux-4.14.61/include/uapi/linux/netfilter_arp/arp_tables.h
-===================================================================
---- linux-4.14.61.orig/include/uapi/linux/netfilter_arp/arp_tables.h
-+++ linux-4.14.61/include/uapi/linux/netfilter_arp/arp_tables.h
+--- a/include/uapi/linux/netfilter_arp/arp_tables.h
++++ b/include/uapi/linux/netfilter_arp/arp_tables.h
 @@ -70,7 +70,7 @@ struct arpt_arp {
  	__u8 flags;
  	/* Inverse flags */
@@ -894,10 +820,8 @@ Index: linux-4.14.61/include/uapi/linux/netfilter_arp/arp_tables.h
  
  /* Values for "flag" field in struct arpt_ip (general arp structure).
   * No flags defined yet.
-Index: linux-4.14.61/net/core/utils.c
-===================================================================
---- linux-4.14.61.orig/net/core/utils.c
-+++ linux-4.14.61/net/core/utils.c
+--- a/net/core/utils.c
++++ b/net/core/utils.c
 @@ -424,8 +424,14 @@ void inet_proto_csum_replace16(__sum16 *
  			       bool pseudohdr)
  {
@@ -915,10 +839,8 @@ Index: linux-4.14.61/net/core/utils.c
  	};
  	if (skb->ip_summed != CHECKSUM_PARTIAL) {
  		*sum = csum_fold(csum_partial(diff, sizeof(diff),
-Index: linux-4.14.61/drivers/net/vxlan.c
-===================================================================
---- linux-4.14.61.orig/drivers/net/vxlan.c
-+++ linux-4.14.61/drivers/net/vxlan.c
+--- a/drivers/net/vxlan.c
++++ b/drivers/net/vxlan.c
 @@ -1857,15 +1857,15 @@ static int vxlan_build_skb(struct sk_buf
  		return err;
  
@@ -939,10 +861,8 @@ Index: linux-4.14.61/drivers/net/vxlan.c
  
  		if (!skb_is_gso(skb)) {
  			skb->ip_summed = CHECKSUM_NONE;
-Index: linux-4.14.61/include/linux/etherdevice.h
-===================================================================
---- linux-4.14.61.orig/include/linux/etherdevice.h
-+++ linux-4.14.61/include/linux/etherdevice.h
+--- a/include/linux/etherdevice.h
++++ b/include/linux/etherdevice.h
 @@ -480,7 +480,7 @@ static inline bool is_etherdev_addr(cons
   * @b: Pointer to Ethernet header
   *
@@ -969,10 +889,8 @@ Index: linux-4.14.61/include/linux/etherdevice.h
  #endif
  }
  
-Index: linux-4.14.61/net/ipv4/tcp_offload.c
-===================================================================
---- linux-4.14.61.orig/net/ipv4/tcp_offload.c
-+++ linux-4.14.61/net/ipv4/tcp_offload.c
+--- a/net/ipv4/tcp_offload.c
++++ b/net/ipv4/tcp_offload.c
 @@ -226,7 +226,7 @@ struct sk_buff **tcp_gro_receive(struct
  
  		th2 = tcp_hdr(p);
@@ -993,10 +911,8 @@ Index: linux-4.14.61/net/ipv4/tcp_offload.c
  
  	/* When we receive our second frame we can made a decision on if we
  	 * continue this flow as an atomic flow with a fixed ID or if we use
-Index: linux-4.14.61/net/ipv6/netfilter/ip6table_mangle.c
-===================================================================
---- linux-4.14.61.orig/net/ipv6/netfilter/ip6table_mangle.c
-+++ linux-4.14.61/net/ipv6/netfilter/ip6table_mangle.c
+--- a/net/ipv6/netfilter/ip6table_mangle.c
++++ b/net/ipv6/netfilter/ip6table_mangle.c
 @@ -50,7 +50,7 @@ ip6t_mangle_out(struct sk_buff *skb, con
  	hop_limit = ipv6_hdr(skb)->hop_limit;
  

+ 8 - 16
target/linux/ar71xx/patches-4.14/930-chipidea-pullup.patch

@@ -1,7 +1,5 @@
-Index: linux-4.14.61/drivers/usb/chipidea/ci.h
-===================================================================
---- linux-4.14.61.orig/drivers/usb/chipidea/ci.h
-+++ linux-4.14.61/drivers/usb/chipidea/ci.h
+--- a/drivers/usb/chipidea/ci.h
++++ b/drivers/usb/chipidea/ci.h
 @@ -205,6 +205,7 @@ struct hw_bank {
   * @in_lpm: if the core in low power mode
   * @wakeup_int: if wakeup interrupt occur
@@ -18,10 +16,8 @@ Index: linux-4.14.61/drivers/usb/chipidea/ci.h
  };
  
  static inline struct ci_role_driver *ci_role(struct ci_hdrc *ci)
-Index: linux-4.14.61/drivers/usb/chipidea/core.c
-===================================================================
---- linux-4.14.61.orig/drivers/usb/chipidea/core.c
-+++ linux-4.14.61/drivers/usb/chipidea/core.c
+--- a/drivers/usb/chipidea/core.c
++++ b/drivers/usb/chipidea/core.c
 @@ -818,7 +818,7 @@ static inline void ci_role_destroy(struc
  {
  	ci_hdrc_gadget_destroy(ci);
@@ -50,10 +46,8 @@ Index: linux-4.14.61/drivers/usb/chipidea/core.c
  		ret = ci_hdrc_otg_init(ci);
  		if (ret) {
  			dev_err(dev, "init otg fails, ret = %d\n", ret);
-Index: linux-4.14.61/drivers/usb/chipidea/otg.c
-===================================================================
---- linux-4.14.61.orig/drivers/usb/chipidea/otg.c
-+++ linux-4.14.61/drivers/usb/chipidea/otg.c
+--- a/drivers/usb/chipidea/otg.c
++++ b/drivers/usb/chipidea/otg.c
 @@ -131,8 +131,10 @@ enum ci_role ci_otg_role(struct ci_hdrc
  
  void ci_handle_vbus_change(struct ci_hdrc *ci)
@@ -66,10 +60,8 @@ Index: linux-4.14.61/drivers/usb/chipidea/otg.c
  
  	if (hw_read_otgsc(ci, OTGSC_BSV) && !ci->vbus_active)
  		usb_gadget_vbus_connect(&ci->gadget);
-Index: linux-4.14.61/include/linux/usb/chipidea.h
-===================================================================
---- linux-4.14.61.orig/include/linux/usb/chipidea.h
-+++ linux-4.14.61/include/linux/usb/chipidea.h
+--- a/include/linux/usb/chipidea.h
++++ b/include/linux/usb/chipidea.h
 @@ -60,6 +60,7 @@ struct ci_hdrc_platform_data {
  #define CI_HDRC_OVERRIDE_RX_BURST	BIT(11)
  #define CI_HDRC_OVERRIDE_PHY_CONTROL	BIT(12) /* Glue layer manages phy */

+ 2 - 4
target/linux/ar71xx/patches-4.14/940-qca955x-add-more-registers.patch

@@ -1,7 +1,5 @@
-Index: linux-4.9.111/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
-===================================================================
---- linux-4.9.111.orig/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
-+++ linux-4.9.111/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
+--- a/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
++++ b/arch/mips/include/asm/mach-ath79/ar71xx_regs.h
 @@ -134,7 +134,7 @@
  #define QCA955X_PCI_CTRL_SIZE	0x100
  

+ 1 - 1
target/linux/generic/backport-4.14/030-USB-serial-option-fix-dwm-158-3g-modem-interface.patch

@@ -30,7 +30,7 @@ Signed-off-by: Johan Hovold <[email protected]>
 
 --- a/drivers/usb/serial/option.c
 +++ b/drivers/usb/serial/option.c
-@@ -1919,7 +1919,8 @@ static const struct usb_device_id option
+@@ -1923,7 +1923,8 @@ static const struct usb_device_id option
  	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d01, 0xff) },			/* D-Link DWM-156 (variant) */
  	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d02, 0xff) },
  	{ USB_DEVICE_INTERFACE_CLASS(0x2001, 0x7d03, 0xff) },

+ 11 - 11
target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch

@@ -300,7 +300,7 @@ Signed-off-by: Steven Barth <[email protected]>
  /**
   * ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
   *   @t: the outgoing tunnel device
-@@ -1303,6 +1443,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1299,6 +1439,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
  {
  	struct ip6_tnl *t = netdev_priv(dev);
  	struct ipv6hdr *ipv6h = ipv6_hdr(skb);
@@ -308,7 +308,7 @@ Signed-off-by: Steven Barth <[email protected]>
  	int encap_limit = -1;
  	__u16 offset;
  	struct flowi6 fl6;
-@@ -1365,6 +1506,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1361,6 +1502,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
  
  	fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
  
@@ -327,7 +327,7 @@ Signed-off-by: Steven Barth <[email protected]>
  	if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
  		return -1;
  
-@@ -1493,6 +1646,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
+@@ -1489,6 +1642,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
  	t->parms.link = p->link;
  	t->parms.proto = p->proto;
  	t->parms.fwmark = p->fwmark;
@@ -342,7 +342,7 @@ Signed-off-by: Steven Barth <[email protected]>
  	dst_cache_reset(&t->dst_cache);
  	ip6_tnl_link_config(t);
  	return 0;
-@@ -1531,6 +1692,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
+@@ -1527,6 +1688,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
  	p->flowinfo = u->flowinfo;
  	p->link = u->link;
  	p->proto = u->proto;
@@ -350,7 +350,7 @@ Signed-off-by: Steven Barth <[email protected]>
  	memcpy(p->name, u->name, sizeof(u->name));
  }
  
-@@ -1917,6 +2079,15 @@ static int ip6_tnl_validate(struct nlatt
+@@ -1913,6 +2075,15 @@ static int ip6_tnl_validate(struct nlatt
  	return 0;
  }
  
@@ -366,7 +366,7 @@ Signed-off-by: Steven Barth <[email protected]>
  static void ip6_tnl_netlink_parms(struct nlattr *data[],
  				  struct __ip6_tnl_parm *parms)
  {
-@@ -1954,6 +2125,46 @@ static void ip6_tnl_netlink_parms(struct
+@@ -1950,6 +2121,46 @@ static void ip6_tnl_netlink_parms(struct
  
  	if (data[IFLA_IPTUN_FWMARK])
  		parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]);
@@ -413,7 +413,7 @@ Signed-off-by: Steven Barth <[email protected]>
  }
  
  static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
-@@ -2069,6 +2280,12 @@ static void ip6_tnl_dellink(struct net_d
+@@ -2065,6 +2276,12 @@ static void ip6_tnl_dellink(struct net_d
  
  static size_t ip6_tnl_get_size(const struct net_device *dev)
  {
@@ -426,7 +426,7 @@ Signed-off-by: Steven Barth <[email protected]>
  	return
  		/* IFLA_IPTUN_LINK */
  		nla_total_size(4) +
-@@ -2098,6 +2315,24 @@ static size_t ip6_tnl_get_size(const str
+@@ -2094,6 +2311,24 @@ static size_t ip6_tnl_get_size(const str
  		nla_total_size(0) +
  		/* IFLA_IPTUN_FWMARK */
  		nla_total_size(4) +
@@ -451,7 +451,7 @@ Signed-off-by: Steven Barth <[email protected]>
  		0;
  }
  
-@@ -2105,6 +2340,9 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2101,6 +2336,9 @@ static int ip6_tnl_fill_info(struct sk_b
  {
  	struct ip6_tnl *tunnel = netdev_priv(dev);
  	struct __ip6_tnl_parm *parm = &tunnel->parms;
@@ -461,7 +461,7 @@ Signed-off-by: Steven Barth <[email protected]>
  
  	if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
  	    nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
-@@ -2114,9 +2352,27 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2110,9 +2348,27 @@ static int ip6_tnl_fill_info(struct sk_b
  	    nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
  	    nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
  	    nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
@@ -490,7 +490,7 @@ Signed-off-by: Steven Barth <[email protected]>
  	if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
  	    nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
  	    nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
-@@ -2156,6 +2412,7 @@ static const struct nla_policy ip6_tnl_p
+@@ -2152,6 +2408,7 @@ static const struct nla_policy ip6_tnl_p
  	[IFLA_IPTUN_ENCAP_DPORT]	= { .type = NLA_U16 },
  	[IFLA_IPTUN_COLLECT_METADATA]	= { .type = NLA_FLAG },
  	[IFLA_IPTUN_FWMARK]		= { .type = NLA_U32 },