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)))))))
--- a/lib/Kconfig
+++ b/lib/Kconfig
-@@ -247,6 +247,9 @@ config LZMA_COMPRESS
+@@ -265,6 +265,9 @@ config LZMA_COMPRESS
config LZMA_DECOMPRESS
tristate
# 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/
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/
#
--- 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/
--- 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)
{
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;
--- 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;
--- 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
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;
}
}
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 */
--- 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.
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
--- 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
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
/* 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!
*/
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;
}
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;
}
--- 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
--- 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
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
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.
#
-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"
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
--- 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/
--- 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.
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
--- 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.
#
--- 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
--- 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.
#
--- 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
--- 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"
--- 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
--- 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.
--- 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
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;
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
-@@ -1213,4 +1213,12 @@ config GPIO_VIPERBOARD
+@@ -1298,4 +1298,12 @@ config GPIO_VIPERBOARD
endmenu
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
--- 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>
#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;
/*
* 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;
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;
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;
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;
}
+#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"
--- 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.
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
}
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);
}
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;
}
-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 <juhosg@openwrt.org>
+# 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 @@
*/
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;
#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";
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;
--- 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/
--- 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
--- 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
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
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
+ 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
--- 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
+#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];
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
-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.
*/
}
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"
--- 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
--- 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
+ 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
--- 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
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
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);
}
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();
-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
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);
}
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())
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() ||
} 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));
}
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)
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:
_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())
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);
}
+ 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
},
};
} 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;
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
/*
* 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,
--- 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.
-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
}
};
--- 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)"
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
#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)
{
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;
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) {
-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)
{
/*
* 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");
}
/* 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;
-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;
#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;
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;
/* 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;
#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;
/* 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;
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];
/*
-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
#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>
}
#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)
/*
* 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);
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;
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;
}
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);
+
#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;
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;
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 */
}
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;
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;
#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);
}
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
#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;
}
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)
}
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;
/* 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;
#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;
}
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;
}
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
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 {
#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.
*/
}
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 */
| (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;
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);
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 {
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 ",
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;
}
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 */
/* 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)
{
};
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;
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
*
#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);
/* 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;
-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
};
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);
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)
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 */
-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
--- 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) },
/**
* 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);
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);
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;
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;
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;
}
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]);
}
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)
{
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) +
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;
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) ||
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 },