kernel: bump 4.19 to 4.19.16
authorStijn Tintel <stijn@linux-ipv6.be>
Wed, 16 Jan 2019 23:01:18 +0000 (01:01 +0200)
committerStijn Tintel <stijn@linux-ipv6.be>
Thu, 17 Jan 2019 01:04:13 +0000 (03:04 +0200)
Refresh patches.
Remove upstreamed patches:
- backport/096-mips-math-emu-Write-protect-delay-slot-emulation-pages.patch
- backport/096-v4.20-netfilter-ipv6-Preserve-link-scope-traffic-original-.patch
- backport/424-v4.20-net-dsa-fix-88e6060-roaming.patch
- hack/100-mtd-rawnand-qcom-fix-memory-corruption-that-causes-p.patch
- pending/510-f2fs-fix-sanity_check_raw_super-on-big-endian-machines.patch
Update patch that no longer applies:
- backport/343-netfilter-nft_flow_offload-handle-netdevice-events-f.patch

Compile-tested: mesongx
Runtime-tested: mesongx

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
41 files changed:
include/kernel-version.mk
target/linux/apm821xx/patches-4.19/010-dmaengine-dw-dmac-implement-dma-prot.patch
target/linux/apm821xx/patches-4.19/201-add-amcc-apollo3g-support.patch
target/linux/apm821xx/patches-4.19/202-add-netgear-wndr4700-support.patch
target/linux/apm821xx/patches-4.19/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch
target/linux/apm821xx/patches-4.19/802-usb-xhci-force-msi-renesas-xhci.patch
target/linux/bcm53xx/patches-4.19/400-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch
target/linux/bcm53xx/patches-4.19/905-BCM53573-minor-hacks.patch
target/linux/brcm47xx/patches-4.19/159-cpu_fixes.patch
target/linux/brcm47xx/patches-4.19/160-kmap_coherent.patch
target/linux/generic/backport-4.19/096-mips-math-emu-Write-protect-delay-slot-emulation-pages.patch [deleted file]
target/linux/generic/backport-4.19/096-v4.20-netfilter-ipv6-Preserve-link-scope-traffic-original-.patch [deleted file]
target/linux/generic/backport-4.19/100-arm-cns3xxx-fix-writing-to-wrong-PCI-registers-after.patch
target/linux/generic/backport-4.19/343-netfilter-nft_flow_offload-handle-netdevice-events-f.patch
target/linux/generic/backport-4.19/424-v4.20-net-dsa-fix-88e6060-roaming.patch [deleted file]
target/linux/generic/backport-4.19/500-ubifs-Handle-re-linking-of-inodes-correctly-while-re.patch
target/linux/generic/hack-4.19/100-mtd-rawnand-qcom-fix-memory-corruption-that-causes-p.patch [deleted file]
target/linux/generic/hack-4.19/160-leds-fix-regression-in-usbport-led-trigger.patch
target/linux/generic/hack-4.19/204-module_strip.patch
target/linux/generic/hack-4.19/207-disable-modorder.patch
target/linux/generic/hack-4.19/300-MIPS-r4k_cache-use-more-efficient-cache-blast.patch
target/linux/generic/hack-4.19/702-phy_add_aneg_done_function.patch
target/linux/generic/hack-4.19/721-phy_packets.patch
target/linux/generic/hack-4.19/902-debloat_proc.patch
target/linux/generic/hack-4.19/904-debloat_dma_buf.patch
target/linux/generic/hack-4.19/930-crashlog.patch
target/linux/generic/pending-4.19/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
target/linux/generic/pending-4.19/203-kallsyms_uncompressed.patch
target/linux/generic/pending-4.19/470-mtd-spi-nor-support-limiting-4K-sectors-support-base.patch
target/linux/generic/pending-4.19/510-f2fs-fix-sanity_check_raw_super-on-big-endian-machines.patch [deleted file]
target/linux/generic/pending-4.19/630-packet_socket_type.patch
target/linux/generic/pending-4.19/640-netfilter-nf_flow_table-add-hardware-offload-support.patch
target/linux/generic/pending-4.19/655-increase_skb_pad.patch
target/linux/generic/pending-4.19/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
target/linux/generic/pending-4.19/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/pending-4.19/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
target/linux/generic/pending-4.19/703-phy-add-detach-callback-to-struct-phy_driver.patch
target/linux/generic/pending-4.19/834-ledtrig-libata.patch
target/linux/generic/pending-4.19/920-mangle_bootargs.patch
target/linux/ipq40xx/patches-4.19/303-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch
target/linux/mpc85xx/patches-4.19/100-powerpc-85xx-tl-wdr4900-v1-support.patch

index d534eee..0f4788a 100644 (file)
@@ -5,12 +5,12 @@ LINUX_RELEASE?=1
 LINUX_VERSION-3.18 = .132
 LINUX_VERSION-4.9 = .150
 LINUX_VERSION-4.14 = .93
-LINUX_VERSION-4.19 = .9
+LINUX_VERSION-4.19 = .16
 
 LINUX_KERNEL_HASH-3.18.132 = c187bd0322372bd34c862cbb06a1996a63524ccb401466362b57ede45901a879
 LINUX_KERNEL_HASH-4.9.150 = 94cc177ba2b433e4e30fefef38de33248ba1e2499ebda905096a8822097117e4
 LINUX_KERNEL_HASH-4.14.93 = bb125fb204f7089782e179126121dd0f0aad9f02b7517ce3744982254c221bad
-LINUX_KERNEL_HASH-4.19.9 = fc116cc6829c73944215d3b3ac0fc368dde9e8235b456744afffde001269dbf2
+LINUX_KERNEL_HASH-4.19.16 = d8a088381fe3e7e5484c060dabcdda4b053ef7114f91cfd56db003a89bb11bdf
 
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
index 3c4edff..86da6fc 100644 (file)
@@ -55,11 +55,9 @@ Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
 Signed-off-by: Vinod Koul <vkoul@kernel.org>
 ---
 
-diff --git a/drivers/dma/dw/core.c b/drivers/dma/dw/core.c
-index d0c3e50b39fb..2c5ca1961256 100644
 --- a/drivers/dma/dw/core.c
 +++ b/drivers/dma/dw/core.c
-@@ -160,12 +160,14 @@ static void dwc_initialize_chan_idma32(struct dw_dma_chan *dwc)
+@@ -160,12 +160,14 @@ static void dwc_initialize_chan_idma32(s
  
  static void dwc_initialize_chan_dw(struct dw_dma_chan *dwc)
  {
@@ -74,11 +72,9 @@ index d0c3e50b39fb..2c5ca1961256 100644
  
        /* Set polarity of handshake interface */
        cfglo |= hs_polarity ? DWC_CFGL_HS_DST_POL | DWC_CFGL_HS_SRC_POL : 0;
-diff --git a/drivers/dma/dw/platform.c b/drivers/dma/dw/platform.c
-index f01b2c173fa6..31ff8113c3de 100644
 --- a/drivers/dma/dw/platform.c
 +++ b/drivers/dma/dw/platform.c
-@@ -162,6 +162,12 @@ dw_dma_parse_dt(struct platform_device *pdev)
+@@ -162,6 +162,12 @@ dw_dma_parse_dt(struct platform_device *
                        pdata->multi_block[tmp] = 1;
        }
  
@@ -91,8 +87,6 @@ index f01b2c173fa6..31ff8113c3de 100644
        return pdata;
  }
  #else
-diff --git a/drivers/dma/dw/regs.h b/drivers/dma/dw/regs.h
-index 09e7dfdbb790..646c9c960c07 100644
 --- a/drivers/dma/dw/regs.h
 +++ b/drivers/dma/dw/regs.h
 @@ -200,6 +200,10 @@ enum dw_dma_msize {
@@ -106,11 +100,9 @@ index 09e7dfdbb790..646c9c960c07 100644
  #define DWC_CFGH_DS_UPD_EN    (1 << 5)
  #define DWC_CFGH_SS_UPD_EN    (1 << 6)
  #define DWC_CFGH_SRC_PER(x)   ((x) << 7)
-diff --git a/include/linux/platform_data/dma-dw.h b/include/linux/platform_data/dma-dw.h
-index 896cb71a382c..1a1d58ebffbf 100644
 --- a/include/linux/platform_data/dma-dw.h
 +++ b/include/linux/platform_data/dma-dw.h
-@@ -49,6 +49,7 @@  struct dw_dma_slave {
+@@ -49,6 +49,7 @@ struct dw_dma_slave {
   * @data_width: Maximum data width supported by hardware per AHB master
   *            (in bytes, power of 2)
   * @multi_block: Multi block transfers supported by hardware per channel.
@@ -118,7 +110,7 @@ index 896cb71a382c..1a1d58ebffbf 100644
   */
  struct dw_dma_platform_data {
        unsigned int    nr_channels;
-@@ -65,6 +66,11 @@  struct dw_dma_platform_data {
+@@ -65,6 +66,11 @@ struct dw_dma_platform_data {
        unsigned char   nr_masters;
        unsigned char   data_width[DW_DMA_MAX_NR_MASTERS];
        unsigned char   multi_block[DW_DMA_MAX_NR_CHANNELS];
@@ -130,12 +122,9 @@ index 896cb71a382c..1a1d58ebffbf 100644
  };
  
  #endif /* _PLATFORM_DATA_DMA_DW_H */
-diff --git a/include/dt-bindings/dma/dw-dmac.h b/include/dt-bindings/dma/dw-dmac.h
-new file mode 100644
-index 000000000000..d1ca705c95b3
 --- /dev/null
 +++ b/include/dt-bindings/dma/dw-dmac.h
-@@ -0,0 +1,14 @@ 
+@@ -0,0 +1,14 @@
 +/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
 +
 +#ifndef __DT_BINDINGS_DMA_DW_DMAC_H__
@@ -150,6 +139,3 @@ index 000000000000..d1ca705c95b3
 +#define DW_DMAC_HPROT3_CACHEABLE      (1 << 2)        /* DMA is cacheable */
 +
 +#endif /* __DT_BINDINGS_DMA_DW_DMAC_H__ */
---
-cgit 1.2-0.3.lf.el7
-
index 1898239..18f4c72 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/powerpc/platforms/44x/Kconfig
 +++ b/arch/powerpc/platforms/44x/Kconfig
-@@ -144,6 +144,17 @@ config CANYONLANDS
+@@ -131,6 +131,17 @@ config CANYONLANDS
        help
          This option enables support for the AMCC PPC460EX evaluation board.
  
index 77294a8..536a74e 100644 (file)
@@ -10,7 +10,7 @@
  obj-$(CONFIG_WARP)    += warp.o
 --- a/arch/powerpc/platforms/44x/Kconfig
 +++ b/arch/powerpc/platforms/44x/Kconfig
-@@ -273,6 +273,19 @@ config ICON
+@@ -260,6 +260,19 @@ config ICON
        help
          This option enables support for the AMCC PPC440SPe evaluation board.
  
index b892674..630aaca 100644 (file)
@@ -44,7 +44,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
  
  #include "xhci.h"
  #include "xhci-trace.h"
-@@ -248,6 +250,458 @@ static void xhci_pme_acpi_rtd3_enable(st
+@@ -261,6 +263,458 @@ static void xhci_pme_acpi_rtd3_enable(st
  static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
  #endif /* CONFIG_ACPI */
  
@@ -503,7 +503,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
  /* called during probe() after chip reset completes */
  static int xhci_pci_setup(struct usb_hcd *hcd)
  {
-@@ -286,6 +740,22 @@ static int xhci_pci_probe(struct pci_dev
+@@ -299,6 +753,22 @@ static int xhci_pci_probe(struct pci_dev
        struct hc_driver *driver;
        struct usb_hcd *hcd;
  
@@ -526,7 +526,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
        driver = (struct hc_driver *)id->driver_data;
  
        /* Prevent runtime suspending between USB-2 and USB-3 initialization */
-@@ -347,6 +817,16 @@ static void xhci_pci_remove(struct pci_d
+@@ -360,6 +830,16 @@ static void xhci_pci_remove(struct pci_d
  {
        struct xhci_hcd *xhci;
  
index 2fba6dc..90fb279 100644 (file)
@@ -13,7 +13,7 @@ produce a noisy warning.
 
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -206,6 +206,7 @@ static void xhci_pci_quirks(struct devic
+@@ -214,6 +214,7 @@ static void xhci_pci_quirks(struct devic
            pdev->device == 0x0015) {
                xhci->quirks |= XHCI_RESET_ON_RESUME;
                xhci->quirks |= XHCI_ZERO_64B_REGS;
@@ -43,11 +43,11 @@ produce a noisy warning.
                hcd->msi_enabled = 1;
 --- a/drivers/usb/host/xhci.h
 +++ b/drivers/usb/host/xhci.h
-@@ -1857,6 +1857,7 @@ struct xhci_hcd {
+@@ -1859,6 +1859,7 @@ struct xhci_hcd {
        /* support xHCI 0.96 spec USB2 software LPM */
        unsigned                sw_lpm_support:1;
        /* support xHCI 1.0 spec USB2 hardware LPM */
 +#define XHCI_FORCE_MSI                (1 << 24)
        unsigned                hw_lpm_support:1;
-       /* cached usb2 extened protocol capabilites */
-       u32                     *ext_caps;
+       /* Broken Suspend flag for SNPS Suspend resume issue */
+       unsigned                broken_suspend:1;
index b23dae5..b05749f 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
 
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1294,6 +1294,18 @@ static const struct flash_info *spi_nor_
+@@ -1295,6 +1295,18 @@ static const struct flash_info *spi_nor_
        }
        dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %02x, %02x\n",
                id[0], id[1], id[2]);
index 8f4b3ac..773197d 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
        clocks {
 --- a/drivers/bcma/main.c
 +++ b/drivers/bcma/main.c
-@@ -348,14 +348,6 @@ static int bcma_register_devices(struct
+@@ -330,14 +330,6 @@ static int bcma_register_devices(struct
        }
  #endif
  
@@ -36,7 +36,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
  #ifdef CONFIG_BCMA_NFLASH
        if (bus->drv_cc.nflash.present) {
                err = platform_device_register(&bcma_nflash_dev);
-@@ -436,6 +428,14 @@ int bcma_bus_register(struct bcma_bus *b
+@@ -415,6 +407,14 @@ int bcma_bus_register(struct bcma_bus *b
                        bcma_register_core(bus, core);
        }
  
index f3415b5..68fdc50 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/include/asm/r4kcache.h
 +++ b/arch/mips/include/asm/r4kcache.h
-@@ -25,6 +25,38 @@
+@@ -26,6 +26,38 @@
  extern void (*r4k_blast_dcache)(void);
  extern void (*r4k_blast_icache)(void);
  
@@ -39,7 +39,7 @@
  /*
   * This macro return a properly sign-extended address suitable as base address
   * for indexed cache operations.  Two issues here:
-@@ -98,6 +130,7 @@ static inline void flush_icache_line_ind
+@@ -99,6 +131,7 @@ static inline void flush_icache_line_ind
  static inline void flush_dcache_line_indexed(unsigned long addr)
  {
        __dflush_prologue
@@ -47,7 +47,7 @@
        cache_op(Index_Writeback_Inv_D, addr);
        __dflush_epilogue
  }
-@@ -125,6 +158,7 @@ static inline void flush_icache_line(uns
+@@ -126,6 +159,7 @@ static inline void flush_icache_line(uns
  static inline void flush_dcache_line(unsigned long addr)
  {
        __dflush_prologue
@@ -55,7 +55,7 @@
        cache_op(Hit_Writeback_Inv_D, addr);
        __dflush_epilogue
  }
-@@ -132,6 +166,7 @@ static inline void flush_dcache_line(uns
+@@ -133,6 +167,7 @@ static inline void flush_dcache_line(uns
  static inline void invalidate_dcache_line(unsigned long addr)
  {
        __dflush_prologue
@@ -63,7 +63,7 @@
        cache_op(Hit_Invalidate_D, addr);
        __dflush_epilogue
  }
-@@ -205,6 +240,7 @@ static inline int protected_flush_icache
+@@ -206,6 +241,7 @@ static inline int protected_flush_icache
  #ifdef CONFIG_EVA
                return protected_cachee_op(Hit_Invalidate_I, addr);
  #else
@@ -71,7 +71,7 @@
                return protected_cache_op(Hit_Invalidate_I, addr);
  #endif
        }
-@@ -218,6 +254,7 @@ static inline int protected_flush_icache
+@@ -219,6 +255,7 @@ static inline int protected_flush_icache
   */
  static inline int protected_writeback_dcache_line(unsigned long addr)
  {
@@ -79,7 +79,7 @@
  #ifdef CONFIG_EVA
        return protected_cachee_op(Hit_Writeback_Inv_D, addr);
  #else
-@@ -575,8 +612,51 @@ static inline void invalidate_tcache_pag
+@@ -576,8 +613,51 @@ static inline void invalidate_tcache_pag
                : "r" (base),                                           \
                  "i" (op));
  
  static inline void extra##blast_##pfx##cache##lsize(void)             \
  {                                                                     \
        unsigned long start = INDEX_BASE;                               \
-@@ -588,6 +668,7 @@ static inline void extra##blast_##pfx##c
+@@ -589,6 +669,7 @@ static inline void extra##blast_##pfx##c
                                                                        \
        __##pfx##flush_prologue                                         \
                                                                        \
        for (ws = 0; ws < ws_end; ws += ws_inc)                         \
                for (addr = start; addr < end; addr += lsize * 32)      \
                        cache##lsize##_unroll32(addr|ws, indexop);      \
-@@ -602,6 +683,7 @@ static inline void extra##blast_##pfx##c
+@@ -603,6 +684,7 @@ static inline void extra##blast_##pfx##c
                                                                        \
        __##pfx##flush_prologue                                         \
                                                                        \
        do {                                                            \
                cache##lsize##_unroll32(start, hitop);                  \
                start += lsize * 32;                                    \
-@@ -620,6 +702,8 @@ static inline void extra##blast_##pfx##c
+@@ -621,6 +703,8 @@ static inline void extra##blast_##pfx##c
                               current_cpu_data.desc.waybit;            \
        unsigned long ws, addr;                                         \
                                                                        \
        __##pfx##flush_prologue                                         \
                                                                        \
        for (ws = 0; ws < ws_end; ws += ws_inc)                         \
-@@ -629,26 +713,26 @@ static inline void extra##blast_##pfx##c
+@@ -630,26 +714,26 @@ static inline void extra##blast_##pfx##c
        __##pfx##flush_epilogue                                         \
  }
  
  
  #define __BUILD_BLAST_USER_CACHE(pfx, desc, indexop, hitop, lsize) \
  static inline void blast_##pfx##cache##lsize##_user_page(unsigned long page) \
-@@ -677,53 +761,23 @@ __BUILD_BLAST_USER_CACHE(d, dcache, Inde
+@@ -678,53 +762,23 @@ __BUILD_BLAST_USER_CACHE(d, dcache, Inde
  __BUILD_BLAST_USER_CACHE(i, icache, Index_Invalidate_I, Hit_Invalidate_I, 64)
  
  /* build blast_xxx_range, protected_blast_xxx_range */
        }                                                               \
                                                                        \
        __##pfx##flush_epilogue                                         \
-@@ -731,8 +785,8 @@ static inline void prot##extra##blast_##
+@@ -732,8 +786,8 @@ static inline void prot##extra##blast_##
  
  #ifndef CONFIG_EVA
  
  
  #else
  
-@@ -769,14 +823,14 @@ __BUILD_PROT_BLAST_CACHE_RANGE(d, dcache
+@@ -770,15 +824,15 @@ __BUILD_PROT_BLAST_CACHE_RANGE(d, dcache
  __BUILD_PROT_BLAST_CACHE_RANGE(i, icache, Hit_Invalidate_I)
  
  #endif
 +__BUILD_BLAST_CACHE_RANGE(inv_d, dcache, Hit_Invalidate_D, , , , BCM4710_DUMMY_RREG();)
 +__BUILD_BLAST_CACHE_RANGE(inv_s, scache, Hit_Invalidate_SD, , , , )
  
- #endif /* _ASM_R4KCACHE_H */
+ /* Currently, this is very specific to Loongson-3 */
+ #define __BUILD_BLAST_CACHE_NODE(pfx, desc, indexop, hitop, lsize)    \
 --- a/arch/mips/include/asm/stackframe.h
 +++ b/arch/mips/include/asm/stackframe.h
 @@ -428,6 +428,10 @@
        if (dc_lsize == 0)
                r4k_blast_dcache = (void *)cache_noop;
        else if (dc_lsize == 16)
-@@ -957,6 +969,8 @@ static void local_r4k_flush_cache_sigtra
+@@ -986,6 +998,8 @@ static void local_r4k_flush_cache_sigtra
        }
  
        R4600_HIT_CACHEOP_WAR_IMPL;
        if (!cpu_has_ic_fills_f_dc) {
                if (dc_lsize)
                        vaddr ? flush_dcache_line(addr & ~(dc_lsize - 1))
-@@ -1859,6 +1873,17 @@ static void coherency_setup(void)
+@@ -1888,6 +1902,17 @@ static void coherency_setup(void)
         * silly idea of putting something else there ...
         */
        switch (current_cpu_type()) {
        case CPU_R4000PC:
        case CPU_R4000SC:
        case CPU_R4000MC:
-@@ -1905,6 +1930,15 @@ void r4k_cache_init(void)
+@@ -1934,6 +1959,15 @@ void r4k_cache_init(void)
        extern void build_copy_page(void);
        struct cpuinfo_mips *c = &current_cpu_data;
  
        probe_pcache();
        probe_vcache();
        setup_scache();
-@@ -1982,7 +2016,15 @@ void r4k_cache_init(void)
+@@ -2012,7 +2046,15 @@ void r4k_cache_init(void)
         */
        local_r4k___flush_cache_all(NULL);
  
index f7f4d3e..db5660b 100644 (file)
@@ -29,7 +29,7 @@ This fixes OpenWrt ticket #1485: https://dev.openwrt.org/ticket/1485
  #endif /* __ASM_MACH_BCM47XX_CPU_FEATURE_OVERRIDES_H */
 --- a/arch/mips/mm/c-r4k.c
 +++ b/arch/mips/mm/c-r4k.c
-@@ -672,7 +672,7 @@ static inline void local_r4k_flush_cache
+@@ -694,7 +694,7 @@ static inline void local_r4k_flush_cache
                map_coherent = (cpu_has_dc_aliases &&
                                page_mapcount(page) &&
                                !Page_dcache_dirty(page));
@@ -38,7 +38,7 @@ This fixes OpenWrt ticket #1485: https://dev.openwrt.org/ticket/1485
                        vaddr = kmap_coherent(page, addr);
                else
                        vaddr = kmap_atomic(page);
-@@ -697,7 +697,7 @@ static inline void local_r4k_flush_cache
+@@ -719,7 +719,7 @@ static inline void local_r4k_flush_cache
        }
  
        if (vaddr) {
diff --git a/target/linux/generic/backport-4.19/096-mips-math-emu-Write-protect-delay-slot-emulation-pages.patch b/target/linux/generic/backport-4.19/096-mips-math-emu-Write-protect-delay-slot-emulation-pages.patch
deleted file mode 100644 (file)
index f428285..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-From adcc81f148d733b7e8e641300c5590a2cdc13bf3 Mon Sep 17 00:00:00 2001
-From: Paul Burton <paul.burton@mips.com>
-Date: Thu, 20 Dec 2018 17:45:43 +0000
-Subject: MIPS: math-emu: Write-protect delay slot emulation pages
-
-Mapping the delay slot emulation page as both writeable & executable
-presents a security risk, in that if an exploit can write to & jump into
-the page then it can be used as an easy way to execute arbitrary code.
-
-Prevent this by mapping the page read-only for userland, and using
-access_process_vm() with the FOLL_FORCE flag to write to it from
-mips_dsemul().
-
-This will likely be less efficient due to copy_to_user_page() performing
-cache maintenance on a whole page, rather than a single line as in the
-previous use of flush_cache_sigtramp(). However this delay slot
-emulation code ought not to be running in any performance critical paths
-anyway so this isn't really a problem, and we can probably do better in
-copy_to_user_page() anyway in future.
-
-A major advantage of this approach is that the fix is small & simple to
-backport to stable kernels.
-
-Reported-by: Andy Lutomirski <luto@kernel.org>
-Signed-off-by: Paul Burton <paul.burton@mips.com>
-Fixes: 432c6bacbd0c ("MIPS: Use per-mm page to execute branch delay slot instructions")
-Cc: stable@vger.kernel.org # v4.8+
-Cc: linux-mips@vger.kernel.org
-Cc: linux-kernel@vger.kernel.org
-Cc: Rich Felker <dalias@libc.org>
-Cc: David Daney <david.daney@cavium.com>
----
- arch/mips/kernel/vdso.c     |  4 ++--
- arch/mips/math-emu/dsemul.c | 38 ++++++++++++++++++++------------------
- 2 files changed, 22 insertions(+), 20 deletions(-)
-
---- a/arch/mips/kernel/vdso.c
-+++ b/arch/mips/kernel/vdso.c
-@@ -126,8 +126,8 @@ int arch_setup_additional_pages(struct l
-       /* Map delay slot emulation page */
-       base = mmap_region(NULL, STACK_TOP, PAGE_SIZE,
--                         VM_READ|VM_WRITE|VM_EXEC|
--                         VM_MAYREAD|VM_MAYWRITE|VM_MAYEXEC,
-+                         VM_READ | VM_EXEC |
-+                         VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC,
-                          0, NULL);
-       if (IS_ERR_VALUE(base)) {
-               ret = base;
---- a/arch/mips/math-emu/dsemul.c
-+++ b/arch/mips/math-emu/dsemul.c
-@@ -214,8 +214,9 @@ int mips_dsemul(struct pt_regs *regs, mi
- {
-       int isa16 = get_isa16_mode(regs->cp0_epc);
-       mips_instruction break_math;
--      struct emuframe __user *fr;
--      int err, fr_idx;
-+      unsigned long fr_uaddr;
-+      struct emuframe fr;
-+      int fr_idx, ret;
-       /* NOP is easy */
-       if (ir == 0)
-@@ -250,27 +251,31 @@ int mips_dsemul(struct pt_regs *regs, mi
-               fr_idx = alloc_emuframe();
-       if (fr_idx == BD_EMUFRAME_NONE)
-               return SIGBUS;
--      fr = &dsemul_page()[fr_idx];
-       /* Retrieve the appropriately encoded break instruction */
-       break_math = BREAK_MATH(isa16);
-       /* Write the instructions to the frame */
-       if (isa16) {
--              err = __put_user(ir >> 16,
--                               (u16 __user *)(&fr->emul));
--              err |= __put_user(ir & 0xffff,
--                                (u16 __user *)((long)(&fr->emul) + 2));
--              err |= __put_user(break_math >> 16,
--                                (u16 __user *)(&fr->badinst));
--              err |= __put_user(break_math & 0xffff,
--                                (u16 __user *)((long)(&fr->badinst) + 2));
-+              union mips_instruction _emul = {
-+                      .halfword = { ir >> 16, ir }
-+              };
-+              union mips_instruction _badinst = {
-+                      .halfword = { break_math >> 16, break_math }
-+              };
-+
-+              fr.emul = _emul.word;
-+              fr.badinst = _badinst.word;
-       } else {
--              err = __put_user(ir, &fr->emul);
--              err |= __put_user(break_math, &fr->badinst);
-+              fr.emul = ir;
-+              fr.badinst = break_math;
-       }
--      if (unlikely(err)) {
-+      /* Write the frame to user memory */
-+      fr_uaddr = (unsigned long)&dsemul_page()[fr_idx];
-+      ret = access_process_vm(current, fr_uaddr, &fr, sizeof(fr),
-+                              FOLL_FORCE | FOLL_WRITE);
-+      if (unlikely(ret != sizeof(fr))) {
-               MIPS_FPU_EMU_INC_STATS(errors);
-               free_emuframe(fr_idx, current->mm);
-               return SIGBUS;
-@@ -282,10 +287,7 @@ int mips_dsemul(struct pt_regs *regs, mi
-       atomic_set(&current->thread.bd_emu_frame, fr_idx);
-       /* Change user register context to execute the frame */
--      regs->cp0_epc = (unsigned long)&fr->emul | isa16;
--
--      /* Ensure the icache observes our newly written frame */
--      flush_cache_sigtramp((unsigned long)&fr->emul);
-+      regs->cp0_epc = fr_uaddr | isa16;
-       return 0;
- }
diff --git a/target/linux/generic/backport-4.19/096-v4.20-netfilter-ipv6-Preserve-link-scope-traffic-original-.patch b/target/linux/generic/backport-4.19/096-v4.20-netfilter-ipv6-Preserve-link-scope-traffic-original-.patch
deleted file mode 100644 (file)
index 3f5267e..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-From 508b09046c0f21678652fb66fd1e9959d55591d2 Mon Sep 17 00:00:00 2001
-From: Alin Nastac <alin.nastac@gmail.com>
-Date: Wed, 21 Nov 2018 14:00:30 +0100
-Subject: [PATCH] netfilter: ipv6: Preserve link scope traffic original oif
-
-When ip6_route_me_harder is invoked, it resets outgoing interface of:
-  - link-local scoped packets sent by neighbor discovery
-  - multicast packets sent by MLD host
-  - multicast packets send by MLD proxy daemon that sets outgoing
-    interface through IPV6_PKTINFO ipi6_ifindex
-
-Link-local and multicast packets must keep their original oif after
-ip6_route_me_harder is called.
-
-Signed-off-by: Alin Nastac <alin.nastac@gmail.com>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
- net/ipv6/netfilter.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/net/ipv6/netfilter.c
-+++ b/net/ipv6/netfilter.c
-@@ -24,7 +24,8 @@ int ip6_route_me_harder(struct net *net,
-       unsigned int hh_len;
-       struct dst_entry *dst;
-       struct flowi6 fl6 = {
--              .flowi6_oif = sk ? sk->sk_bound_dev_if : 0,
-+              .flowi6_oif = sk && sk->sk_bound_dev_if ? sk->sk_bound_dev_if :
-+                      rt6_need_strict(&iph->daddr) ? skb_dst(skb)->dev->ifindex : 0,
-               .flowi6_mark = skb->mark,
-               .flowi6_uid = sock_net_uid(net, sk),
-               .daddr = iph->daddr,
index 458515a..faeb3e4 100644 (file)
@@ -61,11 +61,9 @@ CC: stable@vger.kernel.org # v4.0+
  arch/arm/mach-cns3xxx/pcie.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-diff --git a/arch/arm/mach-cns3xxx/pcie.c b/arch/arm/mach-cns3xxx/pcie.c
-index 318394ed5c7a..5e11ad3164e0 100644
 --- a/arch/arm/mach-cns3xxx/pcie.c
 +++ b/arch/arm/mach-cns3xxx/pcie.c
-@@ -83,7 +83,7 @@ static void __iomem *cns3xxx_pci_map_bus(struct pci_bus *bus,
+@@ -83,7 +83,7 @@ static void __iomem *cns3xxx_pci_map_bus
        } else /* remote PCI bus */
                base = cnspci->cfg1_regs + ((busno & 0xf) << 20);
  
@@ -74,6 +72,3 @@ index 318394ed5c7a..5e11ad3164e0 100644
  }
  
  static int cns3xxx_pci_read_config(struct pci_bus *bus, unsigned int devfn,
--- 
-2.17.1
-
index 0badce1..51c9e48 100644 (file)
@@ -48,7 +48,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  MODULE_AUTHOR("Pablo Neira Ayuso <pablo@netfilter.org>");
 --- a/net/netfilter/nft_flow_offload.c
 +++ b/net/netfilter/nft_flow_offload.c
-@@ -193,44 +193,14 @@ static struct nft_expr_type nft_flow_off
+@@ -193,47 +193,14 @@ static struct nft_expr_type nft_flow_off
        .owner          = THIS_MODULE,
  };
  
@@ -73,7 +73,9 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  {
 -      int err;
 -
--      register_netdevice_notifier(&flow_offload_netdev_notifier);
+-      err = register_netdevice_notifier(&flow_offload_netdev_notifier);
+-      if (err)
+-              goto err;
 -
 -      err = nft_register_expr(&nft_flow_offload_type);
 -      if (err < 0)
@@ -83,6 +85,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
 -
 -register_expr:
 -      unregister_netdevice_notifier(&flow_offload_netdev_notifier);
+-err:
 -      return err;
 +      return nft_register_expr(&nft_flow_offload_type);
  }
diff --git a/target/linux/generic/backport-4.19/424-v4.20-net-dsa-fix-88e6060-roaming.patch b/target/linux/generic/backport-4.19/424-v4.20-net-dsa-fix-88e6060-roaming.patch
deleted file mode 100644 (file)
index a242623..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From a74515604a7b171f2702bdcbd1e231225fb456d0 Mon Sep 17 00:00:00 2001
-From: Anderson Luiz Alves <alacn1@gmail.com>
-Date: Fri, 30 Nov 2018 21:58:36 -0200
-Subject: [PATCH] mv88e6060: disable hardware level MAC learning
-
-Disable hardware level MAC learning because it breaks station roaming.
-When enabled it drops all frames that arrive from a MAC address
-that is on a different port at learning table.
-
-Signed-off-by: Anderson Luiz Alves <alacn1@gmail.com>
-Reviewed-by: Andrew Lunn <andrew@lunn.ch>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/dsa/mv88e6060.c | 10 +++-------
- 1 file changed, 3 insertions(+), 7 deletions(-)
-
---- a/drivers/net/dsa/mv88e6060.c
-+++ b/drivers/net/dsa/mv88e6060.c
-@@ -116,8 +116,7 @@ static int mv88e6060_switch_reset(struct
-       /* Reset the switch. */
-       REG_WRITE(REG_GLOBAL, GLOBAL_ATU_CONTROL,
-                 GLOBAL_ATU_CONTROL_SWRESET |
--                GLOBAL_ATU_CONTROL_ATUSIZE_1024 |
--                GLOBAL_ATU_CONTROL_ATE_AGE_5MIN);
-+                GLOBAL_ATU_CONTROL_LEARNDIS);
-       /* Wait up to one second for reset to complete. */
-       timeout = jiffies + 1 * HZ;
-@@ -142,13 +141,10 @@ static int mv88e6060_setup_global(struct
-        */
-       REG_WRITE(REG_GLOBAL, GLOBAL_CONTROL, GLOBAL_CONTROL_MAX_FRAME_1536);
--      /* Enable automatic address learning, set the address
--       * database size to 1024 entries, and set the default aging
--       * time to 5 minutes.
-+      /* Disable automatic address learning.
-        */
-       REG_WRITE(REG_GLOBAL, GLOBAL_ATU_CONTROL,
--                GLOBAL_ATU_CONTROL_ATUSIZE_1024 |
--                GLOBAL_ATU_CONTROL_ATE_AGE_5MIN);
-+                GLOBAL_ATU_CONTROL_LEARNDIS);
-       return 0;
- }
index 345a73c..53e2c2a 100644 (file)
@@ -36,7 +36,7 @@ Signed-off-by: Richard Weinberger <richard@nod.at>
 
 --- a/fs/ubifs/replay.c
 +++ b/fs/ubifs/replay.c
-@@ -210,6 +210,38 @@ static int trun_remove_range(struct ubif
+@@ -242,6 +242,38 @@ static bool inode_still_linked(struct ub
  }
  
  /**
@@ -75,15 +75,15 @@ Signed-off-by: Richard Weinberger <richard@nod.at>
   * apply_replay_entry - apply a replay entry to the TNC.
   * @c: UBIFS file-system description object
   * @r: replay entry to apply
-@@ -236,6 +268,11 @@ static int apply_replay_entry(struct ubi
-                       {
-                               ino_t inum = key_inum(c, &r->key);
+@@ -270,6 +302,11 @@ static int apply_replay_entry(struct ubi
  
-+                              if (inode_still_linked(c, r)) {
-+                                      err = 0;
+                               if (inode_still_linked(c, r)) {
+                                       err = 0;
 +                                      break;
 +                              }
 +
-                               err = ubifs_tnc_remove_ino(c, inum);
-                               break;
-                       }
++                              if (inode_still_linked(c, r)) {
++                                      err = 0;
+                                       break;
+                               }
diff --git a/target/linux/generic/hack-4.19/100-mtd-rawnand-qcom-fix-memory-corruption-that-causes-p.patch b/target/linux/generic/hack-4.19/100-mtd-rawnand-qcom-fix-memory-corruption-that-causes-p.patch
deleted file mode 100644 (file)
index 9f48ba1..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-From c942c462411e4757aafba73bf13b5e5c7a4b62ca Mon Sep 17 00:00:00 2001
-From: Christian Lamparter <chunkeey@gmail.com>
-Date: Sun, 23 Dec 2018 00:38:55 +0100
-Subject: [PATCH] mtd: rawnand: qcom: fix memory corruption that causes panic
-
-This patch fixes a memory corruption that occured in the
-qcom-nandc driver since it was converted to nand_scan().
-
-On boot, an affected device will panic from a NPE at a weird place:
-| Unable to handle kernel NULL pointer dereference at virtual address 00000000
-| pgd = (ptrval)
-| [00000000] *pgd=00000000
-| Internal error: Oops: 80000005 [#1] SMP ARM
-| CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.19.9 #0
-| Hardware name: Generic DT based system
-| PC is at   (null)
-| LR is at nand_block_isbad+0x90/0xa4
-| pc : [<00000000>]    lr : [<c0592240>]    psr: 80000013
-| sp : cf839d40  ip : 00000000  fp : cfae9e20
-| r10: cf815810  r9 : 00000000  r8 : 00000000
-| r7 : 00000000  r6 : 00000000  r5 : 00000001  r4 : cf815810
-| r3 : 00000000  r2 : cfae9810  r1 : ffffffff  r0 : cf815810
-| Flags: Nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
-| Control: 10c5387d  Table: 8020406a  DAC: 00000051
-| Process swapper/0 (pid: 1, stack limit = 0x(ptrval))
-| [<c0592240>] (nand_block_isbad) from [<c0580a94>] (allocate_partition+0x7a0/0x7dc)
-| [<c0580a94>] (allocate_partition) from [<c05811e4>] (add_mtd_partitions+0x58/0x10c)
-| [<c05811e4>] (add_mtd_partitions) from [<c0581164>] (parse_mtd_partitions+0x310/0x338)
-| [<c0581164>] (parse_mtd_partitions) from [<c057def4>] (mtd_device_parse_register+0x60/0x15c)
-| [<c057def4>] (mtd_device_parse_register) from [<c059d274>] (qcom_nandc_probe+0x770/0x8f4)
-| [<c059d274>] (qcom_nandc_probe) from [<c0567f00>] (platform_drv_probe+0x34/0x70)
-
-The problem is that the nand_scan()'s qcom_nand_attach_chip callback
-is updating the nandc->max_cwperpage from 1 to 4. This causes the
-sg_init_table of clear_bam_transaction() in the driver's
-qcom_nandc_block_bad() to memset much more than what was initially
-allocated by alloc_bam_transaction().
-
-Hence, this patch restores the old behavior by performing the
-alloc_bam_transaction() after the chip was identified.
-
-Fixes: 6a3cec64f18c ("mtd: rawnand: qcom: convert driver to nand_scan()")
-Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
----
- drivers/mtd/nand/raw/qcom_nandc.c | 20 ++++++++++----------
- 1 file changed, 10 insertions(+), 10 deletions(-)
-
---- a/drivers/mtd/nand/raw/qcom_nandc.c
-+++ b/drivers/mtd/nand/raw/qcom_nandc.c
-@@ -2839,6 +2839,16 @@ static int qcom_nand_host_init_and_regis
-       if (ret)
-               return ret;
-+      if (nandc->props->is_bam) {
-+              free_bam_transaction(nandc);
-+              nandc->bam_txn = alloc_bam_transaction(nandc);
-+              if (!nandc->bam_txn) {
-+                      dev_err(nandc->dev,
-+                              "failed to allocate bam transaction\n");
-+                      return -ENOMEM;
-+              }
-+      }
-+
-       ret = mtd_device_register(mtd, NULL, 0);
-       if (ret)
-               nand_cleanup(chip);
-@@ -2853,16 +2863,6 @@ static int qcom_probe_nand_devices(struc
-       struct qcom_nand_host *host;
-       int ret;
--      if (nandc->props->is_bam) {
--              free_bam_transaction(nandc);
--              nandc->bam_txn = alloc_bam_transaction(nandc);
--              if (!nandc->bam_txn) {
--                      dev_err(nandc->dev,
--                              "failed to allocate bam transaction\n");
--                      return -ENOMEM;
--              }
--      }
--
-       for_each_available_child_of_node(dn, child) {
-               host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL);
-               if (!host) {
index c0eb5a7..e24cac3 100644 (file)
@@ -27,11 +27,9 @@ Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
  drivers/leds/led-triggers.c | 19 ++++++++++---------
  1 file changed, 10 insertions(+), 9 deletions(-)
 
-diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c
-index 17d73db1456e..08e7c724a9dc 100644
 --- a/drivers/leds/led-triggers.c
 +++ b/drivers/leds/led-triggers.c
-@@ -134,6 +134,12 @@ int led_trigger_set(struct led_classdev *led_cdev, struct led_trigger *trig)
+@@ -134,6 +134,12 @@ int led_trigger_set(struct led_classdev
                led_set_brightness(led_cdev, LED_OFF);
        }
        if (trig) {
@@ -44,7 +42,7 @@ index 17d73db1456e..08e7c724a9dc 100644
                write_lock_irqsave(&trig->leddev_list_lock, flags);
                list_add_tail(&led_cdev->trig_list, &trig->led_cdevs);
                write_unlock_irqrestore(&trig->leddev_list_lock, flags);
-@@ -146,12 +152,6 @@ int led_trigger_set(struct led_classdev *led_cdev, struct led_trigger *trig)
+@@ -146,12 +152,6 @@ int led_trigger_set(struct led_classdev
  
                if (ret)
                        goto err_activate;
@@ -57,7 +55,7 @@ index 17d73db1456e..08e7c724a9dc 100644
        }
  
        if (event) {
-@@ -165,17 +165,18 @@ int led_trigger_set(struct led_classdev *led_cdev, struct led_trigger *trig)
+@@ -165,17 +165,18 @@ int led_trigger_set(struct led_classdev
  
        return 0;
  
@@ -79,6 +77,3 @@ index 17d73db1456e..08e7c724a9dc 100644
        led_set_brightness(led_cdev, LED_OFF);
  
        return ret;
--- 
-2.20.1
-
index c30bfd5..9a62a81 100644 (file)
@@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1988,6 +1988,13 @@ config TRIM_UNUSED_KSYMS
+@@ -1993,6 +1993,13 @@ config TRIM_UNUSED_KSYMS
  
          If unsure, or if you need to build out-of-tree modules, say N.
  
index 7d7b6a8..92c3343 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -1224,7 +1224,6 @@ all: modules
+@@ -1227,7 +1227,6 @@ all: modules
  
  PHONY += modules
  modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
@@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        @$(kecho) '  Building modules, stage 2.';
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
  
-@@ -1253,7 +1252,6 @@ _modinst_:
+@@ -1256,7 +1255,6 @@ _modinst_:
                rm -f $(MODLIB)/build ; \
                ln -s $(CURDIR) $(MODLIB)/build ; \
        fi
index 860a7e0..c07ccf9 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 ---
 --- a/arch/mips/include/asm/r4kcache.h
 +++ b/arch/mips/include/asm/r4kcache.h
-@@ -682,16 +682,48 @@ static inline void prot##extra##blast_##
+@@ -683,16 +683,48 @@ static inline void prot##extra##blast_##
                                                    unsigned long end)  \
  {                                                                     \
        unsigned long lsize = cpu_##desc##_line_size();                 \
index 31efb35..85ffa1a 100644 (file)
@@ -15,7 +15,7 @@
  
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1509,6 +1509,9 @@ int genphy_update_link(struct phy_device
+@@ -1506,6 +1506,9 @@ int genphy_update_link(struct phy_device
  {
        int status;
  
index 77a5734..108aba1 100644 (file)
@@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
   */
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -2516,6 +2516,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -2527,6 +2527,10 @@ static inline int pskb_trim(struct sk_bu
        return (len < skb->len) ? __pskb_trim(skb, len) : 0;
  }
  
@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  /**
   *    pskb_trim_unique - remove end from a paged unique (not cloned) buffer
   *    @skb: buffer to alter
-@@ -2646,16 +2650,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -2657,16 +2661,6 @@ static inline struct sk_buff *dev_alloc_
  }
  
  
@@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        help
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -3233,10 +3233,20 @@ static int xmit_one(struct sk_buff *skb,
+@@ -3238,10 +3238,20 @@ static int xmit_one(struct sk_buff *skb,
        if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all))
                dev_queue_xmit_nit(skb, dev);
  
index 6f4d264..b4eccd3 100644 (file)
@@ -327,7 +327,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -3477,6 +3477,8 @@ static __net_initdata struct pernet_oper
+@@ -3482,6 +3482,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
  {
index 20e1c9f..9b686be 100644 (file)
@@ -54,7 +54,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +MODULE_LICENSE("GPL");
 --- a/kernel/sched/core.c
 +++ b/kernel/sched/core.c
-@@ -2128,6 +2128,7 @@ int wake_up_state(struct task_struct *p,
+@@ -2127,6 +2127,7 @@ int wake_up_state(struct task_struct *p,
  {
        return try_to_wake_up(p, state, 0);
  }
index 3bb3e77..4f303f9 100644 (file)
@@ -41,7 +41,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +#endif
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1041,6 +1041,10 @@ config RELAY
+@@ -1046,6 +1046,10 @@ config RELAY
  
          If unsure, say N.
  
index 9f13539..bb65da9 100644 (file)
@@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
 
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
-@@ -6370,7 +6370,7 @@ static void __ref alloc_node_mem_map(str
+@@ -6384,7 +6384,7 @@ static void __ref alloc_node_mem_map(str
                mem_map = NODE_DATA(0)->node_mem_map;
  #if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM)
                if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
index 074f0c4..9b3892d 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1140,6 +1140,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
+@@ -1145,6 +1145,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
          the unaligned access emulation.
          see arch/parisc/kernel/unaligned.c for reference
  
index 2f6ef14..a2ab6f3 100644 (file)
@@ -36,7 +36,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +
  config SPI_ATMEL_QUADSPI
        tristate "Atmel Quad SPI Controller"
-       depends on ARCH_AT91 || (ARM && COMPILE_TEST)
+       depends on ARCH_AT91 || (ARM && COMPILE_TEST && !ARCH_EBSA110)
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
 @@ -2647,10 +2647,12 @@ static int spi_nor_select_erase(struct s
diff --git a/target/linux/generic/pending-4.19/510-f2fs-fix-sanity_check_raw_super-on-big-endian-machines.patch b/target/linux/generic/pending-4.19/510-f2fs-fix-sanity_check_raw_super-on-big-endian-machines.patch
deleted file mode 100644 (file)
index 5a272b4..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
-Subject: [PATCH v2 1/1] f2fs: fix validation of the block count in
- sanity_check_raw_super
-Date: Sat, 22 Dec 2018 11:22:26 +0100
-Message-Id: <20181222102226.10050-2-martin.blumenstingl@googlemail.com>
-
-Treat "block_count" from struct f2fs_super_block as 64-bit little endian
-value in sanity_check_raw_super() because struct f2fs_super_block
-declares "block_count" as "__le64".
-
-This fixes a bug where the superblock validation fails on big endian
-devices with the following error:
-  F2FS-fs (sda1): Wrong segment_count / block_count (61439 > 0)
-  F2FS-fs (sda1): Can't find valid F2FS filesystem in 1th superblock
-  F2FS-fs (sda1): Wrong segment_count / block_count (61439 > 0)
-  F2FS-fs (sda1): Can't find valid F2FS filesystem in 2th superblock
-As result of this the partition cannot be mounted.
-
-With this patch applied the superblock validation works fine and the
-partition can be mounted again:
-  F2FS-fs (sda1): Mounted with checkpoint version = 7c84
-
-My little endian x86-64 hardware was able to mount the partition without
-this fix.
-To confirm that mounting f2fs filesystems works on big endian machines
-again I tested this on a 32-bit MIPS big endian (lantiq) device.
-
-Fixes: 0cfe75c5b01199 ("f2fs: enhance sanity_check_raw_super() to avoid potential overflows")
-Cc: stable@vger.kernel.org
-Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
-Reviewed-by: Chao Yu <yuchao0@huawei.com>
----
-
---- a/fs/f2fs/super.c
-+++ b/fs/f2fs/super.c
-@@ -2267,10 +2267,10 @@ static int sanity_check_raw_super(struct
-               return 1;
-       }
--      if (segment_count > (le32_to_cpu(raw_super->block_count) >> 9)) {
-+      if (segment_count > (le64_to_cpu(raw_super->block_count) >> 9)) {
-               f2fs_msg(sb, KERN_INFO,
--                      "Wrong segment_count / block_count (%u > %u)",
--                      segment_count, le32_to_cpu(raw_super->block_count));
-+                      "Wrong segment_count / block_count (%u > %llu)",
-+                      segment_count, le64_to_cpu(raw_super->block_count));
-               return 1;
-       }
index 5834ab1..273e7ff 100644 (file)
@@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
-@@ -3228,6 +3230,7 @@ static int packet_create(struct net *net
+@@ -3232,6 +3234,7 @@ static int packet_create(struct net *net
        mutex_init(&po->pg_vec_lock);
        po->rollover = NULL;
        po->prot_hook.func = packet_rcv;
@@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        if (sock->type == SOCK_PACKET)
                po->prot_hook.func = packet_rcv_spkt;
-@@ -3839,6 +3842,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3843,6 +3846,16 @@ packet_setsockopt(struct socket *sock, i
                po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
                return 0;
        }
@@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        default:
                return -ENOPROTOOPT;
        }
-@@ -3891,6 +3904,13 @@ static int packet_getsockopt(struct sock
+@@ -3895,6 +3908,13 @@ static int packet_getsockopt(struct sock
        case PACKET_VNET_HDR:
                val = po->has_vnet_hdr;
                break;
index 6126436..0ac545c 100644 (file)
@@ -506,7 +506,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
 +MODULE_ALIAS("nf-flow-table-hw");
 --- a/net/netfilter/nf_tables_api.c
 +++ b/net/netfilter/nf_tables_api.c
-@@ -5396,6 +5396,13 @@ static int nf_tables_flowtable_parse_hoo
+@@ -5394,6 +5394,13 @@ static int nf_tables_flowtable_parse_hoo
        if (err < 0)
                return err;
  
@@ -520,7 +520,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
        ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL);
        if (!ops)
                return -ENOMEM;
-@@ -5527,10 +5534,19 @@ static int nf_tables_newflowtable(struct
+@@ -5525,10 +5532,19 @@ static int nf_tables_newflowtable(struct
        }
  
        flowtable->data.type = type;
@@ -540,7 +540,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
        err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK],
                                             flowtable);
        if (err < 0)
-@@ -5656,7 +5672,8 @@ static int nf_tables_fill_flowtable_info
+@@ -5654,7 +5670,8 @@ static int nf_tables_fill_flowtable_info
            nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) ||
            nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) ||
            nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle),
index c19290f..20b0fd8 100644 (file)
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -2480,7 +2480,7 @@ static inline int pskb_network_may_pull(
+@@ -2491,7 +2491,7 @@ static inline int pskb_network_may_pull(
   * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
   */
  #ifndef NET_SKB_PAD
index 40f7962..e21f510 100644 (file)
@@ -292,7 +292,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        __skb_tunnel_rx(skb, tunnel->dev, tunnel->net);
  
        err = dscp_ecn_decapsulate(tunnel, ipv6h, skb);
-@@ -955,6 +1094,7 @@ static void init_tel_txopt(struct ipv6_t
+@@ -956,6 +1095,7 @@ static void init_tel_txopt(struct ipv6_t
        opt->ops.opt_nflen = 8;
  }
  
@@ -300,7 +300,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  /**
   * ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
   *   @t: the outgoing tunnel device
-@@ -1312,6 +1452,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1309,6 +1449,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
  {
        struct ip6_tnl *t = netdev_priv(dev);
        struct ipv6hdr *ipv6h;
@@ -308,7 +308,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        int encap_limit = -1;
        __u16 offset;
        struct flowi6 fl6;
-@@ -1379,6 +1520,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1373,6 +1514,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 <cyrus@openwrt.org>
        if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
                return -1;
  
-@@ -1507,6 +1660,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
+@@ -1504,6 +1657,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 <cyrus@openwrt.org>
        dst_cache_reset(&t->dst_cache);
        ip6_tnl_link_config(t);
        return 0;
-@@ -1545,6 +1706,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
+@@ -1542,6 +1703,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 <cyrus@openwrt.org>
        memcpy(p->name, u->name, sizeof(u->name));
  }
  
-@@ -1931,6 +2093,15 @@ static int ip6_tnl_validate(struct nlatt
+@@ -1928,6 +2090,15 @@ static int ip6_tnl_validate(struct nlatt
        return 0;
  }
  
@@ -366,7 +366,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  static void ip6_tnl_netlink_parms(struct nlattr *data[],
                                  struct __ip6_tnl_parm *parms)
  {
-@@ -1968,6 +2139,46 @@ static void ip6_tnl_netlink_parms(struct
+@@ -1965,6 +2136,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 <cyrus@openwrt.org>
  }
  
  static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
-@@ -2083,6 +2294,12 @@ static void ip6_tnl_dellink(struct net_d
+@@ -2080,6 +2291,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 <cyrus@openwrt.org>
        return
                /* IFLA_IPTUN_LINK */
                nla_total_size(4) +
-@@ -2112,6 +2329,24 @@ static size_t ip6_tnl_get_size(const str
+@@ -2109,6 +2326,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 <cyrus@openwrt.org>
                0;
  }
  
-@@ -2119,6 +2354,9 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2116,6 +2351,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 <cyrus@openwrt.org>
  
        if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
            nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
-@@ -2128,9 +2366,27 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2125,9 +2363,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 <cyrus@openwrt.org>
        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) ||
-@@ -2170,6 +2426,7 @@ static const struct nla_policy ip6_tnl_p
+@@ -2167,6 +2423,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 },
index a022c2c..485fb3e 100644 (file)
@@ -76,7 +76,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  static inline const char *rtn_type(char *buf, size_t len, unsigned int t)
 --- a/net/ipv4/ipmr.c
 +++ b/net/ipv4/ipmr.c
-@@ -177,6 +177,7 @@ static int ipmr_rule_action(struct fib_r
+@@ -179,6 +179,7 @@ static int ipmr_rule_action(struct fib_r
        case FR_ACT_UNREACHABLE:
                return -ENETUNREACH;
        case FR_ACT_PROHIBIT:
@@ -99,7 +99,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        tb_id = fib_rule_get_table(rule, arg);
 --- a/net/ipv6/ip6mr.c
 +++ b/net/ipv6/ip6mr.c
-@@ -159,6 +159,8 @@ static int ip6mr_rule_action(struct fib_
+@@ -162,6 +162,8 @@ static int ip6mr_rule_action(struct fib_
                return -ENETUNREACH;
        case FR_ACT_PROHIBIT:
                return -EACCES;
@@ -119,7 +119,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  static void           ip6_link_failure(struct sk_buff *skb);
  static void           ip6_rt_update_pmtu(struct dst_entry *dst, struct sock *sk,
                                           struct sk_buff *skb, u32 mtu);
-@@ -324,6 +326,18 @@ static const struct rt6_info ip6_prohibi
+@@ -326,6 +328,18 @@ static const struct rt6_info ip6_prohibi
        .rt6i_flags     = (RTF_REJECT | RTF_NONEXTHOP),
  };
  
@@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  static const struct rt6_info ip6_blk_hole_entry_template = {
        .dst = {
                .__refcnt       = ATOMIC_INIT(1),
-@@ -901,6 +915,7 @@ static const int fib6_prop[RTN_MAX + 1]
+@@ -903,6 +917,7 @@ static const int fib6_prop[RTN_MAX + 1]
        [RTN_BLACKHOLE] = -EINVAL,
        [RTN_UNREACHABLE] = -EHOSTUNREACH,
        [RTN_PROHIBIT]  = -EACCES,
@@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        [RTN_THROW]     = -EAGAIN,
        [RTN_NAT]       = -EINVAL,
        [RTN_XRESOLVE]  = -EINVAL,
-@@ -938,6 +953,10 @@ static void ip6_rt_init_dst_reject(struc
+@@ -940,6 +955,10 @@ static void ip6_rt_init_dst_reject(struc
                rt->dst.output = ip6_pkt_prohibit_out;
                rt->dst.input = ip6_pkt_prohibit;
                break;
@@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        case RTN_THROW:
        case RTN_UNREACHABLE:
        default:
-@@ -3745,6 +3764,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -3747,6 +3766,17 @@ static int ip6_pkt_prohibit_out(struct n
        return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
  }
  
@@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  /*
   *    Allocate a dst for local (unicast / anycast) address.
   */
-@@ -4192,7 +4222,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -4194,7 +4224,8 @@ static int rtm_to_fib6_config(struct sk_
        if (rtm->rtm_type == RTN_UNREACHABLE ||
            rtm->rtm_type == RTN_BLACKHOLE ||
            rtm->rtm_type == RTN_PROHIBIT ||
@@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                cfg->fc_flags |= RTF_REJECT;
  
        if (rtm->rtm_type == RTN_LOCAL)
-@@ -5031,6 +5062,8 @@ static int ip6_route_dev_notify(struct n
+@@ -5033,6 +5064,8 @@ static int ip6_route_dev_notify(struct n
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
                net->ipv6.ip6_prohibit_entry->dst.dev = dev;
                net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
                net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
  #endif
-@@ -5042,6 +5075,7 @@ static int ip6_route_dev_notify(struct n
+@@ -5044,6 +5077,7 @@ static int ip6_route_dev_notify(struct n
                in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
                in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
@@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
  #endif
        }
-@@ -5236,6 +5270,15 @@ static int __net_init ip6_route_net_init
+@@ -5238,6 +5272,15 @@ static int __net_init ip6_route_net_init
        net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
        dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
                         ip6_template_metrics, true);
@@ -218,7 +218,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  #endif
  
        net->ipv6.sysctl.flush_delay = 0;
-@@ -5254,6 +5297,8 @@ out:
+@@ -5256,6 +5299,8 @@ out:
        return ret;
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -227,7 +227,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  out_ip6_prohibit_entry:
        kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_entry:
-@@ -5274,6 +5319,7 @@ static void __net_exit ip6_route_net_exi
+@@ -5276,6 +5321,7 @@ static void __net_exit ip6_route_net_exi
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
        kfree(net->ipv6.ip6_prohibit_entry);
        kfree(net->ipv6.ip6_blk_hole_entry);
@@ -235,7 +235,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  #endif
        dst_entries_destroy(&net->ipv6.ip6_dst_ops);
  }
-@@ -5350,6 +5396,9 @@ void __init ip6_route_init_special_entri
+@@ -5352,6 +5398,9 @@ void __init ip6_route_init_special_entri
        init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
        init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
        init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
index 9ea7612..4bac6f7 100644 (file)
@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        __u16                   tc_index;       /* traffic control index */
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -5447,6 +5447,9 @@ static enum gro_result dev_gro_receive(s
+@@ -5452,6 +5452,9 @@ static enum gro_result dev_gro_receive(s
        int same_flow;
        int grow;
  
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (netif_elide_gro(skb->dev))
                goto normal;
  
-@@ -6941,6 +6944,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -6946,6 +6949,48 @@ static void __netdev_adjacent_dev_unlink
                                           &upper_dev->adj_list.lower);
  }
  
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static int __netdev_upper_dev_link(struct net_device *dev,
                                   struct net_device *upper_dev, bool master,
                                   void *upper_priv, void *upper_info,
-@@ -6988,6 +7033,7 @@ static int __netdev_upper_dev_link(struc
+@@ -6993,6 +7038,7 @@ static int __netdev_upper_dev_link(struc
        if (ret)
                return ret;
  
@@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
                                            &changeupper_info.info);
        ret = notifier_to_errno(ret);
-@@ -7074,6 +7120,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -7079,6 +7125,7 @@ void netdev_upper_dev_unlink(struct net_
  
        __netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
  
@@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
                                      &changeupper_info.info);
  }
-@@ -7697,6 +7744,7 @@ int dev_set_mac_address(struct net_devic
+@@ -7702,6 +7749,7 @@ int dev_set_mac_address(struct net_devic
        if (err)
                return err;
        dev->addr_assign_type = NET_ADDR_SET;
index bc45d4e..0cf187a 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1133,6 +1133,9 @@ void phy_detach(struct phy_device *phyde
+@@ -1130,6 +1130,9 @@ void phy_detach(struct phy_device *phyde
        struct module *ndev_owner = dev->dev.parent->driver->owner;
        struct mii_bus *bus;
  
index d89bfec..1685520 100644 (file)
@@ -65,7 +65,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  /**
   *    ata_build_rw_tf - Build ATA taskfile for given read/write request
   *    @tf: Target ATA taskfile
-@@ -5129,6 +5142,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -5130,6 +5143,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
                if (tag < 0)
                        return NULL;
        }
@@ -75,7 +75,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
        qc = __ata_qc_from_tag(ap, tag);
        qc->tag = qc->hw_tag = tag;
-@@ -6039,6 +6055,9 @@ struct ata_port *ata_port_alloc(struct a
+@@ -6040,6 +6056,9 @@ struct ata_port *ata_port_alloc(struct a
        ap->stats.unhandled_irq = 1;
        ap->stats.idle_irq = 1;
  #endif
@@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        ata_sff_port_init(ap);
  
        return ap;
-@@ -6074,6 +6093,12 @@ static void ata_host_release(struct kref
+@@ -6075,6 +6094,12 @@ static void ata_host_release(struct kref
  
                kfree(ap->pmp_link);
                kfree(ap->slave_link);
@@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
                kfree(ap);
                host->ports[i] = NULL;
        }
-@@ -6537,7 +6562,23 @@ int ata_host_register(struct ata_host *h
+@@ -6538,7 +6563,23 @@ int ata_host_register(struct ata_host *h
                host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
                host->ports[i]->local_port_no = i + 1;
        }
index 85e6b97..a2aeaf3 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
 
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1522,6 +1522,15 @@ config EMBEDDED
+@@ -1527,6 +1527,15 @@ config EMBEDDED
          an embedded system so certain expert options are available
          for configuration.
  
index eae2fd9..bcc6f65 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1091,6 +1091,7 @@ static const struct flash_info spi_nor_i
+@@ -1092,6 +1092,7 @@ static const struct flash_info spi_nor_i
        { "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, 0) },
        { "mx25l12855e", INFO(0xc22618, 0, 64 * 1024, 256, 0) },
        { "mx25l25635e", INFO(0xc22019, 0, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
@@ -8,7 +8,7 @@
        { "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) },
        { "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) },
        { "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
-@@ -1273,11 +1274,12 @@ static const struct flash_info spi_nor_i
+@@ -1274,11 +1275,12 @@ static const struct flash_info spi_nor_i
        { },
  };
  
@@ -23,7 +23,7 @@
  
        tmp = nor->read_reg(nor, SPINOR_OP_RDID, id, SPI_NOR_MAX_ID_LEN);
        if (tmp < 0) {
-@@ -1288,10 +1290,16 @@ static const struct flash_info *spi_nor_
+@@ -1289,10 +1291,16 @@ static const struct flash_info *spi_nor_
        for (tmp = 0; tmp < ARRAY_SIZE(spi_nor_ids) - 1; tmp++) {
                info = &spi_nor_ids[tmp];
                if (info->id_len) {
@@ -42,7 +42,7 @@
        dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %02x, %02x\n",
                id[0], id[1], id[2]);
        return ERR_PTR(-ENODEV);
-@@ -2825,7 +2833,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -2826,7 +2834,7 @@ int spi_nor_scan(struct spi_nor *nor, co
                info = spi_nor_match_id(name);
        /* Try to auto-detect if chip name wasn't specified or not found */
        if (!info)
@@ -51,7 +51,7 @@
        if (IS_ERR_OR_NULL(info))
                return -ENOENT;
  
-@@ -2836,7 +2844,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -2837,7 +2845,7 @@ int spi_nor_scan(struct spi_nor *nor, co
        if (name && info->id_len) {
                const struct flash_info *jinfo;
  
index ddcc7f3..6d76ebc 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/arch/powerpc/boot/Makefile
 +++ b/arch/powerpc/boot/Makefile
-@@ -159,6 +159,7 @@ src-plat-$(CONFIG_PPC_PSERIES) += pserie
+@@ -164,6 +164,7 @@ src-plat-$(CONFIG_PPC_PSERIES) += pserie
  src-plat-$(CONFIG_PPC_POWERNV) += pseries-head.S
  src-plat-$(CONFIG_PPC_IBM_CELL_BLADE) += pseries-head.S
  src-plat-$(CONFIG_MVME7100) += motload-head.S mvme7100.c
@@ -25,7 +25,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  
  src-wlib := $(sort $(src-wlib-y))
  src-plat := $(sort $(src-plat-y))
-@@ -338,7 +338,7 @@ image-$(CONFIG_TQM8555)                    += cuImage.tqm
+@@ -343,7 +344,7 @@ image-$(CONFIG_TQM8555)                    += cuImage.tqm
  image-$(CONFIG_TQM8560)                       += cuImage.tqm8560
  image-$(CONFIG_SBC8548)                       += cuImage.sbc8548
  image-$(CONFIG_KSI8560)                       += cuImage.ksi8560
@@ -49,10 +49,10 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
          ;;
 --- a/arch/powerpc/platforms/85xx/Kconfig
 +++ b/arch/powerpc/platforms/85xx/Kconfig
-@@ -170,6 +181,18 @@ config STX_GP3
-        select CPM2
-        select DEFAULT_UIMAGE
-
+@@ -170,6 +170,18 @@ config STX_GP3
+       select CPM2
+       select DEFAULT_UIMAGE
 +config TL_WDR4900_V1
 +    bool "TP-Link TL-WDR4900 v1"
 +    select DEFAULT_UIMAGE
@@ -66,8 +66,8 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 +      Freescale P1014 SoC.
 +
  config TQM8540
-        bool "TQ Components TQM8540"
-        help
+       bool "TQ Components TQM8540"
+       help
 --- a/arch/powerpc/platforms/85xx/Makefile
 +++ b/arch/powerpc/platforms/85xx/Makefile
 @@ -26,6 +26,7 @@ obj-$(CONFIG_CORENET_GENERIC)   += coren