kernel: bump 4.4 to 4.4.167
authorKoen Vandeputte <koen.vandeputte@ncentric.com>
Mon, 17 Dec 2018 13:30:40 +0000 (14:30 +0100)
committerKoen Vandeputte <koen.vandeputte@ncentric.com>
Tue, 18 Dec 2018 14:14:39 +0000 (15:14 +0100)
Refreshed all patches.

Removed upstreamed:
- 203-MIPS-ath79-fix-restart.patch
- 330-Revert-MIPS-BCM47XX-Enable-74K-Core-ExternalSync-for.patch
- 051-0001-ovl-rename-is_merge-to-is_lowest.patch
- 051-0002-ovl-override-creds-with-the-ones-from-the-superblock.patch
- 051-0005-ovl-proper-cleanup-of-workdir.patch

Altered patches:
- 201-extra_optimization.patch
- 304-mips_disable_fpu.patch

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

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
100 files changed:
include/kernel-version.mk
target/linux/apm821xx/patches-4.4/801-usb-xhci-add-firmware-loader-for-uPD720201-and-uPD72.patch
target/linux/apm821xx/patches-4.4/802-usb-xhci-force-msi-renesas-xhci.patch
target/linux/ar71xx/patches-4.4/203-MIPS-ath79-fix-restart.patch [deleted file]
target/linux/ar71xx/patches-4.4/910-unaligned_access_hacks.patch
target/linux/bcm53xx/patches-4.4/405-mtd-spi-nor-detect-JEDEC-incompatible-w25q128-using-.patch
target/linux/brcm2708/patches-4.4/0001-smsx95xx-fix-crimes-against-truesize.patch
target/linux/brcm2708/patches-4.4/0029-Add-dwc_otg-driver.patch
target/linux/brcm2708/patches-4.4/0058-Allow-mac-address-to-be-set-in-smsc95xx.patch
target/linux/brcm2708/patches-4.4/0061-config-Enable-CONFIG_MEMCG-but-leave-it-disabled-due.patch
target/linux/brcm2708/patches-4.4/0147-Updated-smsc95xx-driver-to-check-for-a-valid-MAC-add.patch
target/linux/brcm2708/patches-4.4/0158-smsx95xx-Add-option-to-disable-the-crimes-against-tr.patch
target/linux/brcm2708/patches-4.4/0228-add-smsc95xx-packetsize-module_param.patch
target/linux/brcm47xx/patches-4.4/159-cpu_fixes.patch
target/linux/brcm47xx/patches-4.4/330-Revert-MIPS-BCM47XX-Enable-74K-Core-ExternalSync-for.patch [deleted file]
target/linux/brcm47xx/patches-4.4/940-bcm47xx-yenta.patch
target/linux/brcm63xx/patches-4.4/000-4.5-03-spi-nor-convert-to-spi_nor_-get-set-_flash_node.patch
target/linux/generic/patches-4.4/030-1-smsc95xx-Use-skb_cow_head-to-deal-with-cloned-skbs.patch
target/linux/generic/patches-4.4/043-mtd-spi-nor-mx25l3205d-mx25l6405d-append-SECT_4K.patch
target/linux/generic/patches-4.4/046-ubifs-silence-error-output-if-MS_SILENT-is-set.patch
target/linux/generic/patches-4.4/048-mtd-spi-nor-backport-SPI_NOR_HAS_LOCK-flag.patch
target/linux/generic/patches-4.4/051-0001-ovl-rename-is_merge-to-is_lowest.patch [deleted file]
target/linux/generic/patches-4.4/051-0002-ovl-override-creds-with-the-ones-from-the-superblock.patch [deleted file]
target/linux/generic/patches-4.4/051-0005-ovl-proper-cleanup-of-workdir.patch [deleted file]
target/linux/generic/patches-4.4/052-02-ubifs-Implement-RENAME_WHITEOUT.patch
target/linux/generic/patches-4.4/052-03-ubifs-Implement-RENAME_EXCHANGE.patch
target/linux/generic/patches-4.4/052-04-ubifs-Use-move-variable-in-ubifs_rename.patch
target/linux/generic/patches-4.4/082-0001-USB-core-let-USB-device-know-device-node.patch
target/linux/generic/patches-4.4/082-0002-usb-core-usb_alloc_dev-fix-setting-of-portnum.patch
target/linux/generic/patches-4.4/085-0004-leds-core-add-OF-variants-of-LED-registering-functio.patch
target/linux/generic/patches-4.4/086-0001-thermal-of-thermal-Add-devm-version-of-thermal_zone_.patch
target/linux/generic/patches-4.4/090-MIPS-c-r4k-Use-IPI-calls-for-CM-indexed-cache-ops.patch
target/linux/generic/patches-4.4/093-MIPS-store-the-appended-dtb-address-in-a-variable.patch
target/linux/generic/patches-4.4/160-usb-gadget-udc-net2280-add-usb2380-support.patch
target/linux/generic/patches-4.4/201-extra_optimization.patch
target/linux/generic/patches-4.4/202-reduce_module_size.patch
target/linux/generic/patches-4.4/221-module_exports.patch
target/linux/generic/patches-4.4/304-mips_disable_fpu.patch
target/linux/generic/patches-4.4/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch
target/linux/generic/patches-4.4/465-m25p80-mx-disable-software-protection.patch
target/linux/generic/patches-4.4/475-mtd-spi-nor-add-macronix-mx25u25635f.patch
target/linux/generic/patches-4.4/477-mtd-add-spi-nor-add-mx25u3235f.patch
target/linux/generic/patches-4.4/530-jffs2_make_lzma_available.patch
target/linux/generic/patches-4.4/645-bridge_multicast_to_unicast.patch
target/linux/generic/patches-4.4/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
target/linux/generic/patches-4.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/patches-4.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
target/linux/generic/patches-4.4/721-phy_packets.patch
target/linux/generic/patches-4.4/810-pci_disable_common_quirks.patch
target/linux/generic/patches-4.4/902-debloat_proc.patch
target/linux/imx6/patches-4.4/203-net-igb-add-phy-read-write-functions-that-accept-phy.patch
target/linux/imx6/patches-4.4/204-net-igb-register-mii_bus-for-SerDes-w-external-phy.patch
target/linux/layerscape/patches-4.4/1074-mtd-nand-spi-nor-assign-MTD-of_node.patch
target/linux/layerscape/patches-4.4/1075-mtd-spi-nor-convert-to-spi_nor_-get-set-_flash_node.patch
target/linux/layerscape/patches-4.4/1078-mtd-spi-nor-drop-flash_node-field.patch
target/linux/layerscape/patches-4.4/1079-mtd-spi-nor-remove-unnecessary-leading-space-from-db.patch
target/linux/layerscape/patches-4.4/1081-mtd-spi-nor-provide-default-erase_sector-implementat.patch
target/linux/layerscape/patches-4.4/1083-mtd-spi-nor-Fix-error-message-with-unrecognized-JEDE.patch
target/linux/layerscape/patches-4.4/1085-mtd-spi-nor-Check-the-return-value-from-read_sr.patch
target/linux/layerscape/patches-4.4/1090-mtd-spi-nor-Add-SPI-NOR-layer-PM-support.patch
target/linux/layerscape/patches-4.4/1093-mtd-spi-nor-check-return-value-from-read-write.patch
target/linux/layerscape/patches-4.4/1094-mtd-spi-nor-stop-passing-around-retlen.patch
target/linux/layerscape/patches-4.4/1095-mtd-spi-nor-simplify-write-loop.patch
target/linux/layerscape/patches-4.4/1096-mtd-spi-nor-add-read-loop.patch
target/linux/layerscape/patches-4.4/1100-mtd-spi_nor-Disable-Micron-flash-HW-protection.patch
target/linux/layerscape/patches-4.4/1103-mtd-spi-nor-Support-R-W-for-S25FS-S-family-flash.patch
target/linux/layerscape/patches-4.4/1105-mtd-spi-nor-add-DDR-quad-read-support.patch
target/linux/layerscape/patches-4.4/1109-drivers-mtd-spi-nor-Enable-QSPI-Flash-in-Kernel.patch
target/linux/layerscape/patches-4.4/1110-mtd-spi-nor-fsl-quad-add-flash-S25FS-extra-support.patch
target/linux/layerscape/patches-4.4/1111-mtd-spi-nor-disable-4kb-sector-erase-for-s25fl128.patch
target/linux/layerscape/patches-4.4/8138-pci-layerscape-add-MSI-interrupt-support.patch
target/linux/layerscape/patches-4.4/9070-Revert-arm64-use-fixmap-region-for-permanent-FDT-map.patch
target/linux/mediatek/patches-4.4/0072-mtd-backport-v4.7-0day-patches-from-Boris.patch
target/linux/mvebu/patches-4.4/030-mvneta-consolidate-autoneg-enabling.patch
target/linux/mvebu/patches-4.4/031-mvneta-implement-ethtool-autonegotiation-control.patch
target/linux/mvebu/patches-4.4/032-net-mvneta-Make-the-default-queue-related-for-each-p.patch
target/linux/mvebu/patches-4.4/033-net-mvneta-Associate-RX-queues-with-each-CPU.patch
target/linux/mvebu/patches-4.4/034-net-mvneta-Add-naive-RSS-support.patch
target/linux/mvebu/patches-4.4/035-net-mvneta-Configure-XPS-support.patch
target/linux/mvebu/patches-4.4/036-net-mvneta-fix-trivial-cut-off-issue-in-mvneta_ethto.patch
target/linux/mvebu/patches-4.4/038-net-mvneta-Fix-the-CPU-choice-in-mvneta_percpu_elect.patch
target/linux/mvebu/patches-4.4/039-net-mvneta-Use-on_each_cpu-when-possible.patch
target/linux/mvebu/patches-4.4/040-net-mvneta-Modify-the-queue-related-fields-from-each.patch
target/linux/mvebu/patches-4.4/041-net-mvneta-The-mvneta_percpu_elect-function-should-b.patch
target/linux/mvebu/patches-4.4/042-net-mvneta-Fix-race-condition-during-stopping.patch
target/linux/mvebu/patches-4.4/045-net-mvneta-bm-add-support-for-hardware-buffer-manage.patch
target/linux/mvebu/patches-4.4/047-net-mvneta-Fix-spinlock-usage.patch
target/linux/mvebu/patches-4.4/050-net-mvneta-fix-changing-MTU-when-using-per-cpu-proce.patch
target/linux/mvebu/patches-4.4/134-net-mvneta-convert-to-phylink.patch
target/linux/mvebu/patches-4.4/137-net-mvneta-add-nway_reset-support.patch
target/linux/mvebu/patches-4.4/139-net-mvneta-add-flow-control-support-via-phylink.patch
target/linux/mvebu/patches-4.4/140-net-mvneta-enable-flow-control-for-PHY-connections.patch
target/linux/mvebu/patches-4.4/141-net-mvneta-enable-flow-control-for-fixed-connections.patch
target/linux/mvebu/patches-4.4/143-net-mvneta-add-EEE-support.patch
target/linux/mvebu/patches-4.4/145-net-mvneta-add-module-EEPROM-reading-support.patch
target/linux/mvebu/patches-4.4/400-mvneta-tx-queue-workaround.patch
target/linux/mxs/patches-4.4/110-crypto-mxsdcp-provide-importexport.patch
target/linux/oxnas/patches-4.4/0072-mtd-backport-v4.7-0day-patches-from-Boris.patch
target/linux/ramips/patches-4.4/0031-uvc-add-iPassion-iP2970-support.patch
target/linux/ramips/patches-4.4/0054-mtd-add-chunked-read-io-to-m25p80.patch

index e6df3393e8bd6ac0941408393aa5f12572e9d4fe..43d31ac0b4d175e46858b4d81463fda04e42c7d4 100644 (file)
@@ -3,10 +3,10 @@
 LINUX_RELEASE?=1
 
 LINUX_VERSION-3.18 = .43
-LINUX_VERSION-4.4 = .153
+LINUX_VERSION-4.4 = .167
 
 LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c
-LINUX_KERNEL_HASH-4.4.153 = 0f2355515c22ca705600043bedc75218c68dcb8ab528f57f67851fbcb8545402
+LINUX_KERNEL_HASH-4.4.167 = 33ca4c28a565404fc7b07f9d6b734c291035f7e7e46c280131494b04e3953edf
 
 ifdef KERNEL_PATCHVER
   LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
index 91c5c1ff102324dae48013ad8c8c036236c44b7b..71c0b2facc0289ed26b978802b1830c277455cde 100644 (file)
@@ -44,7 +44,7 @@ Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
  
  #include "xhci.h"
  #include "xhci-trace.h"
-@@ -227,6 +229,458 @@ static void xhci_pme_acpi_rtd3_enable(st
+@@ -229,6 +231,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)
  {
-@@ -266,6 +720,22 @@ static int xhci_pci_probe(struct pci_dev
+@@ -268,6 +722,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 */
-@@ -323,6 +793,16 @@ static void xhci_pci_remove(struct pci_d
+@@ -325,6 +795,16 @@ static void xhci_pci_remove(struct pci_d
  {
        struct xhci_hcd *xhci;
  
index 5c6c4e3ea26541b403af171eeaec171b629e209c..8616268f1b4655cc57d20585e6fb6fff0f6f7ac8 100644 (file)
@@ -13,7 +13,7 @@ produce a noisy warning.
 
 --- a/drivers/usb/host/xhci-pci.c
 +++ b/drivers/usb/host/xhci-pci.c
-@@ -191,7 +191,7 @@ static void xhci_pci_quirks(struct devic
+@@ -193,7 +193,7 @@ static void xhci_pci_quirks(struct devic
                xhci->quirks |= XHCI_TRUST_TX_LENGTH;
        if (pdev->vendor == PCI_VENDOR_ID_RENESAS &&
                        pdev->device == 0x0015)
diff --git a/target/linux/ar71xx/patches-4.4/203-MIPS-ath79-fix-restart.patch b/target/linux/ar71xx/patches-4.4/203-MIPS-ath79-fix-restart.patch
deleted file mode 100644 (file)
index 77773ea..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/arch/mips/ath79/setup.c
-+++ b/arch/mips/ath79/setup.c
-@@ -44,6 +44,7 @@ static char ath79_sys_type[ATH79_SYS_TYP
- static void ath79_restart(char *command)
- {
-+      local_irq_disable();
-       ath79_device_reset_set(AR71XX_RESET_FULL_CHIP);
-       for (;;)
-               if (cpu_wait)
---- a/arch/mips/include/asm/mach-ath79/ath79.h
-+++ b/arch/mips/include/asm/mach-ath79/ath79.h
-@@ -134,6 +134,7 @@ static inline u32 ath79_pll_rr(unsigned
- static inline void ath79_reset_wr(unsigned reg, u32 val)
- {
-       __raw_writel(val, ath79_reset_base + reg);
-+      (void) __raw_readl(ath79_reset_base + reg); /* flush */
- }
- static inline u32 ath79_reset_rr(unsigned reg)
index f766850aebcbd53e6b0e94e654068afe8f5a81c4..164000f5c0311bef20f2b550a17343126362f160 100644 (file)
        if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)
 --- a/net/ipv6/ip6_tunnel.c
 +++ b/net/ipv6/ip6_tunnel.c
-@@ -1310,7 +1310,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1319,7 +1319,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
  
        dsfield = ipv6_get_dsfield(ipv6h);
        if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS)
  #endif /* _LINUX_TYPES_H */
 --- a/net/ipv4/af_inet.c
 +++ b/net/ipv4/af_inet.c
-@@ -1321,8 +1321,8 @@ static struct sk_buff **inet_gro_receive
+@@ -1322,8 +1322,8 @@ static struct sk_buff **inet_gro_receive
        if (unlikely(ip_fast_csum((u8 *)iph, 5)))
                goto out_unlock;
  
                        goto next_ht;
 --- a/net/ipv6/ip6_offload.c
 +++ b/net/ipv6/ip6_offload.c
-@@ -225,7 +225,7 @@ static struct sk_buff **ipv6_gro_receive
+@@ -226,7 +226,7 @@ static struct sk_buff **ipv6_gro_receive
                        continue;
  
                iph2 = (struct ipv6hdr *)(p->data + off);
 -      *(__be32 *)iph = to;
 +      net_hdr_word(iph) = to;
        if (skb->ip_summed == CHECKSUM_COMPLETE)
-               skb->csum = csum_add(csum_sub(skb->csum, from), to);
-       return 1;
-@@ -134,7 +134,7 @@ static inline int IP6_ECN_set_ce(struct
+               skb->csum = csum_add(csum_sub(skb->csum, (__force __wsum)from),
+                                    (__force __wsum)to);
+@@ -135,7 +135,7 @@ static inline int IP6_ECN_set_ce(struct
  
  static inline void IP6_ECN_clear(struct ipv6hdr *iph)
  {
index 184d7a2d891a607bf9ba40cbedfaceeaa8310ffe..d483348d820cd8e3c8ed683ba8b2297b64031053 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
-@@ -875,6 +875,18 @@ static const struct flash_info *spi_nor_
+@@ -881,6 +881,18 @@ static const struct flash_info *spi_nor_
        }
        dev_err(nor->dev, "unrecognized JEDEC id bytes: %02x, %2x, %2x\n",
                id[0], id[1], id[2]);
index fcf4eb36f8d9dbeb22ba287d03b895747bed1ca5..2a2fc7ea7163666956c82f2247e5697536eea63a 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
 
 --- a/drivers/net/usb/smsc95xx.c
 +++ b/drivers/net/usb/smsc95xx.c
-@@ -1785,7 +1785,6 @@ static int smsc95xx_rx_fixup(struct usbn
+@@ -1788,7 +1788,6 @@ static int smsc95xx_rx_fixup(struct usbn
                                if (dev->net->features & NETIF_F_RXCSUM)
                                        smsc95xx_rx_csum_offload(skb);
                                skb_trim(skb, skb->len - 4); /* remove fcs */
@@ -23,7 +23,7 @@ Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
  
                                return 1;
                        }
-@@ -1803,7 +1802,6 @@ static int smsc95xx_rx_fixup(struct usbn
+@@ -1806,7 +1805,6 @@ static int smsc95xx_rx_fixup(struct usbn
                        if (dev->net->features & NETIF_F_RXCSUM)
                                smsc95xx_rx_csum_offload(ax_skb);
                        skb_trim(ax_skb, ax_skb->len - 4); /* remove fcs */
index 83c5453a0b2fc203445ce4d1fccb60e9c39b06fe..1651c555452d42082e0cb938b441cb7aa3d2866b 100644 (file)
@@ -659,7 +659,7 @@ dwc_otg: Remove duplicate gadget probe/unregister function
  }
 --- a/drivers/usb/core/hub.c
 +++ b/drivers/usb/core/hub.c
-@@ -5005,7 +5005,7 @@ static void port_event(struct usb_hub *h
+@@ -5007,7 +5007,7 @@ static void port_event(struct usb_hub *h
        if (portchange & USB_PORT_STAT_C_OVERCURRENT) {
                u16 status = 0, unused;
  
@@ -670,7 +670,7 @@ dwc_otg: Remove duplicate gadget probe/unregister function
                msleep(100);    /* Cool down */
 --- a/drivers/usb/core/message.c
 +++ b/drivers/usb/core/message.c
-@@ -1913,6 +1913,85 @@ free_interfaces:
+@@ -1924,6 +1924,85 @@ free_interfaces:
        if (cp->string == NULL &&
                        !(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS))
                cp->string = usb_cache_string(dev, cp->desc.iConfiguration);
index 0d40acb3a62362c33e41ed8b4ba6c03500dd6e42..85e55fbeae525e13925f47207046bb73a60bf9fe 100644 (file)
@@ -29,7 +29,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
  static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
                                            u32 *data, int in_pm)
  {
-@@ -763,8 +768,59 @@ static int smsc95xx_ioctl(struct net_dev
+@@ -766,8 +771,59 @@ static int smsc95xx_ioctl(struct net_dev
        return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL);
  }
  
index f3f685aa618bff7a16d253e61687959c7aee2c8e..ecc58f581408c3a072e7ab0f97d4d5ede4e89d6d 100644 (file)
@@ -10,7 +10,7 @@ Subject: [PATCH] config: Enable CONFIG_MEMCG, but leave it disabled (due to
 
 --- a/kernel/cgroup.c
 +++ b/kernel/cgroup.c
-@@ -5311,7 +5311,7 @@ int __init cgroup_init_early(void)
+@@ -5315,7 +5315,7 @@ int __init cgroup_init_early(void)
        return 0;
  }
  
@@ -19,7 +19,7 @@ Subject: [PATCH] config: Enable CONFIG_MEMCG, but leave it disabled (due to
  
  /**
   * cgroup_init - cgroup initialization
-@@ -5807,6 +5807,27 @@ static int __init cgroup_disable(char *s
+@@ -5811,6 +5811,27 @@ static int __init cgroup_disable(char *s
  }
  __setup("cgroup_disable=", cgroup_disable);
  
index 80dec72ff6e6ee86d8996a0f83fb481325516500..cb080c5bd2b3c00f66eab007bd0082a98ee6133c 100644 (file)
@@ -13,7 +13,7 @@ meaning they don't end up with the same MAC address as the built-in RPi adaptor.
 
 --- a/drivers/net/usb/smsc95xx.c
 +++ b/drivers/net/usb/smsc95xx.c
-@@ -817,10 +817,6 @@ static int smsc95xx_is_macaddr_param(str
+@@ -820,10 +820,6 @@ static int smsc95xx_is_macaddr_param(str
  
  static void smsc95xx_init_mac_address(struct usbnet *dev)
  {
@@ -24,7 +24,7 @@ meaning they don't end up with the same MAC address as the built-in RPi adaptor.
        /* try reading mac address from EEPROM */
        if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
                        dev->net->dev_addr) == 0) {
-@@ -831,7 +827,11 @@ static void smsc95xx_init_mac_address(st
+@@ -834,7 +830,11 @@ static void smsc95xx_init_mac_address(st
                }
        }
  
index 74a531dd157ae7cc30bb2e7aaf0c009ef4dd57da..059660830967189b05620a01c0a4c629b24b9297 100644 (file)
@@ -24,7 +24,7 @@ See issue 1248.
  static char *macaddr = ":";
  module_param(macaddr, charp, 0);
  MODULE_PARM_DESC(macaddr, "MAC address");
-@@ -1841,6 +1845,8 @@ static int smsc95xx_rx_fixup(struct usbn
+@@ -1844,6 +1848,8 @@ static int smsc95xx_rx_fixup(struct usbn
                                if (dev->net->features & NETIF_F_RXCSUM)
                                        smsc95xx_rx_csum_offload(skb);
                                skb_trim(skb, skb->len - 4); /* remove fcs */
@@ -33,7 +33,7 @@ See issue 1248.
  
                                return 1;
                        }
-@@ -1858,6 +1864,8 @@ static int smsc95xx_rx_fixup(struct usbn
+@@ -1861,6 +1867,8 @@ static int smsc95xx_rx_fixup(struct usbn
                        if (dev->net->features & NETIF_F_RXCSUM)
                                smsc95xx_rx_csum_offload(ax_skb);
                        skb_trim(ax_skb, ax_skb->len - 4); /* remove fcs */
index fd0dc41e4ae926d836d84c6078e9ab72860a1001..5f3dabc1487ac46c62c7d8ed00835896be8253bc 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Sam Nazarko <email@samnazarko.co.uk>
  static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
                                            u32 *data, int in_pm)
  {
-@@ -1006,13 +1010,13 @@ static int smsc95xx_reset(struct usbnet
+@@ -1009,13 +1013,13 @@ static int smsc95xx_reset(struct usbnet
  
        if (!turbo_mode) {
                burst_cap = 0;
index 32a65186db13c205bf993d9df8da9475151ddac7..e99c18272b041c1cf726e2efc19fa04103ec7a74 100644 (file)
        if (dc_lsize == 0)
                r4k_blast_dcache = (void *)cache_noop;
        else if (dc_lsize == 16)
-@@ -880,6 +892,8 @@ static void local_r4k_flush_cache_sigtra
+@@ -882,6 +894,8 @@ static void local_r4k_flush_cache_sigtra
        unsigned long addr = (unsigned long) arg;
  
        R4600_HIT_CACHEOP_WAR_IMPL;
        if (dc_lsize)
                protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
        if (!cpu_icache_snoops_remote_store && scache_size)
-@@ -1704,6 +1718,17 @@ static void coherency_setup(void)
+@@ -1706,6 +1720,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:
-@@ -1750,6 +1775,15 @@ void r4k_cache_init(void)
+@@ -1752,6 +1777,15 @@ void r4k_cache_init(void)
        extern void build_copy_page(void);
        struct cpuinfo_mips *c = &current_cpu_data;
  
        probe_pcache();
        setup_scache();
  
-@@ -1819,7 +1853,15 @@ void r4k_cache_init(void)
+@@ -1821,7 +1855,15 @@ void r4k_cache_init(void)
         */
        local_r4k___flush_cache_all(NULL);
  
diff --git a/target/linux/brcm47xx/patches-4.4/330-Revert-MIPS-BCM47XX-Enable-74K-Core-ExternalSync-for.patch b/target/linux/brcm47xx/patches-4.4/330-Revert-MIPS-BCM47XX-Enable-74K-Core-ExternalSync-for.patch
deleted file mode 100644 (file)
index e6cf500..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
-Date: Fri, 27 Jul 2018 12:39:01 +0200
-Subject: [PATCH] Revert "MIPS: BCM47XX: Enable 74K Core ExternalSync for PCIe
- erratum"
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This reverts commit 2a027b47dba6b77ab8c8e47b589ae9bbc5ac6175.
-
-Enabling ExternalSync caused a regression for BCM4718A1 (used e.g. in
-Netgear E3000 and ASUS RT-N16): it simply hangs during PCIe
-initialization. It's likely that BCM4717A1 is also affected.
-
-I didn't notice that earlier as the only BCM47XX devices with PCIe I
-own are:
-1) BCM4706 with 2 x 14e4:4331
-2) BCM4706 with 14e4:4360 and 14e4:4331
-it appears that BCM4706 is unaffected.
-
-While BCM5300X-ES300-RDS.pdf seems to document that erratum and its
-workarounds (according to quotes provided by Tokunori) it seems not even
-Broadcom follows them.
-
-According to the provided info Broadcom should define CONF7_ES in their
-SDK's mipsinc.h and implement workaround in the si_mips_init(). Checking
-both didn't reveal such code. It *could* mean Broadcom also had some
-problems with the given workaround.
-
-Reported-by: Michael Marley <michael@michaelmarley.com>
-Cc: Tokunori Ikegami <ikegami@allied-telesis.co.jp>
-Cc: Paul Burton <paul.burton@mips.com>
-Cc: Hauke Mehrtens <hauke@hauke-m.de>
-Cc: Chris Packham <chris.packham@alliedtelesis.co.nz>
-Cc: stable@vger.kernel.org
-Cc: James Hogan <jhogan@kernel.org>
-Signed-off-by: RafaÅ‚ MiÅ‚ecki <rafal@milecki.pl>
----
- arch/mips/bcm47xx/setup.c        | 6 ------
- arch/mips/include/asm/mipsregs.h | 3 ---
- 2 files changed, 9 deletions(-)
-
---- a/arch/mips/bcm47xx/setup.c
-+++ b/arch/mips/bcm47xx/setup.c
-@@ -249,12 +249,6 @@ static int __init bcm47xx_cpu_fixes(void
-                */
-               if (bcm47xx_bus.bcma.bus.chipinfo.id == BCMA_CHIP_ID_BCM4706)
-                       cpu_wait = NULL;
--
--              /*
--               * BCM47XX Erratum "R10: PCIe Transactions Periodically Fail"
--               * Enable ExternalSync for sync instruction to take effect
--               */
--              set_c0_config7(MIPS_CONF7_ES);
-               break;
- #endif
-       }
---- a/arch/mips/include/asm/mipsregs.h
-+++ b/arch/mips/include/asm/mipsregs.h
-@@ -605,8 +605,6 @@
- #define MIPS_CONF7_WII                (_ULCAST_(1) << 31)
- #define MIPS_CONF7_RPS                (_ULCAST_(1) << 2)
--/* ExternalSync */
--#define MIPS_CONF7_ES         (_ULCAST_(1) << 8)
- #define MIPS_CONF7_IAR                (_ULCAST_(1) << 10)
- #define MIPS_CONF7_AR         (_ULCAST_(1) << 16)
-@@ -2014,7 +2012,6 @@ __BUILD_SET_C0(status)
- __BUILD_SET_C0(cause)
- __BUILD_SET_C0(config)
- __BUILD_SET_C0(config5)
--__BUILD_SET_C0(config7)
- __BUILD_SET_C0(intcontrol)
- __BUILD_SET_C0(intctl)
- __BUILD_SET_C0(srsmap)
index 00a44d6317d88efeacfe4de0cd2d2c0a2ccd519e..bda27d16c4a5c48c17c906ac42a896a485f8d7d4 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/pcmcia/yenta_socket.c
 +++ b/drivers/pcmcia/yenta_socket.c
-@@ -919,6 +919,8 @@ static unsigned int yenta_probe_irq(stru
+@@ -920,6 +920,8 @@ static unsigned int yenta_probe_irq(stru
         * Probe for usable interrupts using the force
         * register to generate bogus card status events.
         */
@@ -9,7 +9,7 @@
        cb_writel(socket, CB_SOCKET_EVENT, -1);
        cb_writel(socket, CB_SOCKET_MASK, CB_CSTSMASK);
        reg = exca_readb(socket, I365_CSCINT);
-@@ -934,6 +936,7 @@ static unsigned int yenta_probe_irq(stru
+@@ -935,6 +937,7 @@ static unsigned int yenta_probe_irq(stru
        }
        cb_writel(socket, CB_SOCKET_MASK, 0);
        exca_writeb(socket, I365_CSCINT, reg);
@@ -17,7 +17,7 @@
  
        mask = probe_irq_mask(val) & 0xffff;
  
-@@ -1018,6 +1021,10 @@ static void yenta_get_socket_capabilitie
+@@ -1019,6 +1022,10 @@ static void yenta_get_socket_capabilitie
        else
                socket->socket.irq_mask = 0;
  
@@ -28,7 +28,7 @@
        dev_info(&socket->dev->dev, "ISA IRQ mask 0x%04x, PCI irq %d\n",
                 socket->socket.irq_mask, socket->cb_irq);
  }
-@@ -1250,6 +1257,15 @@ static int yenta_probe(struct pci_dev *d
+@@ -1251,6 +1258,15 @@ static int yenta_probe(struct pci_dev *d
        dev_info(&dev->dev, "Socket status: %08x\n",
                 cb_readl(socket, CB_SOCKET_STATE));
  
index 4056bafcffc64d1f9fa0b7c51a80f31a07d5e6f5..98484c4f600d6327be5696a5bef2df594cf5472b 100644 (file)
@@ -68,7 +68,7 @@ Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
        spifi->nor.write = nxp_spifi_write;
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1120,7 +1120,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1126,7 +1126,7 @@ int spi_nor_scan(struct spi_nor *nor, co
        const struct flash_info *info = NULL;
        struct device *dev = nor->dev;
        struct mtd_info *mtd = &nor->mtd;
index 36fb936e32a361b79de29d873b9526e70665c1c8..a75ddfc4d98cba5c608992765fb15421bc8bf6d7 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- a/drivers/net/usb/smsc95xx.c
 +++ b/drivers/net/usb/smsc95xx.c
-@@ -1835,13 +1835,13 @@ static struct sk_buff *smsc95xx_tx_fixup
+@@ -1838,13 +1838,13 @@ static struct sk_buff *smsc95xx_tx_fixup
        /* We do not advertise SG, so skbs should be already linearized */
        BUG_ON(skb_shinfo(skb)->nr_frags);
  
index b7fd046a238d52d14ffba53dedb43c3aa3a330e8..6388c9afeab20bf54cec887dcaf11159d2adcb2b 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
 
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -715,9 +715,9 @@ static const struct flash_info spi_nor_i
+@@ -721,9 +721,9 @@ static const struct flash_info spi_nor_i
        { "mx25l4005a",  INFO(0xc22013, 0, 64 * 1024,   8, SECT_4K) },
        { "mx25l8005",   INFO(0xc22014, 0, 64 * 1024,  16, 0) },
        { "mx25l1606e",  INFO(0xc22015, 0, 64 * 1024,  32, SECT_4K) },
index 9b1e9fe57d88a9a8f4617f9117a4fb9336190731..dc552e46d18965bf02670c30361f6bcf7439d997 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Richard Weinberger <richard@nod.at>
 
 --- a/fs/ubifs/super.c
 +++ b/fs/ubifs/super.c
-@@ -2113,8 +2113,9 @@ static struct dentry *ubifs_mount(struct
+@@ -2116,8 +2116,9 @@ static struct dentry *ubifs_mount(struct
         */
        ubi = open_ubi(name, UBI_READONLY);
        if (IS_ERR(ubi)) {
index 69a5432fa7c2f03403b0716fe65412a5b7336df6..b8a64b66d68ef493050e3de9b27515dae8b4839d 100644 (file)
@@ -25,7 +25,7 @@ Tested-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
  };
  
  #define JEDEC_MFR(info)       ((info)->id[0])
-@@ -1163,7 +1164,8 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1169,7 +1170,8 @@ int spi_nor_scan(struct spi_nor *nor, co
  
        if (JEDEC_MFR(info) == SNOR_MFR_ATMEL ||
            JEDEC_MFR(info) == SNOR_MFR_INTEL ||
@@ -35,7 +35,7 @@ Tested-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
                write_enable(nor);
                write_sr(nor, 0);
        }
-@@ -1179,7 +1181,8 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1185,7 +1187,8 @@ int spi_nor_scan(struct spi_nor *nor, co
        mtd->_read = spi_nor_read;
  
        /* NOR protection support for STmicro/Micron chips and similar */
diff --git a/target/linux/generic/patches-4.4/051-0001-ovl-rename-is_merge-to-is_lowest.patch b/target/linux/generic/patches-4.4/051-0001-ovl-rename-is_merge-to-is_lowest.patch
deleted file mode 100644 (file)
index 8ba4522..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-From 56656e960b555cb98bc414382566dcb59aae99a2 Mon Sep 17 00:00:00 2001
-From: Miklos Szeredi <mszeredi@redhat.com>
-Date: Mon, 21 Mar 2016 17:31:46 +0100
-Subject: [PATCH] ovl: rename is_merge to is_lowest
-
-The 'is_merge' is an historical naming from when only a single lower layer
-could exist.  With the introduction of multiple lower layers the meaning of
-this flag was changed to mean only the "lowest layer" (while all lower
-layers were being merged).
-
-So now 'is_merge' is inaccurate and hence renaming to 'is_lowest'
-
-Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
----
- fs/overlayfs/readdir.c | 16 ++++++++--------
- 1 file changed, 8 insertions(+), 8 deletions(-)
-
---- a/fs/overlayfs/readdir.c
-+++ b/fs/overlayfs/readdir.c
-@@ -36,7 +36,7 @@ struct ovl_dir_cache {
- struct ovl_readdir_data {
-       struct dir_context ctx;
--      bool is_merge;
-+      bool is_lowest;
-       struct rb_root root;
-       struct list_head *list;
-       struct list_head middle;
-@@ -140,9 +140,9 @@ static int ovl_cache_entry_add_rb(struct
-       return 0;
- }
--static int ovl_fill_lower(struct ovl_readdir_data *rdd,
--                        const char *name, int namelen,
--                        loff_t offset, u64 ino, unsigned int d_type)
-+static int ovl_fill_lowest(struct ovl_readdir_data *rdd,
-+                         const char *name, int namelen,
-+                         loff_t offset, u64 ino, unsigned int d_type)
- {
-       struct ovl_cache_entry *p;
-@@ -194,10 +194,10 @@ static int ovl_fill_merge(struct dir_con
-               container_of(ctx, struct ovl_readdir_data, ctx);
-       rdd->count++;
--      if (!rdd->is_merge)
-+      if (!rdd->is_lowest)
-               return ovl_cache_entry_add_rb(rdd, name, namelen, ino, d_type);
-       else
--              return ovl_fill_lower(rdd, name, namelen, offset, ino, d_type);
-+              return ovl_fill_lowest(rdd, name, namelen, offset, ino, d_type);
- }
- static int ovl_check_whiteouts(struct dentry *dir, struct ovl_readdir_data *rdd)
-@@ -290,7 +290,7 @@ static int ovl_dir_read_merged(struct de
-               .ctx.actor = ovl_fill_merge,
-               .list = list,
-               .root = RB_ROOT,
--              .is_merge = false,
-+              .is_lowest = false,
-       };
-       int idx, next;
-@@ -307,7 +307,7 @@ static int ovl_dir_read_merged(struct de
-                        * allows offsets to be reasonably constant
-                        */
-                       list_add(&rdd.middle, rdd.list);
--                      rdd.is_merge = true;
-+                      rdd.is_lowest = true;
-                       err = ovl_dir_read(&realpath, &rdd);
-                       list_del(&rdd.middle);
-               }
diff --git a/target/linux/generic/patches-4.4/051-0002-ovl-override-creds-with-the-ones-from-the-superblock.patch b/target/linux/generic/patches-4.4/051-0002-ovl-override-creds-with-the-ones-from-the-superblock.patch
deleted file mode 100644 (file)
index 2d40c7e..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-From 3fe6e52f062643676eb4518d68cee3bc1272091b Mon Sep 17 00:00:00 2001
-From: Antonio Murdaca <amurdaca@redhat.com>
-Date: Thu, 7 Apr 2016 15:48:25 +0200
-Subject: [PATCH] ovl: override creds with the ones from the superblock mounter
-
-In user namespace the whiteout creation fails with -EPERM because the
-current process isn't capable(CAP_SYS_ADMIN) when setting xattr.
-
-A simple reproducer:
-
-$ mkdir upper lower work merged lower/dir
-$ sudo mount -t overlay overlay -olowerdir=lower,upperdir=upper,workdir=work merged
-$ unshare -m -p -f -U -r bash
-
-Now as root in the user namespace:
-
-\# touch merged/dir/{1,2,3} # this will force a copy up of lower/dir
-\# rm -fR merged/*
-
-This ends up failing with -EPERM after the files in dir has been
-correctly deleted:
-
-unlinkat(4, "2", 0)                     = 0
-unlinkat(4, "1", 0)                     = 0
-unlinkat(4, "3", 0)                     = 0
-close(4)                                = 0
-unlinkat(AT_FDCWD, "merged/dir", AT_REMOVEDIR) = -1 EPERM (Operation not
-permitted)
-
-Interestingly, if you don't place files in merged/dir you can remove it,
-meaning if upper/dir does not exist, creating the char device file works
-properly in that same location.
-
-This patch uses ovl_sb_creator_cred() to get the cred struct from the
-superblock mounter and override the old cred with these new ones so that
-the whiteout creation is possible because overlay is wrong in assuming that
-the creds it will get with prepare_creds will be in the initial user
-namespace.  The old cap_raise game is removed in favor of just overriding
-the old cred struct.
-
-This patch also drops from ovl_copy_up_one() the following two lines:
-
-override_cred->fsuid = stat->uid;
-override_cred->fsgid = stat->gid;
-
-This is because the correct uid and gid are taken directly with the stat
-struct and correctly set with ovl_set_attr().
-
-Signed-off-by: Antonio Murdaca <runcom@redhat.com>
-Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
----
- fs/overlayfs/copy_up.c   | 26 +------------------
- fs/overlayfs/dir.c       | 67 ++++--------------------------------------------
- fs/overlayfs/overlayfs.h |  1 +
- fs/overlayfs/readdir.c   | 14 +++-------
- fs/overlayfs/super.c     | 18 ++++++++++++-
- 5 files changed, 27 insertions(+), 99 deletions(-)
-
---- a/fs/overlayfs/copy_up.c
-+++ b/fs/overlayfs/copy_up.c
-@@ -317,7 +317,6 @@ int ovl_copy_up_one(struct dentry *paren
-       struct dentry *upperdir;
-       struct dentry *upperdentry;
-       const struct cred *old_cred;
--      struct cred *override_cred;
-       char *link = NULL;
-       if (WARN_ON(!workdir))
-@@ -336,28 +335,7 @@ int ovl_copy_up_one(struct dentry *paren
-                       return PTR_ERR(link);
-       }
--      err = -ENOMEM;
--      override_cred = prepare_creds();
--      if (!override_cred)
--              goto out_free_link;
--
--      override_cred->fsuid = stat->uid;
--      override_cred->fsgid = stat->gid;
--      /*
--       * CAP_SYS_ADMIN for copying up extended attributes
--       * CAP_DAC_OVERRIDE for create
--       * CAP_FOWNER for chmod, timestamp update
--       * CAP_FSETID for chmod
--       * CAP_CHOWN for chown
--       * CAP_MKNOD for mknod
--       */
--      cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN);
--      cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE);
--      cap_raise(override_cred->cap_effective, CAP_FOWNER);
--      cap_raise(override_cred->cap_effective, CAP_FSETID);
--      cap_raise(override_cred->cap_effective, CAP_CHOWN);
--      cap_raise(override_cred->cap_effective, CAP_MKNOD);
--      old_cred = override_creds(override_cred);
-+      old_cred = ovl_override_creds(dentry->d_sb);
-       err = -EIO;
-       if (lock_rename(workdir, upperdir) != NULL) {
-@@ -380,9 +358,7 @@ int ovl_copy_up_one(struct dentry *paren
- out_unlock:
-       unlock_rename(workdir, upperdir);
-       revert_creds(old_cred);
--      put_cred(override_cred);
--out_free_link:
-       if (link)
-               free_page((unsigned long) link);
---- a/fs/overlayfs/dir.c
-+++ b/fs/overlayfs/dir.c
-@@ -408,28 +408,13 @@ static int ovl_create_or_link(struct den
-               err = ovl_create_upper(dentry, inode, &stat, link, hardlink);
-       } else {
-               const struct cred *old_cred;
--              struct cred *override_cred;
--              err = -ENOMEM;
--              override_cred = prepare_creds();
--              if (!override_cred)
--                      goto out_iput;
--
--              /*
--               * CAP_SYS_ADMIN for setting opaque xattr
--               * CAP_DAC_OVERRIDE for create in workdir, rename
--               * CAP_FOWNER for removing whiteout from sticky dir
--               */
--              cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN);
--              cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE);
--              cap_raise(override_cred->cap_effective, CAP_FOWNER);
--              old_cred = override_creds(override_cred);
-+              old_cred = ovl_override_creds(dentry->d_sb);
-               err = ovl_create_over_whiteout(dentry, inode, &stat, link,
-                                              hardlink);
-               revert_creds(old_cred);
--              put_cred(override_cred);
-       }
-       if (!err)
-@@ -659,32 +644,11 @@ static int ovl_do_remove(struct dentry *
-       if (OVL_TYPE_PURE_UPPER(type)) {
-               err = ovl_remove_upper(dentry, is_dir);
-       } else {
--              const struct cred *old_cred;
--              struct cred *override_cred;
--
--              err = -ENOMEM;
--              override_cred = prepare_creds();
--              if (!override_cred)
--                      goto out_drop_write;
--
--              /*
--               * CAP_SYS_ADMIN for setting xattr on whiteout, opaque dir
--               * CAP_DAC_OVERRIDE for create in workdir, rename
--               * CAP_FOWNER for removing whiteout from sticky dir
--               * CAP_FSETID for chmod of opaque dir
--               * CAP_CHOWN for chown of opaque dir
--               */
--              cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN);
--              cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE);
--              cap_raise(override_cred->cap_effective, CAP_FOWNER);
--              cap_raise(override_cred->cap_effective, CAP_FSETID);
--              cap_raise(override_cred->cap_effective, CAP_CHOWN);
--              old_cred = override_creds(override_cred);
-+              const struct cred *old_cred = ovl_override_creds(dentry->d_sb);
-               err = ovl_remove_and_whiteout(dentry, is_dir);
-               revert_creds(old_cred);
--              put_cred(override_cred);
-       }
- out_drop_write:
-       ovl_drop_write(dentry);
-@@ -723,7 +687,6 @@ static int ovl_rename2(struct inode *old
-       bool new_is_dir = false;
-       struct dentry *opaquedir = NULL;
-       const struct cred *old_cred = NULL;
--      struct cred *override_cred = NULL;
-       err = -EINVAL;
-       if (flags & ~(RENAME_EXCHANGE | RENAME_NOREPLACE))
-@@ -792,26 +755,8 @@ static int ovl_rename2(struct inode *old
-       old_opaque = !OVL_TYPE_PURE_UPPER(old_type);
-       new_opaque = !OVL_TYPE_PURE_UPPER(new_type);
--      if (old_opaque || new_opaque) {
--              err = -ENOMEM;
--              override_cred = prepare_creds();
--              if (!override_cred)
--                      goto out_drop_write;
--
--              /*
--               * CAP_SYS_ADMIN for setting xattr on whiteout, opaque dir
--               * CAP_DAC_OVERRIDE for create in workdir
--               * CAP_FOWNER for removing whiteout from sticky dir
--               * CAP_FSETID for chmod of opaque dir
--               * CAP_CHOWN for chown of opaque dir
--               */
--              cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN);
--              cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE);
--              cap_raise(override_cred->cap_effective, CAP_FOWNER);
--              cap_raise(override_cred->cap_effective, CAP_FSETID);
--              cap_raise(override_cred->cap_effective, CAP_CHOWN);
--              old_cred = override_creds(override_cred);
--      }
-+      if (old_opaque || new_opaque)
-+              old_cred = ovl_override_creds(old->d_sb);
-       if (overwrite && OVL_TYPE_MERGE_OR_LOWER(new_type) && new_is_dir) {
-               opaquedir = ovl_check_empty_and_clear(new);
-@@ -942,10 +887,8 @@ out_dput_old:
- out_unlock:
-       unlock_rename(new_upperdir, old_upperdir);
- out_revert_creds:
--      if (old_opaque || new_opaque) {
-+      if (old_opaque || new_opaque)
-               revert_creds(old_cred);
--              put_cred(override_cred);
--      }
- out_drop_write:
-       ovl_drop_write(old);
- out:
---- a/fs/overlayfs/overlayfs.h
-+++ b/fs/overlayfs/overlayfs.h
-@@ -150,6 +150,7 @@ void ovl_drop_write(struct dentry *dentr
- bool ovl_dentry_is_opaque(struct dentry *dentry);
- void ovl_dentry_set_opaque(struct dentry *dentry, bool opaque);
- bool ovl_is_whiteout(struct dentry *dentry);
-+const struct cred *ovl_override_creds(struct super_block *sb);
- void ovl_dentry_update(struct dentry *dentry, struct dentry *upperdentry);
- struct dentry *ovl_lookup(struct inode *dir, struct dentry *dentry,
-                         unsigned int flags);
---- a/fs/overlayfs/readdir.c
-+++ b/fs/overlayfs/readdir.c
-@@ -36,6 +36,7 @@ struct ovl_dir_cache {
- struct ovl_readdir_data {
-       struct dir_context ctx;
-+      struct dentry *dentry;
-       bool is_lowest;
-       struct rb_root root;
-       struct list_head *list;
-@@ -206,17 +207,8 @@ static int ovl_check_whiteouts(struct de
-       struct ovl_cache_entry *p;
-       struct dentry *dentry;
-       const struct cred *old_cred;
--      struct cred *override_cred;
--
--      override_cred = prepare_creds();
--      if (!override_cred)
--              return -ENOMEM;
--      /*
--       * CAP_DAC_OVERRIDE for lookup
--       */
--      cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE);
--      old_cred = override_creds(override_cred);
-+      old_cred = ovl_override_creds(rdd->dentry->d_sb);
-       err = mutex_lock_killable(&dir->d_inode->i_mutex);
-       if (!err) {
-@@ -232,7 +224,6 @@ static int ovl_check_whiteouts(struct de
-               mutex_unlock(&dir->d_inode->i_mutex);
-       }
-       revert_creds(old_cred);
--      put_cred(override_cred);
-       return err;
- }
-@@ -288,6 +279,7 @@ static int ovl_dir_read_merged(struct de
-       struct path realpath;
-       struct ovl_readdir_data rdd = {
-               .ctx.actor = ovl_fill_merge,
-+              .dentry = dentry,
-               .list = list,
-               .root = RB_ROOT,
-               .is_lowest = false,
---- a/fs/overlayfs/super.c
-+++ b/fs/overlayfs/super.c
-@@ -42,6 +42,8 @@ struct ovl_fs {
-       long lower_namelen;
-       /* pathnames of lower and upper dirs, for show_options */
-       struct ovl_config config;
-+      /* creds of process who forced instantiation of super block */
-+      const struct cred *creator_cred;
- };
- struct ovl_dir_cache;
-@@ -246,6 +248,13 @@ bool ovl_is_whiteout(struct dentry *dent
-       return inode && IS_WHITEOUT(inode);
- }
-+const struct cred *ovl_override_creds(struct super_block *sb)
-+{
-+      struct ovl_fs *ofs = sb->s_fs_info;
-+
-+      return override_creds(ofs->creator_cred);
-+}
-+
- static bool ovl_is_opaquedir(struct dentry *dentry)
- {
-       int res;
-@@ -587,6 +596,7 @@ static void ovl_put_super(struct super_b
-       kfree(ufs->config.lowerdir);
-       kfree(ufs->config.upperdir);
-       kfree(ufs->config.workdir);
-+      put_cred(ufs->creator_cred);
-       kfree(ufs);
- }
-@@ -1107,10 +1117,14 @@ static int ovl_fill_super(struct super_b
-       else
-               sb->s_d_op = &ovl_dentry_operations;
-+      ufs->creator_cred = prepare_creds();
-+      if (!ufs->creator_cred)
-+              goto out_put_lower_mnt;
-+
-       err = -ENOMEM;
-       oe = ovl_alloc_entry(numlower);
-       if (!oe)
--              goto out_put_lower_mnt;
-+              goto out_put_cred;
-       root_dentry = d_make_root(ovl_new_inode(sb, S_IFDIR, oe));
-       if (!root_dentry)
-@@ -1143,6 +1157,8 @@ static int ovl_fill_super(struct super_b
- out_free_oe:
-       kfree(oe);
-+out_put_cred:
-+      put_cred(ufs->creator_cred);
- out_put_lower_mnt:
-       for (i = 0; i < ufs->numlower; i++)
-               mntput(ufs->lower_mnt[i]);
diff --git a/target/linux/generic/patches-4.4/051-0005-ovl-proper-cleanup-of-workdir.patch b/target/linux/generic/patches-4.4/051-0005-ovl-proper-cleanup-of-workdir.patch
deleted file mode 100644 (file)
index 627e19e..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-From eea2fb4851e9dcbab6b991aaf47e2e024f1f55a0 Mon Sep 17 00:00:00 2001
-From: Miklos Szeredi <mszeredi@redhat.com>
-Date: Thu, 1 Sep 2016 11:11:59 +0200
-Subject: [PATCH] ovl: proper cleanup of workdir
-
-When mounting overlayfs it needs a clean "work" directory under the
-supplied workdir.
-
-Previously the mount code removed this directory if it already existed and
-created a new one.  If the removal failed (e.g. directory was not empty)
-then it fell back to a read-only mount not using the workdir.
-
-While this has never been reported, it is possible to get a non-empty
-"work" dir from a previous mount of overlayfs in case of crash in the
-middle of an operation using the work directory.
-
-In this case the left over state should be discarded and the overlay
-filesystem will be consistent, guaranteed by the atomicity of operations on
-moving to/from the workdir to the upper layer.
-
-This patch implements cleaning out any files left in workdir.  It is
-implemented using real recursion for simplicity, but the depth is limited
-to 2, because the worst case is that of a directory containing whiteouts
-under "work".
-
-Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
-Cc: <stable@vger.kernel.org>
----
- fs/overlayfs/overlayfs.h |  2 ++
- fs/overlayfs/readdir.c   | 63 +++++++++++++++++++++++++++++++++++++++++++++++-
- fs/overlayfs/super.c     |  2 +-
- 3 files changed, 65 insertions(+), 2 deletions(-)
-
---- a/fs/overlayfs/overlayfs.h
-+++ b/fs/overlayfs/overlayfs.h
-@@ -165,6 +165,8 @@ int ovl_check_empty_dir(struct dentry *d
- void ovl_cleanup_whiteouts(struct dentry *upper, struct list_head *list);
- void ovl_cache_free(struct list_head *list);
- int ovl_check_d_type_supported(struct path *realpath);
-+void ovl_workdir_cleanup(struct inode *dir, struct vfsmount *mnt,
-+                       struct dentry *dentry, int level);
- /* inode.c */
- int ovl_setattr(struct dentry *dentry, struct iattr *attr);
---- a/fs/overlayfs/readdir.c
-+++ b/fs/overlayfs/readdir.c
-@@ -248,7 +248,7 @@ static inline int ovl_dir_read(struct pa
-                       err = rdd->err;
-       } while (!err && rdd->count);
--      if (!err && rdd->first_maybe_whiteout)
-+      if (!err && rdd->first_maybe_whiteout && rdd->dentry)
-               err = ovl_check_whiteouts(realpath->dentry, rdd);
-       fput(realfile);
-@@ -610,3 +610,64 @@ int ovl_check_d_type_supported(struct pa
-       return rdd.d_type_supported;
- }
-+
-+static void ovl_workdir_cleanup_recurse(struct path *path, int level)
-+{
-+      int err;
-+      struct inode *dir = path->dentry->d_inode;
-+      LIST_HEAD(list);
-+      struct ovl_cache_entry *p;
-+      struct ovl_readdir_data rdd = {
-+              .ctx.actor = ovl_fill_merge,
-+              .dentry = NULL,
-+              .list = &list,
-+              .root = RB_ROOT,
-+              .is_lowest = false,
-+      };
-+
-+      err = ovl_dir_read(path, &rdd);
-+      if (err)
-+              goto out;
-+
-+      mutex_lock_nested(&dir->i_mutex, I_MUTEX_PARENT);
-+      list_for_each_entry(p, &list, l_node) {
-+              struct dentry *dentry;
-+
-+              if (p->name[0] == '.') {
-+                      if (p->len == 1)
-+                              continue;
-+                      if (p->len == 2 && p->name[1] == '.')
-+                              continue;
-+              }
-+              dentry = lookup_one_len(p->name, path->dentry, p->len);
-+              if (IS_ERR(dentry))
-+                      continue;
-+              if (dentry->d_inode)
-+                      ovl_workdir_cleanup(dir, path->mnt, dentry, level);
-+              dput(dentry);
-+      }
-+      mutex_unlock(&dir->i_mutex);
-+out:
-+      ovl_cache_free(&list);
-+}
-+
-+void ovl_workdir_cleanup(struct inode *dir, struct vfsmount *mnt,
-+                       struct dentry *dentry, int level)
-+{
-+      int err;
-+
-+      if (!d_is_dir(dentry) || level > 1) {
-+              ovl_cleanup(dir, dentry);
-+              return;
-+      }
-+
-+      err = ovl_do_rmdir(dir, dentry);
-+      if (err) {
-+              struct path path = { .mnt = mnt, .dentry = dentry };
-+
-+              mutex_unlock(&dir->i_mutex);
-+              ovl_workdir_cleanup_recurse(&path, level + 1);
-+              mutex_lock_nested(&dir->i_mutex, I_MUTEX_PARENT);
-+              ovl_cleanup(dir, dentry);
-+      }
-+}
---- a/fs/overlayfs/super.c
-+++ b/fs/overlayfs/super.c
-@@ -784,7 +784,7 @@ retry:
-                               goto out_dput;
-                       retried = true;
--                      ovl_cleanup(dir, work);
-+                      ovl_workdir_cleanup(dir, mnt, work, 0);
-                       dput(work);
-                       goto retry;
-               }
index c2ec904939872a55d875bcfc41c1252d8991f902..6d6ad28e962d6a8dd58861651dc3eaa93562a505 100644 (file)
@@ -244,7 +244,7 @@ Signed-off-by: Richard Weinberger <richard@nod.at>
        .setxattr    = ubifs_setxattr,
 --- a/fs/ubifs/journal.c
 +++ b/fs/ubifs/journal.c
-@@ -917,14 +917,15 @@ int ubifs_jnl_delete_inode(struct ubifs_
+@@ -922,14 +922,15 @@ int ubifs_jnl_delete_inode(struct ubifs_
   * @sync: non-zero if the write-buffer has to be synchronized
   *
   * This function implements the re-name operation which may involve writing up
@@ -262,7 +262,7 @@ Signed-off-by: Richard Weinberger <richard@nod.at>
  {
        void *p;
        union ubifs_key key;
-@@ -980,13 +981,19 @@ int ubifs_jnl_rename(struct ubifs_info *
+@@ -985,13 +986,19 @@ int ubifs_jnl_rename(struct ubifs_info *
        zero_dent_node_unused(dent);
        ubifs_prep_grp_node(c, dent, dlen1, 0);
  
@@ -285,7 +285,7 @@ Signed-off-by: Richard Weinberger <richard@nod.at>
        dent2->nlen = cpu_to_le16(old_dentry->d_name.len);
        memcpy(dent2->name, old_dentry->d_name.name, old_dentry->d_name.len);
        dent2->name[old_dentry->d_name.len] = '\0';
-@@ -1035,16 +1042,26 @@ int ubifs_jnl_rename(struct ubifs_info *
+@@ -1040,16 +1047,26 @@ int ubifs_jnl_rename(struct ubifs_info *
        if (err)
                goto out_ro;
  
index 1830cd0eebecbe85a3c9af2a3e7ddad8cf0bc92b..97e0f66f249e037b19dae278e0c967febe00784b 100644 (file)
@@ -104,7 +104,7 @@ Signed-off-by: Richard Weinberger <richard@nod.at>
        .setxattr    = ubifs_setxattr,
 --- a/fs/ubifs/journal.c
 +++ b/fs/ubifs/journal.c
-@@ -908,6 +908,147 @@ int ubifs_jnl_delete_inode(struct ubifs_
+@@ -913,6 +913,147 @@ int ubifs_jnl_delete_inode(struct ubifs_
  }
  
  /**
index 81129359d38ad41e7e34ecd93edaa9707b57a4de..389af40b27ed7c670c6d3c07e13aa9748f5f8366 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Richard Weinberger <richard@nod.at>
 
 --- a/fs/ubifs/journal.c
 +++ b/fs/ubifs/journal.c
-@@ -1100,7 +1100,7 @@ int ubifs_jnl_rename(struct ubifs_info *
+@@ -1105,7 +1105,7 @@ int ubifs_jnl_rename(struct ubifs_info *
        aligned_dlen1 = ALIGN(dlen1, 8);
        aligned_dlen2 = ALIGN(dlen2, 8);
        len = aligned_dlen1 + aligned_dlen2 + ALIGN(ilen, 8) + ALIGN(plen, 8);
@@ -19,7 +19,7 @@ Signed-off-by: Richard Weinberger <richard@nod.at>
                len += plen;
        dent = kmalloc(len, GFP_NOFS);
        if (!dent)
-@@ -1216,7 +1216,7 @@ int ubifs_jnl_rename(struct ubifs_info *
+@@ -1221,7 +1221,7 @@ int ubifs_jnl_rename(struct ubifs_info *
        if (err)
                goto out_ro;
  
index 901cdf7e83f65ac30925f93aa3039abbf61301c6..1c8787907f3b06ca9f8302057497251c57f42ec4 100644 (file)
@@ -131,7 +131,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  
  #include <asm/io.h>
  #include <linux/scatterlist.h>
-@@ -469,6 +470,7 @@ struct usb_device *usb_alloc_dev(struct
+@@ -471,6 +472,7 @@ struct usb_device *usb_alloc_dev(struct
                dev->route = 0;
  
                dev->dev.parent = bus->controller;
@@ -139,7 +139,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
                dev_set_name(&dev->dev, "usb%d", bus->busnum);
                root_hub = 1;
        } else {
-@@ -493,6 +495,14 @@ struct usb_device *usb_alloc_dev(struct
+@@ -495,6 +497,14 @@ struct usb_device *usb_alloc_dev(struct
                dev->dev.parent = &parent->dev;
                dev_set_name(&dev->dev, "%d-%s", bus->busnum, dev->devpath);
  
index 15cf4cae56f66ca272fddcf618cc96ced098fe5b..bbb64e65bea10ccbd7bb5999d6c0b9ef9c357e45 100644 (file)
@@ -84,7 +84,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 --- a/drivers/usb/core/usb.c
 +++ b/drivers/usb/core/usb.c
-@@ -423,6 +423,7 @@ struct usb_device *usb_alloc_dev(struct
+@@ -425,6 +425,7 @@ struct usb_device *usb_alloc_dev(struct
        struct usb_device *dev;
        struct usb_hcd *usb_hcd = bus_to_hcd(bus);
        unsigned root_hub = 0;
@@ -92,7 +92,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  
        dev = kzalloc(sizeof(*dev), GFP_KERNEL);
        if (!dev)
-@@ -497,11 +498,11 @@ struct usb_device *usb_alloc_dev(struct
+@@ -499,11 +500,11 @@ struct usb_device *usb_alloc_dev(struct
  
                if (!parent->parent) {
                        /* device under root hub's port */
index e02984041a44c4333cfa0dba7a14afd2f4c0546a..18da7f951adc5e2fc0270af3313011e2a91bdd77 100644 (file)
@@ -58,7 +58,7 @@ Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
  
  /**
   * led_classdev_unregister - unregisters a object of led_properties class.
-@@ -269,12 +273,14 @@ static void devm_led_classdev_release(st
+@@ -270,12 +274,14 @@ static void devm_led_classdev_release(st
  }
  
  /**
@@ -77,7 +77,7 @@ Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
  {
        struct led_classdev **dr;
        int rc;
-@@ -283,7 +289,7 @@ int devm_led_classdev_register(struct de
+@@ -284,7 +290,7 @@ int devm_led_classdev_register(struct de
        if (!dr)
                return -ENOMEM;
  
@@ -86,7 +86,7 @@ Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
        if (rc) {
                devres_free(dr);
                return rc;
-@@ -294,7 +300,7 @@ int devm_led_classdev_register(struct de
+@@ -295,7 +301,7 @@ int devm_led_classdev_register(struct de
  
        return 0;
  }
index b551bac69d6f6196661a0f6e55a658a3532cb76f..4eb57113736107cbc33c6496b758414f10726b38 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
 
 --- a/drivers/thermal/of-thermal.c
 +++ b/drivers/thermal/of-thermal.c
-@@ -559,6 +559,87 @@ void thermal_zone_of_sensor_unregister(s
+@@ -562,6 +562,87 @@ void thermal_zone_of_sensor_unregister(s
  }
  EXPORT_SYMBOL_GPL(thermal_zone_of_sensor_unregister);
  
index 0c1c0a4509ec9f76108fc0ea086d7f3c554c4d05..e45e5b884ffbbb9af6b4b58e07162593fb4100ea 100644 (file)
@@ -256,7 +256,7 @@ Cc: linux-mips@linux-mips.org
        instruction_hazard();
  }
  
-@@ -823,7 +901,12 @@ static void local_r4k_flush_cache_sigtra
+@@ -825,7 +903,12 @@ static void local_r4k_flush_cache_sigtra
  
  static void r4k_flush_cache_sigtramp(unsigned long addr)
  {
@@ -270,7 +270,7 @@ Cc: linux-mips@linux-mips.org
  }
  
  static void r4k_flush_icache_all(void)
-@@ -837,6 +920,15 @@ struct flush_kernel_vmap_range_args {
+@@ -839,6 +922,15 @@ struct flush_kernel_vmap_range_args {
        int             size;
  };
  
@@ -286,7 +286,7 @@ Cc: linux-mips@linux-mips.org
  static inline void local_r4k_flush_kernel_vmap_range(void *args)
  {
        struct flush_kernel_vmap_range_args *vmra = args;
-@@ -847,12 +939,8 @@ static inline void local_r4k_flush_kerne
+@@ -849,12 +941,8 @@ static inline void local_r4k_flush_kerne
         * Aliases only affect the primary caches so don't bother with
         * S-caches or T-caches.
         */
@@ -301,7 +301,7 @@ Cc: linux-mips@linux-mips.org
  }
  
  static void r4k_flush_kernel_vmap_range(unsigned long vaddr, int size)
-@@ -862,7 +950,12 @@ static void r4k_flush_kernel_vmap_range(
+@@ -864,7 +952,12 @@ static void r4k_flush_kernel_vmap_range(
        args.vaddr = (unsigned long) vaddr;
        args.size = size;
  
index d868d210aae9446b7694c96bc05924596483f583..7b011d444c86dfa481d1a82d2e50224145ce2603 100644 (file)
@@ -36,7 +36,7 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
 
 --- a/arch/mips/ath79/setup.c
 +++ b/arch/mips/ath79/setup.c
-@@ -207,6 +207,8 @@ void __init plat_mem_setup(void)
+@@ -208,6 +208,8 @@ void __init plat_mem_setup(void)
        fdt_start = fw_getenvl("fdt_start");
        if (fdt_start)
                __dt_setup_arch((void *)KSEG0ADDR(fdt_start));
index 94f78102b7b78f9cb2d6f61e4b807da6d2f1e3db..0ad684fceacd076877f23e991e3ebc073a259e18 100644 (file)
@@ -112,7 +112,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
                                !list_empty(&ep->queue) && ep->td_dma)
                                        restart_dma(ep);
                        ep->wedged = 0;
-@@ -2394,7 +2394,7 @@ static int net2280_start(struct usb_gadg
+@@ -2397,7 +2397,7 @@ static int net2280_start(struct usb_gadg
         */
        net2280_led_active(dev, 1);
  
@@ -121,7 +121,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
                defect7374_enable_data_eps_zero(dev);
  
        ep0_start(dev);
-@@ -3060,7 +3060,7 @@ static void handle_stat0_irqs(struct net
+@@ -3066,7 +3066,7 @@ static void handle_stat0_irqs(struct net
                }
                ep->stopped = 0;
                dev->protocol_stall = 0;
@@ -130,7 +130,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
                        if (ep->dev->quirks & PLX_2280)
                                tmp = BIT(FIFO_OVERFLOW) |
                                    BIT(FIFO_UNDERFLOW);
-@@ -3087,7 +3087,7 @@ static void handle_stat0_irqs(struct net
+@@ -3093,7 +3093,7 @@ static void handle_stat0_irqs(struct net
                cpu_to_le32s(&u.raw[0]);
                cpu_to_le32s(&u.raw[1]);
  
@@ -139,7 +139,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
                        defect7374_workaround(dev, u.r);
  
                tmp = 0;
-@@ -3170,7 +3170,7 @@ static void handle_stat0_irqs(struct net
+@@ -3176,7 +3176,7 @@ static void handle_stat0_irqs(struct net
                        } else {
                                ep_vdbg(dev, "%s clear halt\n", e->ep.name);
                                clear_halt(e);
@@ -148,7 +148,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
                                        !list_empty(&e->queue) && e->td_dma)
                                                restart_dma(e);
                        }
-@@ -3192,7 +3192,7 @@ static void handle_stat0_irqs(struct net
+@@ -3198,7 +3198,7 @@ static void handle_stat0_irqs(struct net
                        if (e->ep.name == ep0name)
                                goto do_stall;
                        set_halt(e);
@@ -157,7 +157,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
                                abort_dma(e);
                        allow_status(ep);
                        ep_vdbg(dev, "%s set halt\n", ep->ep.name);
-@@ -3231,7 +3231,7 @@ do_stall:
+@@ -3237,7 +3237,7 @@ do_stall:
  #undef        w_length
  
  next_endpoints:
@@ -166,7 +166,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
                u32 mask = (BIT(ENDPOINT_0_INTERRUPT) |
                        USB3380_IRQSTAT0_EP_INTR_MASK_IN |
                        USB3380_IRQSTAT0_EP_INTR_MASK_OUT);
-@@ -3392,7 +3392,7 @@ static void handle_stat1_irqs(struct net
+@@ -3404,7 +3404,7 @@ __acquires(dev->lock)
                writel(tmp, &dma->dmastat);
  
                /* dma sync*/
@@ -175,7 +175,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
                        u32 r_dmacount = readl(&dma->dmacount);
                        if (!ep->is_in &&  (r_dmacount & 0x00FFFFFF) &&
                            (tmp & BIT(DMA_TRANSACTION_DONE_INTERRUPT)))
-@@ -3461,7 +3461,7 @@ static irqreturn_t net2280_irq(int irq,
+@@ -3473,7 +3473,7 @@ static irqreturn_t net2280_irq(int irq,
        /* control requests and PIO */
        handle_stat0_irqs(dev, readl(&dev->regs->irqstat0));
  
@@ -184,7 +184,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
                /* re-enable interrupt to trigger any possible new interrupt */
                u32 pciirqenb1 = readl(&dev->regs->pciirqenb1);
                writel(pciirqenb1 & 0x7FFFFFFF, &dev->regs->pciirqenb1);
-@@ -3506,7 +3506,7 @@ static void net2280_remove(struct pci_de
+@@ -3518,7 +3518,7 @@ static void net2280_remove(struct pci_de
        }
        if (dev->got_irq)
                free_irq(pdev->irq, dev);
@@ -193,7 +193,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
                pci_disable_msi(pdev);
        if (dev->regs)
                iounmap(dev->regs);
-@@ -3586,7 +3586,7 @@ static int net2280_probe(struct pci_dev
+@@ -3598,7 +3598,7 @@ static int net2280_probe(struct pci_dev
        dev->dep = (struct net2280_dep_regs __iomem *) (base + 0x0200);
        dev->epregs = (struct net2280_ep_regs __iomem *) (base + 0x0300);
  
@@ -202,7 +202,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
                u32 fsmvalue;
                u32 usbstat;
                dev->usb_ext = (struct usb338x_usb_ext_regs __iomem *)
-@@ -3630,7 +3630,7 @@ static int net2280_probe(struct pci_dev
+@@ -3642,7 +3642,7 @@ static int net2280_probe(struct pci_dev
                goto done;
        }
  
@@ -211,7 +211,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
                if (pci_enable_msi(pdev))
                        ep_err(dev, "Failed to enable MSI mode\n");
  
-@@ -3748,10 +3748,19 @@ static const struct pci_device_id pci_id
+@@ -3760,10 +3760,19 @@ static const struct pci_device_id pci_id
        .class =        ((PCI_CLASS_SERIAL_USB << 8) | 0xfe),
        .class_mask =   ~0,
        .vendor =       PCI_VENDOR_ID_PLX,
@@ -232,7 +232,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
         },
        {
        .class =        ((PCI_CLASS_SERIAL_USB << 8) | 0xfe),
-@@ -3760,7 +3769,7 @@ static const struct pci_device_id pci_id
+@@ -3772,7 +3781,7 @@ static const struct pci_device_id pci_id
        .device =       0x3382,
        .subvendor =    PCI_ANY_ID,
        .subdevice =    PCI_ANY_ID,
index f5f542e0625c63cd1aaa46b9f626494201c3335d..d9d24263f7b725e8dd5448030d0e1ff06f9d7f5b 100644 (file)
@@ -1,11 +1,11 @@
 --- a/Makefile
 +++ b/Makefile
-@@ -628,12 +628,12 @@ KBUILD_CFLAGS    += $(call cc-disable-warni
+@@ -639,12 +639,12 @@ KBUILD_CFLAGS    += $(call cc-disable-warni
  KBUILD_CFLAGS += $(call cc-disable-warning, attribute-alias)
  
  ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
--KBUILD_CFLAGS += -Os
-+KBUILD_CFLAGS += -Os $(EXTRA_OPTIMIZATION)
+-KBUILD_CFLAGS += $(call cc-option,-Oz,-Os)
++KBUILD_CFLAGS += $(call cc-option,-Oz,-Os) $(EXTRA_OPTIMIZATION)
  else
  ifdef CONFIG_PROFILE_ALL_BRANCHES
 -KBUILD_CFLAGS += -O2
index 1aabf3e722dd2ae34f1e176c7462a73111eea639..b46600537f7e502c42cd834497d3b6d65b374e5b 100644 (file)
@@ -1,6 +1,6 @@
 --- a/Makefile
 +++ b/Makefile
-@@ -405,7 +405,7 @@ KBUILD_CFLAGS_KERNEL :=
+@@ -400,7 +400,7 @@ KBUILD_CFLAGS_KERNEL :=
  KBUILD_AFLAGS   := -D__ASSEMBLY__ $(call cc-option,-fno-PIE)
  KBUILD_AFLAGS_MODULE  := -DMODULE
  KBUILD_CFLAGS_MODULE  := -DMODULE
index 44c0a6dec623448c37b2f49fbaaa60b78d280304..bd7022f20b8ba5fc505fbd4f4ae032c8297c88e7 100644 (file)
@@ -54,7 +54,7 @@
        }
 --- a/scripts/Makefile.build
 +++ b/scripts/Makefile.build
-@@ -372,7 +372,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $(
+@@ -380,7 +380,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $(
  # Linker scripts preprocessor (.lds.S -> .lds)
  # ---------------------------------------------------------------------------
  quiet_cmd_cpp_lds_S = LDS     $@
index a08564dceabd85524efdb1f3e9165744595fa999..60b576c1a4e31e92e693bdb8f906326e416ccb12 100644 (file)
@@ -86,21 +86,21 @@ v2: incorporated changes suggested by Jonas Gorski
  extern int fpu_emulator_cop1Handler(struct pt_regs *xcp,
                                    struct mips_fpu_struct *ctx, int has_fpu,
                                    void *__user *fault_addr);
-+#else /* no CONFIG_MIPS_FPU_EMULATOR */
++#else  /* no CONFIG_MIPS_FPU_EMULATOR */
 +static inline int do_dsemulret(struct pt_regs *xcp)
 +{
-+      return 0;       /* 0 means error, should never get here anyway */
++      return 0;       /* 0 means error, should never get here anyway */
 +}
 +
 +static inline int fpu_emulator_cop1Handler(struct pt_regs *xcp,
-+                              struct mips_fpu_struct *ctx, int has_fpu,
-+                              void *__user *fault_addr)
++                                         struct mips_fpu_struct *ctx, int has_fpu,
++                                         void *__user *fault_addr)
 +{
 +      *fault_addr = NULL;
-+      return SIGILL;  /* we don't speak MIPS FPU */
++      return SIGILL;  /* we don't speak MIPS FPU */
 +}
-+#endif        /* CONFIG_MIPS_FPU_EMULATOR */
++#endif /* CONFIG_MIPS_FPU_EMULATOR */
 +
+ void force_fcr31_sig(unsigned long fcr31, void __user *fault_addr,
+                    struct task_struct *tsk);
  int process_fpemu_return(int sig, void __user *fault_addr,
-                        unsigned long fcr31);
- int mm_isBranchInstr(struct pt_regs *regs, struct mm_decoded_insn dec_insn,
index a69d197e626644450930db1256b9e0522eefc653..3a09572bde9ab2eb0d78263daa32666051dbd6ad 100644 (file)
@@ -210,7 +210,7 @@ Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
  
        /*
         * The generic kexec code builds a page list with physical
-@@ -98,15 +210,16 @@ machine_kexec(struct kimage *image)
+@@ -101,15 +213,16 @@ machine_kexec(struct kimage *image)
        /*
         * we do not want to be bothered.
         */
index e81ebbb3fa2a678a93c756a463030e61ab4d58cb..6782b1d3809351700df295a5277711652da866e5 100644 (file)
@@ -4,7 +4,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1166,6 +1166,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1172,6 +1172,7 @@ int spi_nor_scan(struct spi_nor *nor, co
  
        if (JEDEC_MFR(info) == SNOR_MFR_ATMEL ||
            JEDEC_MFR(info) == SNOR_MFR_INTEL ||
index d868a7da2545bdb200e1748b8fcebffdf8c95187..c21d19bf54375c4100c4f77d2a301dff3ea81136 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -725,6 +725,7 @@ static const struct flash_info spi_nor_i
+@@ -731,6 +731,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, 0) },
index fa1ab3fa0655a45ca9b3a18403bebac4d7292640..1be68e1b83901baf686d850a4aad011f3fc0963f 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -722,6 +722,7 @@ static const struct flash_info spi_nor_i
+@@ -728,6 +728,7 @@ static const struct flash_info spi_nor_i
        { "mx25l3205d",  INFO(0xc22016, 0, 64 * 1024,  64, SECT_4K) },
        { "mx25l3255e",  INFO(0xc29e16, 0, 64 * 1024,  64, SECT_4K) },
        { "mx25l6405d",  INFO(0xc22017, 0, 64 * 1024, 128, SECT_4K) },
index 1a4b04350836deb9d2a81e180465ab9cd53e0598..bde7a986c7f2fb7885e40d6e207ff69f964e76d4 100644 (file)
 +}
 --- a/fs/jffs2/super.c
 +++ b/fs/jffs2/super.c
-@@ -375,14 +375,41 @@ static int __init init_jffs2_fs(void)
+@@ -373,14 +373,41 @@ static int __init init_jffs2_fs(void)
        BUILD_BUG_ON(sizeof(struct jffs2_raw_inode) != 68);
        BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32);
  
index f1c7ab1d9c9c60afe1a13e6ee59c152641374e77..ca23150d7d2f7cbb00670d7baf28964665e4cc47 100644 (file)
@@ -172,7 +172,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
                        if (err)
                                break;
                }
-@@ -1432,7 +1458,8 @@ br_multicast_leave_group(struct net_brid
+@@ -1439,7 +1465,8 @@ br_multicast_leave_group(struct net_brid
                         struct net_bridge_port *port,
                         struct br_ip *group,
                         struct bridge_mcast_other_query *other_query,
@@ -182,7 +182,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  {
        struct net_bridge_mdb_htable *mdb;
        struct net_bridge_mdb_entry *mp;
-@@ -1456,7 +1483,7 @@ br_multicast_leave_group(struct net_brid
+@@ -1463,7 +1490,7 @@ br_multicast_leave_group(struct net_brid
                for (pp = &mp->ports;
                     (p = mlock_dereference(*pp, br)) != NULL;
                     pp = &p->next) {
@@ -191,7 +191,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
                                continue;
  
                        rcu_assign_pointer(*pp, p->next);
-@@ -1519,7 +1546,7 @@ br_multicast_leave_group(struct net_brid
+@@ -1526,7 +1553,7 @@ br_multicast_leave_group(struct net_brid
        for (p = mlock_dereference(mp->ports, br);
             p != NULL;
             p = mlock_dereference(p->next, br)) {
@@ -200,7 +200,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
                        continue;
  
                if (!hlist_unhashed(&p->mglist) &&
-@@ -1537,8 +1564,8 @@ out:
+@@ -1544,8 +1571,8 @@ out:
  
  static void br_ip4_multicast_leave_group(struct net_bridge *br,
                                         struct net_bridge_port *port,
@@ -211,7 +211,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  {
        struct br_ip br_group;
        struct bridge_mcast_own_query *own_query;
-@@ -1553,14 +1580,14 @@ static void br_ip4_multicast_leave_group
+@@ -1560,14 +1587,14 @@ static void br_ip4_multicast_leave_group
        br_group.vid = vid;
  
        br_multicast_leave_group(br, port, &br_group, &br->ip4_other_query,
@@ -228,7 +228,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  {
        struct br_ip br_group;
        struct bridge_mcast_own_query *own_query;
-@@ -1575,7 +1602,7 @@ static void br_ip6_multicast_leave_group
+@@ -1582,7 +1609,7 @@ static void br_ip6_multicast_leave_group
        br_group.vid = vid;
  
        br_multicast_leave_group(br, port, &br_group, &br->ip6_other_query,
@@ -237,7 +237,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  }
  #endif
  
-@@ -1584,6 +1611,7 @@ static int br_multicast_ipv4_rcv(struct
+@@ -1591,6 +1618,7 @@ static int br_multicast_ipv4_rcv(struct
                                 struct sk_buff *skb,
                                 u16 vid)
  {
@@ -245,7 +245,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
        struct sk_buff *skb_trimmed = NULL;
        struct igmphdr *ih;
        int err;
-@@ -1600,12 +1628,13 @@ static int br_multicast_ipv4_rcv(struct
+@@ -1607,12 +1635,13 @@ static int br_multicast_ipv4_rcv(struct
  
        BR_INPUT_SKB_CB(skb)->igmp = 1;
        ih = igmp_hdr(skb);
@@ -260,7 +260,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
                break;
        case IGMPV3_HOST_MEMBERSHIP_REPORT:
                err = br_ip4_multicast_igmp3_report(br, port, skb_trimmed, vid);
-@@ -1614,7 +1643,7 @@ static int br_multicast_ipv4_rcv(struct
+@@ -1621,7 +1650,7 @@ static int br_multicast_ipv4_rcv(struct
                err = br_ip4_multicast_query(br, port, skb_trimmed, vid);
                break;
        case IGMP_HOST_LEAVE_MESSAGE:
@@ -269,7 +269,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
                break;
        }
  
-@@ -1630,6 +1659,7 @@ static int br_multicast_ipv6_rcv(struct
+@@ -1637,6 +1666,7 @@ static int br_multicast_ipv6_rcv(struct
                                 struct sk_buff *skb,
                                 u16 vid)
  {
@@ -277,7 +277,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
        struct sk_buff *skb_trimmed = NULL;
        struct mld_msg *mld;
        int err;
-@@ -1649,8 +1679,9 @@ static int br_multicast_ipv6_rcv(struct
+@@ -1656,8 +1686,9 @@ static int br_multicast_ipv6_rcv(struct
  
        switch (mld->mld_type) {
        case ICMPV6_MGM_REPORT:
@@ -288,7 +288,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
                break;
        case ICMPV6_MLD2_REPORT:
                err = br_ip6_multicast_mld2_report(br, port, skb_trimmed, vid);
-@@ -1659,7 +1690,8 @@ static int br_multicast_ipv6_rcv(struct
+@@ -1666,7 +1697,8 @@ static int br_multicast_ipv6_rcv(struct
                err = br_ip6_multicast_query(br, port, skb_trimmed, vid);
                break;
        case ICMPV6_MGM_REDUCTION:
index eb7c4d8fd4f5280e7e9d6798c0780e63d91d9e8d..9350503415c5f4b48f3429b364d304dfb058f8e2 100644 (file)
@@ -296,15 +296,15 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  
                __skb_tunnel_rx(skb, t->dev, t->net);
  
-@@ -1148,6 +1285,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1153,6 +1290,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
        __u32 mtu;
        u8 tproto;
        int err;
 +      struct __ip6_tnl_fmr *fmr;
  
-       tproto = ACCESS_ONCE(t->parms.proto);
-       if ((tproto != IPPROTO_IPV6 && tproto != 0) ||
-@@ -1178,6 +1316,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
+       if (unlikely(!pskb_may_pull(skb, sizeof(*ipv6h))))
+               return -1;
+@@ -1187,6 +1325,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
        if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)
                fl6.flowi6_mark = skb->mark;
  
@@ -323,7 +323,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        err = ip6_tnl_xmit2(skb, dev, dsfield, &fl6, encap_limit, &mtu);
        if (err != 0) {
                if (err == -EMSGSIZE)
-@@ -1292,6 +1442,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
+@@ -1301,6 +1451,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
        t->parms.flowinfo = p->flowinfo;
        t->parms.link = p->link;
        t->parms.proto = p->proto;
@@ -338,7 +338,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        dst_cache_reset(&t->dst_cache);
        ip6_tnl_link_config(t);
        return 0;
-@@ -1330,6 +1488,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
+@@ -1339,6 +1497,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
        p->flowinfo = u->flowinfo;
        p->link = u->link;
        p->proto = u->proto;
@@ -346,7 +346,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        memcpy(p->name, u->name, sizeof(u->name));
  }
  
-@@ -1625,6 +1784,15 @@ static int ip6_tnl_validate(struct nlatt
+@@ -1634,6 +1793,15 @@ static int ip6_tnl_validate(struct nlatt
        return 0;
  }
  
@@ -362,7 +362,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  static void ip6_tnl_netlink_parms(struct nlattr *data[],
                                  struct __ip6_tnl_parm *parms)
  {
-@@ -1656,6 +1824,46 @@ static void ip6_tnl_netlink_parms(struct
+@@ -1665,6 +1833,46 @@ static void ip6_tnl_netlink_parms(struct
  
        if (data[IFLA_IPTUN_PROTO])
                parms->proto = nla_get_u8(data[IFLA_IPTUN_PROTO]);
@@ -409,7 +409,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  }
  
  static int ip6_tnl_newlink(struct net *src_net, struct net_device *dev,
-@@ -1708,6 +1916,12 @@ static void ip6_tnl_dellink(struct net_d
+@@ -1717,6 +1925,12 @@ static void ip6_tnl_dellink(struct net_d
  
  static size_t ip6_tnl_get_size(const struct net_device *dev)
  {
@@ -422,7 +422,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        return
                /* IFLA_IPTUN_LINK */
                nla_total_size(4) +
-@@ -1725,6 +1939,24 @@ static size_t ip6_tnl_get_size(const str
+@@ -1734,6 +1948,24 @@ static size_t ip6_tnl_get_size(const str
                nla_total_size(4) +
                /* IFLA_IPTUN_PROTO */
                nla_total_size(1) +
@@ -447,7 +447,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
                0;
  }
  
-@@ -1732,6 +1964,9 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -1741,6 +1973,9 @@ static int ip6_tnl_fill_info(struct sk_b
  {
        struct ip6_tnl *tunnel = netdev_priv(dev);
        struct __ip6_tnl_parm *parm = &tunnel->parms;
@@ -457,7 +457,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) ||
-@@ -1740,8 +1975,27 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -1749,8 +1984,27 @@ static int ip6_tnl_fill_info(struct sk_b
            nla_put_u8(skb, IFLA_IPTUN_ENCAP_LIMIT, parm->encap_limit) ||
            nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
            nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
@@ -486,7 +486,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        return 0;
  
  nla_put_failure:
-@@ -1765,6 +2019,7 @@ static const struct nla_policy ip6_tnl_p
+@@ -1774,6 +2028,7 @@ static const struct nla_policy ip6_tnl_p
        [IFLA_IPTUN_FLOWINFO]           = { .type = NLA_U32 },
        [IFLA_IPTUN_FLAGS]              = { .type = NLA_U32 },
        [IFLA_IPTUN_PROTO]              = { .type = NLA_U8 },
index 76e235a8fa6a13ea2796dbca4c20740e55373dfe..1d33e421ff8b6673a2c0c27e71bcf89f87742be3 100644 (file)
@@ -143,7 +143,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  static const struct rt6_info ip6_blk_hole_entry_template = {
        .dst = {
                .__refcnt       = ATOMIC_INIT(1),
-@@ -1902,6 +1919,11 @@ static struct rt6_info *ip6_route_info_c
+@@ -1906,6 +1923,11 @@ static struct rt6_info *ip6_route_info_c
                        rt->dst.output = ip6_pkt_prohibit_out;
                        rt->dst.input = ip6_pkt_prohibit;
                        break;
@@ -155,7 +155,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                case RTN_THROW:
                case RTN_UNREACHABLE:
                default:
-@@ -2505,6 +2527,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -2509,6 +2531,17 @@ static int ip6_pkt_prohibit_out(struct n
        return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
  }
  
@@ -173,7 +173,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  /*
   *    Allocate a dst for local (unicast / anycast) address.
   */
-@@ -2749,7 +2782,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -2753,7 +2786,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 ||
@@ -183,7 +183,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                cfg->fc_flags |= RTF_REJECT;
  
        if (rtm->rtm_type == RTN_LOCAL)
-@@ -3102,6 +3136,9 @@ static int rt6_fill_node(struct net *net
+@@ -3106,6 +3140,9 @@ static int rt6_fill_node(struct net *net
                case -EACCES:
                        rtm->rtm_type = RTN_PROHIBIT;
                        break;
@@ -193,7 +193,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                case -EAGAIN:
                        rtm->rtm_type = RTN_THROW;
                        break;
-@@ -3381,6 +3418,8 @@ static int ip6_route_dev_notify(struct n
+@@ -3385,6 +3422,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);
@@ -202,7 +202,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
-@@ -3392,6 +3431,7 @@ static int ip6_route_dev_notify(struct n
+@@ -3396,6 +3435,7 @@ static int ip6_route_dev_notify(struct n
                in6_dev_put(net->ipv6.ip6_null_entry->rt6i_idev);
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
                in6_dev_put(net->ipv6.ip6_prohibit_entry->rt6i_idev);
@@ -210,7 +210,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                in6_dev_put(net->ipv6.ip6_blk_hole_entry->rt6i_idev);
  #endif
        }
-@@ -3607,6 +3647,17 @@ static int __net_init ip6_route_net_init
+@@ -3611,6 +3651,17 @@ 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);
@@ -228,7 +228,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  #endif
  
        net->ipv6.sysctl.flush_delay = 0;
-@@ -3625,6 +3676,8 @@ out:
+@@ -3629,6 +3680,8 @@ out:
        return ret;
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -237,7 +237,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  out_ip6_prohibit_entry:
        kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_entry:
-@@ -3642,6 +3695,7 @@ static void __net_exit ip6_route_net_exi
+@@ -3646,6 +3699,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);
@@ -245,7 +245,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  #endif
        dst_entries_destroy(&net->ipv6.ip6_dst_ops);
  }
-@@ -3715,6 +3769,9 @@ void __init ip6_route_init_special_entri
+@@ -3719,6 +3773,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 be4d032f2736f06322fd9a7927c1ce20983daac6..0734bfc5afbb2a984a6c75e9d37b99ff6c859c31 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -4278,6 +4278,9 @@ static enum gro_result dev_gro_receive(s
+@@ -4300,6 +4300,9 @@ static enum gro_result dev_gro_receive(s
        enum gro_result ret;
        int grow;
  
@@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (!(skb->dev->features & NETIF_F_GRO))
                goto normal;
  
-@@ -5444,6 +5447,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -5470,6 +5473,48 @@ static void __netdev_adjacent_dev_unlink
                                           &upper_dev->adj_list.lower);
  }
  
@@ -76,7 +76,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 *private)
-@@ -5515,6 +5560,7 @@ static int __netdev_upper_dev_link(struc
+@@ -5541,6 +5586,7 @@ static int __netdev_upper_dev_link(struc
                        goto rollback_lower_mesh;
        }
  
@@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
                                      &changeupper_info.info);
        return 0;
-@@ -5641,6 +5687,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -5667,6 +5713,7 @@ void netdev_upper_dev_unlink(struct net_
        list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
                __netdev_adjacent_dev_unlink(dev, i->dev, i->ref_nr);
  
@@ -92,7 +92,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
                                      &changeupper_info.info);
  }
-@@ -6181,6 +6228,7 @@ int dev_set_mac_address(struct net_devic
+@@ -6209,6 +6256,7 @@ int dev_set_mac_address(struct net_devic
        if (err)
                return err;
        dev->addr_assign_type = NET_ADDR_SET;
index 39dc5ccbfce6233410c279b8eb48cd2775d293f8..f17c7bd556aa9982e711b4f8ff895e027a70fb9c 100644 (file)
@@ -52,7 +52,7 @@
  /**
   *    pskb_trim_unique - remove end from a paged unique (not cloned) buffer
   *    @skb: buffer to alter
-@@ -2312,16 +2316,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -2314,16 +2318,6 @@ static inline struct sk_buff *dev_alloc_
  }
  
  
@@ -86,7 +86,7 @@
        help
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -2754,10 +2754,20 @@ static int xmit_one(struct sk_buff *skb,
+@@ -2776,10 +2776,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 e5c9043065ab7b74fce97bbb4bd88642287dfa68..8e9b6e857ca42ccc8318b0b6d8eb94e9ce8d6418 100644 (file)
@@ -40,7 +40,7 @@
  /*
   * Some BIOS implementations leave the Intel GPU interrupts enabled,
   * even though no one is handling them (f.e. i915 driver is never loaded).
-@@ -3065,6 +3069,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
+@@ -3069,6 +3073,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);
  
index a385e45aa7af041df735612ed4a700b74ee59f72..d367577cbffd685097414ca78391895cd9b8e25f 100644 (file)
  }
 --- a/mm/vmstat.c
 +++ b/mm/vmstat.c
-@@ -1558,10 +1558,12 @@ static int __init setup_vmstat(void)
+@@ -1560,10 +1560,12 @@ static int __init setup_vmstat(void)
        cpu_notifier_register_done();
  #endif
  #ifdef CONFIG_PROC_FS
index 0ce4a0d4c6fc2405fe05dc229271a3452973acf5..45a4a8b3d0974f29daac8b2a08931ca2f4ad0e59 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
 
 --- a/drivers/net/ethernet/intel/igb/e1000_82575.c
 +++ b/drivers/net/ethernet/intel/igb/e1000_82575.c
-@@ -2165,7 +2165,7 @@ static s32 igb_read_phy_reg_82580(struct
+@@ -2154,7 +2154,7 @@ static s32 igb_read_phy_reg_82580(struct
        if (ret_val)
                goto out;
  
@@ -25,7 +25,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
  
        hw->phy.ops.release(hw);
  
-@@ -2190,7 +2190,7 @@ static s32 igb_write_phy_reg_82580(struc
+@@ -2179,7 +2179,7 @@ static s32 igb_write_phy_reg_82580(struc
        if (ret_val)
                goto out;
  
index 4f99418a01a379aaf4d0042468ef2d978956240c..b35c17c7b6075c682fb38cf1e8efb98cee4a1679 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
 
 --- a/drivers/net/ethernet/intel/igb/e1000_82575.c
 +++ b/drivers/net/ethernet/intel/igb/e1000_82575.c
-@@ -624,13 +624,25 @@ static s32 igb_get_invariants_82575(stru
+@@ -613,13 +613,25 @@ static s32 igb_get_invariants_82575(stru
        switch (link_mode) {
        case E1000_CTRL_EXT_LINK_MODE_1000BASE_KX:
                hw->phy.media_type = e1000_media_type_internal_serdes;
@@ -49,7 +49,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
                }
                /* fall through for I2C based SGMII */
        case E1000_CTRL_EXT_LINK_MODE_PCIE_SERDES:
-@@ -647,8 +659,11 @@ static s32 igb_get_invariants_82575(stru
+@@ -636,8 +648,11 @@ static s32 igb_get_invariants_82575(stru
                                hw->phy.media_type = e1000_media_type_copper;
                                dev_spec->sgmii_active = true;
                        }
index 358b51245fa698faff4db6d531d91b6627b8b6e1..33b4b70e0e5f3118ba9b02d598b50499eed6ebb6 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Yuan Yao <yao.yuan@nxp.com>
 
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1228,6 +1228,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1234,6 +1234,7 @@ int spi_nor_scan(struct spi_nor *nor, co
                mtd->flags |= MTD_NO_ERASE;
  
        mtd->dev.parent = dev;
index bbe29b612ab103d819d7687e84e23908b41ecf64..4c1fe408906aa2c735710b2a2045f6772a23ccbb 100644 (file)
@@ -69,7 +69,7 @@ Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
        spifi->nor.write = nxp_spifi_write;
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1120,7 +1120,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1126,7 +1126,7 @@ int spi_nor_scan(struct spi_nor *nor, co
        const struct flash_info *info = NULL;
        struct device *dev = nor->dev;
        struct mtd_info *mtd = &nor->mtd;
index dc551dfabbb812425bba6adad0528bff6fda3858..225a5024422351f0f97985069744e6b615397481 100644 (file)
@@ -14,7 +14,7 @@ Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
 
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1228,7 +1228,6 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1234,7 +1234,6 @@ int spi_nor_scan(struct spi_nor *nor, co
                mtd->flags |= MTD_NO_ERASE;
  
        mtd->dev.parent = dev;
index 13b30cf7e36ccba7c975189d0f875e248ebdeb73..3fdd6dea478e3d61344ed65cc91af418f0b387a2 100644 (file)
@@ -16,7 +16,7 @@ Cc: Cyrille Pitchen <cyrille.pitchen@atmel.com>
 
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -862,7 +862,7 @@ static const struct flash_info *spi_nor_
+@@ -868,7 +868,7 @@ static const struct flash_info *spi_nor_
  
        tmp = nor->read_reg(nor, SPINOR_OP_RDID, id, SPI_NOR_MAX_ID_LEN);
        if (tmp < 0) {
index e966cafce61480176ddbc719447ef9ff0c0eb52c..351eae3ccebf2700629abe0c189f4874edaad14f 100644 (file)
@@ -69,7 +69,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
  
                        addr += mtd->erasesize;
                        len -= mtd->erasesize;
-@@ -1107,7 +1130,7 @@ static int set_quad_mode(struct spi_nor
+@@ -1113,7 +1136,7 @@ static int set_quad_mode(struct spi_nor
  static int spi_nor_check(struct spi_nor *nor)
  {
        if (!nor->dev || !nor->read || !nor->write ||
@@ -78,7 +78,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
                pr_err("spi-nor: please fill all the necessary fields!\n");
                return -EINVAL;
        }
-@@ -1310,6 +1333,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1316,6 +1339,12 @@ int spi_nor_scan(struct spi_nor *nor, co
                nor->addr_width = 3;
        }
  
index 6ebbdb417def7896772736336503a74b22d2d652..158919992a9bdf33c1517a6059d8cfc6074d8117 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Brian Norris <computersforpeace@gmail.com>
 
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -896,7 +896,7 @@ static const struct flash_info *spi_nor_
+@@ -902,7 +902,7 @@ static const struct flash_info *spi_nor_
                                return &spi_nor_ids[tmp];
                }
        }
index cca7ac1797aa43d43912d1dc43cfa144c8a3020a..81ea8f2a538631a636a4ff3e34047f061e4c360d 100644 (file)
@@ -47,7 +47,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
  
        /* Cannot unlock; would unlock larger region than requested */
        if (stm_is_locked_sr(nor, ofs - mtd->erasesize, mtd->erasesize,
-@@ -1038,6 +1042,8 @@ static int macronix_quad_enable(struct s
+@@ -1044,6 +1048,8 @@ static int macronix_quad_enable(struct s
        int ret, val;
  
        val = read_sr(nor);
index de3d2d5456c483554d65fe051b9edffb77171ebb..cb3a1c9d0ddb4b0fdbd25c571409ce23f09a2adb 100644 (file)
@@ -24,7 +24,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
 
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1148,6 +1148,26 @@ static int spi_nor_check(struct spi_nor
+@@ -1154,6 +1154,26 @@ static int spi_nor_check(struct spi_nor
        return 0;
  }
  
@@ -51,7 +51,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
  int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode)
  {
        const struct flash_info *info = NULL;
-@@ -1195,19 +1215,9 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1201,19 +1221,9 @@ int spi_nor_scan(struct spi_nor *nor, co
  
        mutex_init(&nor->lock);
  
@@ -74,7 +74,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
  
        if (!mtd->name)
                mtd->name = dev_name(dev);
-@@ -1374,6 +1384,45 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1380,6 +1390,45 @@ int spi_nor_scan(struct spi_nor *nor, co
  }
  EXPORT_SYMBOL_GPL(spi_nor_scan);
  
index 85a231515f7f726218d686358e1d28addc5550a2..07081fbe7e61602f63c67554792c8d2c281ab02e 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
 
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -924,7 +924,10 @@ static int spi_nor_read(struct mtd_info
+@@ -930,7 +930,10 @@ static int spi_nor_read(struct mtd_info
        ret = nor->read(nor, from, len, retlen, buf);
  
        spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_READ);
@@ -26,7 +26,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
  }
  
  static int sst_write(struct mtd_info *mtd, loff_t to, size_t len,
-@@ -950,10 +953,14 @@ static int sst_write(struct mtd_info *mt
+@@ -956,10 +959,14 @@ static int sst_write(struct mtd_info *mt
                nor->program_opcode = SPINOR_OP_BP;
  
                /* write one byte. */
@@ -43,7 +43,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
        }
        to += actual;
  
-@@ -962,10 +969,14 @@ static int sst_write(struct mtd_info *mt
+@@ -968,10 +975,14 @@ static int sst_write(struct mtd_info *mt
                nor->program_opcode = SPINOR_OP_AAI_WP;
  
                /* write two bytes. */
@@ -60,7 +60,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
                to += 2;
                nor->sst_write_second = true;
        }
-@@ -974,21 +985,24 @@ static int sst_write(struct mtd_info *mt
+@@ -980,21 +991,24 @@ static int sst_write(struct mtd_info *mt
        write_disable(nor);
        ret = spi_nor_wait_till_ready(nor);
        if (ret)
@@ -90,7 +90,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
        spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_WRITE);
        return ret;
  }
-@@ -1017,14 +1031,18 @@ static int spi_nor_write(struct mtd_info
+@@ -1023,14 +1037,18 @@ static int spi_nor_write(struct mtd_info
  
        /* do all the bytes fit onto one page? */
        if (page_offset + len <= nor->page_size) {
@@ -112,7 +112,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
                        page_size = len - i;
                        if (page_size > nor->page_size)
                                page_size = nor->page_size;
-@@ -1035,7 +1053,11 @@ static int spi_nor_write(struct mtd_info
+@@ -1041,7 +1059,11 @@ static int spi_nor_write(struct mtd_info
  
                        write_enable(nor);
  
index f72bc2c820f06199f41c25834da4d2f2249267f8..f52a557d0bd643b56370c196c6727f54c492bae3 100644 (file)
@@ -113,7 +113,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
        u8 cmd = nor->read_opcode;
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -921,12 +921,13 @@ static int spi_nor_read(struct mtd_info
+@@ -927,12 +927,13 @@ static int spi_nor_read(struct mtd_info
        if (ret)
                return ret;
  
@@ -128,7 +128,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
        return 0;
  }
  
-@@ -953,7 +954,7 @@ static int sst_write(struct mtd_info *mt
+@@ -959,7 +960,7 @@ static int sst_write(struct mtd_info *mt
                nor->program_opcode = SPINOR_OP_BP;
  
                /* write one byte. */
@@ -137,7 +137,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
                if (ret < 0)
                        goto sst_write_err;
                WARN(ret != 1, "While writing 1 byte written %i bytes\n",
-@@ -969,7 +970,7 @@ static int sst_write(struct mtd_info *mt
+@@ -975,7 +976,7 @@ static int sst_write(struct mtd_info *mt
                nor->program_opcode = SPINOR_OP_AAI_WP;
  
                /* write two bytes. */
@@ -146,7 +146,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
                if (ret < 0)
                        goto sst_write_err;
                WARN(ret != 2, "While writing 2 bytes written %i bytes\n",
-@@ -992,7 +993,7 @@ static int sst_write(struct mtd_info *mt
+@@ -998,7 +999,7 @@ static int sst_write(struct mtd_info *mt
                write_enable(nor);
  
                nor->program_opcode = SPINOR_OP_BP;
@@ -155,7 +155,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
                if (ret < 0)
                        goto sst_write_err;
                WARN(ret != 1, "While writing 1 byte written %i bytes\n",
-@@ -1001,8 +1002,10 @@ static int sst_write(struct mtd_info *mt
+@@ -1007,8 +1008,10 @@ static int sst_write(struct mtd_info *mt
                if (ret)
                        goto sst_write_err;
                write_disable(nor);
@@ -166,7 +166,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
        spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_WRITE);
        return ret;
  }
-@@ -1031,15 +1034,17 @@ static int spi_nor_write(struct mtd_info
+@@ -1037,15 +1040,17 @@ static int spi_nor_write(struct mtd_info
  
        /* do all the bytes fit onto one page? */
        if (page_offset + len <= nor->page_size) {
@@ -186,7 +186,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
  
                /* write everything in nor->page_size chunks */
                for (i = ret; i < len; ) {
-@@ -1053,10 +1058,10 @@ static int spi_nor_write(struct mtd_info
+@@ -1059,10 +1064,10 @@ static int spi_nor_write(struct mtd_info
  
                        write_enable(nor);
  
index f3179cd56e5d0d6f1b35d26922ecd5e7c8bf0aa5..2b6db6881fae03e862b41c389e659cf28916d117 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
 
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1019,8 +1019,8 @@ static int spi_nor_write(struct mtd_info
+@@ -1025,8 +1025,8 @@ static int spi_nor_write(struct mtd_info
        size_t *retlen, const u_char *buf)
  {
        struct spi_nor *nor = mtd_to_spi_nor(mtd);
@@ -29,7 +29,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
  
        dev_dbg(nor->dev, "to 0x%08x, len %zd\n", (u32)to, len);
  
-@@ -1028,45 +1028,37 @@ static int spi_nor_write(struct mtd_info
+@@ -1034,45 +1034,37 @@ static int spi_nor_write(struct mtd_info
        if (ret)
                return ret;
  
index 59d9f3e88ac6973694023de613da975c71028271..4091cfb269a38bed6bbfa4ca6b881f2efe59b788 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@freescale.com>
 
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -921,14 +921,22 @@ static int spi_nor_read(struct mtd_info
+@@ -927,14 +927,22 @@ static int spi_nor_read(struct mtd_info
        if (ret)
                return ret;
  
index 47fef5cd0c08c54f1a082f820cd7d719781913b7..d28e16e0dcb3758b6314122af929dcfc8d5fff70 100644 (file)
@@ -24,7 +24,7 @@ Signed-off-by: Yunhui Cui <B56489@freescale.com>
  
  struct flash_info {
        char            *name;
-@@ -1246,6 +1247,14 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1252,6 +1253,14 @@ int spi_nor_scan(struct spi_nor *nor, co
        if (ret)
                return ret;
  
index 7b954dd5c8800adc4a65b9b8807254e868758e8d..5c8a18846a01c7bdfd87a6dd5e047b238da866d6 100644 (file)
@@ -33,7 +33,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
  
  static const struct flash_info *spi_nor_match_id(const char *name);
  
-@@ -786,6 +792,7 @@ static const struct flash_info spi_nor_i
+@@ -792,6 +798,7 @@ static const struct flash_info spi_nor_i
         */
        { "s25sl032p",  INFO(0x010215, 0x4d00,  64 * 1024,  64, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
        { "s25sl064p",  INFO(0x010216, 0x4d00,  64 * 1024, 128, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
@@ -41,7 +41,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
        { "s25fl256s0", INFO(0x010219, 0x4d00, 256 * 1024, 128, 0) },
        { "s25fl256s1", INFO(0x010219, 0x4d01,  64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
        { "s25fl512s",  INFO(0x010220, 0x4d00, 256 * 1024, 256, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
-@@ -910,6 +917,53 @@ static const struct flash_info *spi_nor_
+@@ -916,6 +923,53 @@ static const struct flash_info *spi_nor_
        return ERR_PTR(-ENODEV);
  }
  
@@ -95,7 +95,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
  static int spi_nor_read(struct mtd_info *mtd, loff_t from, size_t len,
                        size_t *retlen, u_char *buf)
  {
-@@ -1255,6 +1309,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1261,6 +1315,12 @@ int spi_nor_scan(struct spi_nor *nor, co
                write_sr(nor, ret);
        }
  
index df7e0d82f8fe6ab62cb2dc0c47616cff54077c50..df6619b7f1cfc3addd77e18d608f46e164aa93e0 100644 (file)
@@ -53,7 +53,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
        case SPI_NOR_NORMAL:
                return 0;
        }
-@@ -799,7 +804,8 @@ static const struct flash_info spi_nor_i
+@@ -805,7 +810,8 @@ static const struct flash_info spi_nor_i
        { "s70fl01gs",  INFO(0x010221, 0x4d00, 256 * 1024, 256, 0) },
        { "s25sl12800", INFO(0x012018, 0x0300, 256 * 1024,  64, 0) },
        { "s25sl12801", INFO(0x012018, 0x0301,  64 * 1024, 256, 0) },
@@ -63,7 +63,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
        { "s25fl129p0", INFO(0x012018, 0x4d00, 256 * 1024,  64, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
        { "s25fl129p1", INFO(0x012018, 0x4d01,  64 * 1024, 256, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
        { "s25sl004a",  INFO(0x010212,      0,  64 * 1024,   8, 0) },
-@@ -1195,6 +1201,23 @@ static int spansion_quad_enable(struct s
+@@ -1201,6 +1207,23 @@ static int spansion_quad_enable(struct s
        return 0;
  }
  
@@ -87,7 +87,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
  static int set_quad_mode(struct spi_nor *nor, const struct flash_info *info)
  {
        int status;
-@@ -1385,8 +1408,15 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1391,8 +1414,15 @@ int spi_nor_scan(struct spi_nor *nor, co
        if (info->flags & SPI_NOR_NO_FR)
                nor->flash_read = SPI_NOR_NORMAL;
  
@@ -105,7 +105,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
                ret = set_quad_mode(nor, info);
                if (ret) {
                        dev_err(dev, "quad mode not supported\n");
-@@ -1399,6 +1429,14 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1405,6 +1435,14 @@ int spi_nor_scan(struct spi_nor *nor, co
  
        /* Default commands */
        switch (nor->flash_read) {
@@ -120,7 +120,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
        case SPI_NOR_QUAD:
                nor->read_opcode = SPINOR_OP_READ_1_1_4;
                break;
-@@ -1426,6 +1464,9 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1432,6 +1470,9 @@ int spi_nor_scan(struct spi_nor *nor, co
                if (JEDEC_MFR(info) == SNOR_MFR_SPANSION) {
                        /* Dedicated 4-byte command set */
                        switch (nor->flash_read) {
@@ -130,7 +130,7 @@ Signed-off-by: Yunhui Cui <yunhui.cui@nxp.com>
                        case SPI_NOR_QUAD:
                                nor->read_opcode = SPINOR_OP_READ4_1_1_4;
                                break;
-@@ -1455,7 +1496,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1461,7 +1502,7 @@ int spi_nor_scan(struct spi_nor *nor, co
                return -EINVAL;
        }
  
index 95321ebf1b9e32dc5c1ce40c94743442ccd03bc9..0865d9c5cd43b6162fb1bf00de7d33510e36c1a3 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
 
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -798,6 +798,7 @@ static const struct flash_info spi_nor_i
+@@ -804,6 +804,7 @@ static const struct flash_info spi_nor_i
        { "s25sl032p",  INFO(0x010215, 0x4d00,  64 * 1024,  64, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
        { "s25sl064p",  INFO(0x010216, 0x4d00,  64 * 1024, 128, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
        { "s25fs256s1", INFO6(0x010219, 0x4d0181, 64 * 1024, 512, 0)},
@@ -22,7 +22,7 @@ Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
        { "s25fl256s0", INFO(0x010219, 0x4d00, 256 * 1024, 128, 0) },
        { "s25fl256s1", INFO(0x010219, 0x4d01,  64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
        { "s25fl512s",  INFO(0x010220, 0x4d00, 256 * 1024, 256, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
-@@ -964,9 +965,11 @@ static int spansion_s25fs_disable_4kb_er
+@@ -970,9 +971,11 @@ static int spansion_s25fs_disable_4kb_er
        ret = nor->read_reg(nor, SPINOR_OP_SPANSION_RDAR, &cr3v, 1);
        if (ret)
                return ret;
index c018a33fb02b63ae6f92f3ff9837ebcd37a40dad..20149b137ac55cb920e386aa7e43bb570cd489ad 100644 (file)
@@ -116,7 +116,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
                * Used for Spansion S25FS-S family flash only.
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -798,7 +798,6 @@ static const struct flash_info spi_nor_i
+@@ -804,7 +804,6 @@ static const struct flash_info spi_nor_i
        { "s25sl032p",  INFO(0x010215, 0x4d00,  64 * 1024,  64, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
        { "s25sl064p",  INFO(0x010216, 0x4d00,  64 * 1024, 128, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
        { "s25fs256s1", INFO6(0x010219, 0x4d0181, 64 * 1024, 512, 0)},
@@ -124,7 +124,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
        { "s25fl256s0", INFO(0x010219, 0x4d00, 256 * 1024, 128, 0) },
        { "s25fl256s1", INFO(0x010219, 0x4d01,  64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
        { "s25fl512s",  INFO(0x010220, 0x4d00, 256 * 1024, 256, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
-@@ -965,11 +964,9 @@ static int spansion_s25fs_disable_4kb_er
+@@ -971,11 +970,9 @@ static int spansion_s25fs_disable_4kb_er
        ret = nor->read_reg(nor, SPINOR_OP_SPANSION_RDAR, &cr3v, 1);
        if (ret)
                return ret;
@@ -136,7 +136,7 @@ Integrated-by: Jiang Yutang <yutang.jiang@nxp.com>
        return 0;
  }
  
-@@ -1343,6 +1340,8 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1349,6 +1346,8 @@ int spi_nor_scan(struct spi_nor *nor, co
  
        if (!mtd->name)
                mtd->name = dev_name(dev);
index f9cdb88f133cd69b4b53b738c09c36bbcc4c3954..6f16283158230fbb4e364f0734cfe60c6f2c0cb2 100644 (file)
@@ -16,7 +16,7 @@ Integrated-by: Yutang Jiang <yutang.jiang@nxp.com>
 
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -804,7 +804,7 @@ static const struct flash_info spi_nor_i
+@@ -810,7 +810,7 @@ static const struct flash_info spi_nor_i
        { "s70fl01gs",  INFO(0x010221, 0x4d00, 256 * 1024, 256, 0) },
        { "s25sl12800", INFO(0x012018, 0x0300, 256 * 1024,  64, 0) },
        { "s25sl12801", INFO(0x012018, 0x0301,  64 * 1024, 256, 0) },
index 4466b10566b379a92e61406b615416b5f41313a1..dad8e884506d7b07ce10f9bd42a3452c6cc47487 100644 (file)
@@ -180,7 +180,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
 +#endif /* _PCI_LAYERSCAPE_H */
 --- a/drivers/pci/quirks.c
 +++ b/drivers/pci/quirks.c
-@@ -3589,8 +3589,9 @@ int pci_dev_specific_reset(struct pci_de
+@@ -3593,8 +3593,9 @@ int pci_dev_specific_reset(struct pci_de
  static void quirk_dma_func0_alias(struct pci_dev *dev)
  {
        if (PCI_FUNC(dev->devfn) != 0) {
@@ -192,7 +192,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
        }
  }
  
-@@ -3605,8 +3606,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_R
+@@ -3609,8 +3610,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_R
  static void quirk_dma_func1_alias(struct pci_dev *dev)
  {
        if (PCI_FUNC(dev->devfn) != 1) {
@@ -204,7 +204,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
        }
  }
  
-@@ -3677,11 +3679,12 @@ static void quirk_fixed_dma_alias(struct
+@@ -3681,11 +3683,12 @@ static void quirk_fixed_dma_alias(struct
  
        id = pci_match_id(fixed_dma_alias_tbl, dev);
        if (id) {
index cc17aebbf4c9c16ab2a743823ca2e305f9a7e955..c4b97bcd47e74130933e0194a69dc149974125d0 100644 (file)
@@ -224,7 +224,7 @@ Signed-off-by: Yutang Jiang <yutang.jiang@nxp.com>
        /*
 --- a/arch/arm64/mm/init.c
 +++ b/arch/arm64/mm/init.c
-@@ -171,6 +171,7 @@ void __init arm64_memblock_init(void)
+@@ -175,6 +175,7 @@ void __init arm64_memblock_init(void)
                memblock_reserve(__virt_to_phys(initrd_start), initrd_end - initrd_start);
  #endif
  
index 5edd9c3639afe5e25b04ba954a96c021ff53bc07..8881dcd485cb8a3215647a90089c538a8b72ef4f 100644 (file)
@@ -212,7 +212,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        kfree(mtd_list);
 --- a/drivers/mtd/mtdchar.c
 +++ b/drivers/mtd/mtdchar.c
-@@ -465,38 +465,111 @@ static int mtdchar_readoob(struct file *
+@@ -469,38 +469,111 @@ static int mtdchar_readoob(struct file *
  }
  
  /*
@@ -341,7 +341,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  static int mtdchar_blkpg_ioctl(struct mtd_info *mtd,
                               struct blkpg_ioctl_arg *arg)
  {
-@@ -815,16 +888,12 @@ static int mtdchar_ioctl(struct file *fi
+@@ -819,16 +892,12 @@ static int mtdchar_ioctl(struct file *fi
        {
                struct nand_oobinfo oi;
  
@@ -362,7 +362,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  
                if (copy_to_user(argp, &oi, sizeof(struct nand_oobinfo)))
                        return -EFAULT;
-@@ -913,14 +982,14 @@ static int mtdchar_ioctl(struct file *fi
+@@ -917,14 +986,14 @@ static int mtdchar_ioctl(struct file *fi
        {
                struct nand_ecclayout_user *usrlay;
  
@@ -4297,7 +4297,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  }
  
  /*
-@@ -737,8 +869,8 @@ static const struct flash_info spi_nor_i
+@@ -743,8 +875,8 @@ static const struct flash_info spi_nor_i
        { "n25q032a",    INFO(0x20bb16, 0, 64 * 1024,   64, SPI_NOR_QUAD_READ) },
        { "n25q064",     INFO(0x20ba17, 0, 64 * 1024,  128, SECT_4K | SPI_NOR_QUAD_READ) },
        { "n25q064a",    INFO(0x20bb17, 0, 64 * 1024,  128, SECT_4K | SPI_NOR_QUAD_READ) },
@@ -4308,7 +4308,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        { "n25q256a",    INFO(0x20ba19, 0, 64 * 1024,  512, SECT_4K | SPI_NOR_QUAD_READ) },
        { "n25q512a",    INFO(0x20bb20, 0, 64 * 1024, 1024, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ) },
        { "n25q512ax3",  INFO(0x20ba20, 0, 64 * 1024, 1024, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ) },
-@@ -772,6 +904,7 @@ static const struct flash_info spi_nor_i
+@@ -778,6 +910,7 @@ static const struct flash_info spi_nor_i
        { "s25fl008k",  INFO(0xef4014,      0,  64 * 1024,  16, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
        { "s25fl016k",  INFO(0xef4015,      0,  64 * 1024,  32, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
        { "s25fl064k",  INFO(0xef4017,      0,  64 * 1024, 128, SECT_4K) },
@@ -4316,7 +4316,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        { "s25fl132k",  INFO(0x014016,      0,  64 * 1024,  64, SECT_4K) },
        { "s25fl164k",  INFO(0x014017,      0,  64 * 1024, 128, SECT_4K) },
        { "s25fl204k",  INFO(0x014013,      0,  64 * 1024,   8, SECT_4K | SPI_NOR_DUAL_READ) },
-@@ -835,11 +968,23 @@ static const struct flash_info spi_nor_i
+@@ -841,11 +974,23 @@ static const struct flash_info spi_nor_i
        { "w25x16", INFO(0xef3015, 0, 64 * 1024,  32, SECT_4K) },
        { "w25x32", INFO(0xef3016, 0, 64 * 1024,  64, SECT_4K) },
        { "w25q32", INFO(0xef4016, 0, 64 * 1024,  64, SECT_4K) },
@@ -4343,7 +4343,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        { "w25q80", INFO(0xef5014, 0, 64 * 1024,  16, SECT_4K) },
        { "w25q80bl", INFO(0xef4014, 0, 64 * 1024,  16, SECT_4K) },
        { "w25q128", INFO(0xef4018, 0, 64 * 1024, 256, SECT_4K) },
-@@ -862,7 +1007,7 @@ static const struct flash_info *spi_nor_
+@@ -868,7 +1013,7 @@ static const struct flash_info *spi_nor_
  
        tmp = nor->read_reg(nor, SPINOR_OP_RDID, id, SPI_NOR_MAX_ID_LEN);
        if (tmp < 0) {
@@ -4352,7 +4352,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
                return ERR_PTR(tmp);
        }
  
-@@ -873,7 +1018,7 @@ static const struct flash_info *spi_nor_
+@@ -879,7 +1024,7 @@ static const struct flash_info *spi_nor_
                                return &spi_nor_ids[tmp];
                }
        }
@@ -4361,7 +4361,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
                id[0], id[1], id[2]);
        return ERR_PTR(-ENODEV);
  }
-@@ -1019,6 +1164,8 @@ static int macronix_quad_enable(struct s
+@@ -1025,6 +1170,8 @@ static int macronix_quad_enable(struct s
        int ret, val;
  
        val = read_sr(nor);
@@ -4370,7 +4370,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        write_enable(nor);
  
        write_sr(nor, val | SR_QUAD_EN_MX);
-@@ -1107,7 +1254,7 @@ static int set_quad_mode(struct spi_nor
+@@ -1113,7 +1260,7 @@ static int set_quad_mode(struct spi_nor
  static int spi_nor_check(struct spi_nor *nor)
  {
        if (!nor->dev || !nor->read || !nor->write ||
@@ -4379,7 +4379,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
                pr_err("spi-nor: please fill all the necessary fields!\n");
                return -EINVAL;
        }
-@@ -1120,7 +1267,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1126,7 +1273,7 @@ int spi_nor_scan(struct spi_nor *nor, co
        const struct flash_info *info = NULL;
        struct device *dev = nor->dev;
        struct mtd_info *mtd = &nor->mtd;
@@ -4388,7 +4388,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        int ret;
        int i;
  
-@@ -1174,6 +1321,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1180,6 +1327,7 @@ int spi_nor_scan(struct spi_nor *nor, co
            info->flags & SPI_NOR_HAS_LOCK) {
                write_enable(nor);
                write_sr(nor, 0);
@@ -4396,7 +4396,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        }
  
        if (!mtd->name)
-@@ -1208,6 +1356,8 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1214,6 +1362,8 @@ int spi_nor_scan(struct spi_nor *nor, co
  
        if (info->flags & USE_FSR)
                nor->flags |= SNOR_F_USE_FSR;
@@ -4405,7 +4405,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  
  #ifdef CONFIG_MTD_SPI_NOR_USE_4K_SECTORS
        /* prefer "small sector" erase if possible */
-@@ -1310,6 +1460,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1316,6 +1466,12 @@ int spi_nor_scan(struct spi_nor *nor, co
                nor->addr_width = 3;
        }
  
index 1811e6920fa617cbc92d75fd5a7c0e022618d449..8c8500431d6d5b6c2a706032423e7c5187681a4e 100644 (file)
@@ -43,7 +43,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        }
  
        mvneta_set_ucast_table(pp, -1);
-@@ -3233,9 +3246,6 @@ static int mvneta_port_power_up(struct m
+@@ -3232,9 +3245,6 @@ static int mvneta_port_power_up(struct m
                return -EINVAL;
        }
  
index 2037a139c49c5dc6fa588964baa2c3d873b17c5c..f707f3dbe3dd10efa4928c841d1d9aa4836cabf5 100644 (file)
@@ -118,7 +118,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        mvneta_set_ucast_table(pp, -1);
        mvneta_set_special_mcast_table(pp, -1);
        mvneta_set_other_mcast_table(pp, -1);
-@@ -2959,10 +2965,43 @@ int mvneta_ethtool_get_settings(struct n
+@@ -2958,10 +2964,43 @@ int mvneta_ethtool_get_settings(struct n
  int mvneta_ethtool_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
  {
        struct mvneta_port *pp = netdev_priv(dev);
index f02f05b77c8e1f29be7a4238da92b2c131325762..b603943662485a29d44a7defe3f0c739225d1664 100644 (file)
@@ -102,7 +102,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                mvneta_cleanup_rxqs(pp);
                return err;
        }
-@@ -2639,7 +2640,7 @@ static int mvneta_set_mac_addr(struct ne
+@@ -2638,7 +2639,7 @@ static int mvneta_set_mac_addr(struct ne
        mvneta_mac_addr_set(pp, dev->dev_addr, -1);
  
        /* Set new addr in hw */
@@ -111,7 +111,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
        eth_commit_mac_addr_change(dev, addr);
        return 0;
-@@ -2758,7 +2759,7 @@ static void mvneta_percpu_elect(struct m
+@@ -2757,7 +2758,7 @@ static void mvneta_percpu_elect(struct m
  {
        int online_cpu_idx, cpu, i = 0;
  
@@ -120,7 +120,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
        for_each_online_cpu(cpu) {
                if (i == online_cpu_idx)
-@@ -3366,6 +3367,8 @@ static int mvneta_probe(struct platform_
+@@ -3365,6 +3366,8 @@ static int mvneta_probe(struct platform_
                                 strcmp(managed, "in-band-status") == 0);
        pp->cpu_notifier.notifier_call = mvneta_percpu_notifier;
  
index a3966948b6134035f27e40813d06c07daec8235c..bc86720f8d2979facf1a4c772a60b815cac479d7 100644 (file)
@@ -181,7 +181,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        mvreg_write(pp, MVNETA_INTR_MISC_MASK,
                    MVNETA_CAUSE_PHY_STATUS_CHANGE |
                    MVNETA_CAUSE_LINK_CHANGE |
-@@ -2757,22 +2809,35 @@ static void mvneta_percpu_disable(void *
+@@ -2756,22 +2808,35 @@ static void mvneta_percpu_disable(void *
  
  static void mvneta_percpu_elect(struct mvneta_port *pp)
  {
@@ -227,7 +227,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        }
  };
  
-@@ -2807,12 +2872,22 @@ static int mvneta_percpu_notifier(struct
+@@ -2806,12 +2871,22 @@ static int mvneta_percpu_notifier(struct
                mvreg_write(pp, MVNETA_INTR_MISC_MASK, 0);
                napi_enable(&port->napi);
  
@@ -251,7 +251,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                mvreg_write(pp, MVNETA_INTR_NEW_MASK,
                        MVNETA_RX_INTR_MASK(rxq_number) |
                        MVNETA_TX_INTR_MASK(txq_number) |
-@@ -2863,7 +2938,7 @@ static int mvneta_percpu_notifier(struct
+@@ -2862,7 +2937,7 @@ static int mvneta_percpu_notifier(struct
  static int mvneta_open(struct net_device *dev)
  {
        struct mvneta_port *pp = netdev_priv(dev);
@@ -260,7 +260,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
        pp->pkt_size = MVNETA_RX_PKT_SIZE(pp->dev->mtu);
        pp->frag_size = SKB_DATA_ALIGN(MVNETA_RX_BUF_SIZE(pp->pkt_size)) +
-@@ -2893,8 +2968,13 @@ static int mvneta_open(struct net_device
+@@ -2892,8 +2967,13 @@ static int mvneta_open(struct net_device
         */
        mvneta_percpu_disable(pp);
  
index ced1eba8ef5ddcc3d6dbd455b8f9b7287788b23d..17b23ce1ecc73d3ecb1d20cd190949071ef94ac6 100644 (file)
@@ -62,7 +62,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  static void mvneta_start_dev(struct mvneta_port *pp)
  {
        unsigned int cpu;
-@@ -3234,6 +3253,106 @@ static int mvneta_ethtool_get_sset_count
+@@ -3233,6 +3252,106 @@ static int mvneta_ethtool_get_sset_count
        return -EOPNOTSUPP;
  }
  
@@ -169,7 +169,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  static const struct net_device_ops mvneta_netdev_ops = {
        .ndo_open            = mvneta_open,
        .ndo_stop            = mvneta_stop,
-@@ -3258,6 +3377,10 @@ const struct ethtool_ops mvneta_eth_tool
+@@ -3257,6 +3376,10 @@ const struct ethtool_ops mvneta_eth_tool
        .get_strings    = mvneta_ethtool_get_strings,
        .get_ethtool_stats = mvneta_ethtool_get_stats,
        .get_sset_count = mvneta_ethtool_get_sset_count,
@@ -180,7 +180,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  };
  
  /* Initialize hw */
-@@ -3449,6 +3572,8 @@ static int mvneta_probe(struct platform_
+@@ -3448,6 +3571,8 @@ static int mvneta_probe(struct platform_
  
        pp->rxq_def = rxq_def;
  
index 0fa6e6492529c8005543ba69caf340ca8fb49537..b609f237fc9afd18ba51587529b7f6c0feffa1be 100644 (file)
@@ -93,7 +93,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        return 0;
  }
  
-@@ -2841,13 +2865,23 @@ static void mvneta_percpu_elect(struct m
+@@ -2840,13 +2864,23 @@ static void mvneta_percpu_elect(struct m
                        if ((rxq % max_cpu) == cpu)
                                rxq_map |= MVNETA_CPU_RXQ_ACCESS(rxq);
  
index 2a00ea66fda149e8c1e148644fc91497cc83d4b3..e79a11a4f13ba445c89ef141b20d5b7c799abd29 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3245,26 +3245,25 @@ static void mvneta_ethtool_update_stats(
+@@ -3244,26 +3244,25 @@ static void mvneta_ethtool_update_stats(
        const struct mvneta_statistic *s;
        void __iomem *base = pp->base;
        u32 high, low, val;
index b72b823671d59851cb16b66a48642c7c80755845..3423307c1c2cf5971a87bc443eae70004727774b 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -2852,9 +2852,14 @@ static void mvneta_percpu_disable(void *
+@@ -2851,9 +2851,14 @@ static void mvneta_percpu_disable(void *
  
  static void mvneta_percpu_elect(struct mvneta_port *pp)
  {
@@ -37,7 +37,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        max_cpu = num_present_cpus();
  
        for_each_online_cpu(cpu) {
-@@ -2865,7 +2870,7 @@ static void mvneta_percpu_elect(struct m
+@@ -2864,7 +2869,7 @@ static void mvneta_percpu_elect(struct m
                        if ((rxq % max_cpu) == cpu)
                                rxq_map |= MVNETA_CPU_RXQ_ACCESS(rxq);
  
@@ -46,7 +46,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                        /* Map the default receive queue queue to the
                         * elected CPU
                         */
-@@ -2876,7 +2881,7 @@ static void mvneta_percpu_elect(struct m
+@@ -2875,7 +2880,7 @@ static void mvneta_percpu_elect(struct m
                 * the CPU bound to the default RX queue
                 */
                if (txq_number == 1)
index 42ef706002e57afb7e89b96d553d9011b15d5d39..c1ea1c29183dfe443441878cf19eced41295fae1 100644 (file)
@@ -35,7 +35,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        mvreg_write(pp, MVNETA_INTR_MISC_MASK,
                    MVNETA_CAUSE_PHY_STATUS_CHANGE |
                    MVNETA_CAUSE_LINK_CHANGE |
-@@ -2996,7 +2995,7 @@ static int mvneta_percpu_notifier(struct
+@@ -2995,7 +2994,7 @@ static int mvneta_percpu_notifier(struct
  static int mvneta_open(struct net_device *dev)
  {
        struct mvneta_port *pp = netdev_priv(dev);
@@ -44,7 +44,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
        pp->pkt_size = MVNETA_RX_PKT_SIZE(pp->dev->mtu);
        pp->frag_size = SKB_DATA_ALIGN(MVNETA_RX_BUF_SIZE(pp->pkt_size)) +
-@@ -3029,9 +3028,7 @@ static int mvneta_open(struct net_device
+@@ -3028,9 +3027,7 @@ static int mvneta_open(struct net_device
        /* Enable per-CPU interrupt on all the CPU to handle our RX
         * queue interrupts
         */
@@ -55,7 +55,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
  
        /* Register a CPU notifier to handle the case where our CPU
-@@ -3318,9 +3315,7 @@ static int  mvneta_config_rss(struct mvn
+@@ -3317,9 +3314,7 @@ static int  mvneta_config_rss(struct mvn
  
        netif_tx_stop_all_queues(pp->dev);
  
index c589413107010dd340d2db45bd89904ad412ce38..f193b84cc054a4ca3ff6601648da295f6e5788c6 100644 (file)
@@ -126,7 +126,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
        mvneta_tx_reset(pp);
        mvneta_rx_reset(pp);
-@@ -2924,9 +2929,7 @@ static int mvneta_percpu_notifier(struct
+@@ -2923,9 +2928,7 @@ static int mvneta_percpu_notifier(struct
                }
  
                /* Mask all ethernet port interrupts */
@@ -137,7 +137,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                napi_enable(&port->napi);
  
  
-@@ -2941,14 +2944,8 @@ static int mvneta_percpu_notifier(struct
+@@ -2940,14 +2943,8 @@ static int mvneta_percpu_notifier(struct
                 */
                mvneta_percpu_elect(pp);
  
@@ -154,7 +154,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                mvreg_write(pp, MVNETA_INTR_MISC_MASK,
                        MVNETA_CAUSE_PHY_STATUS_CHANGE |
                        MVNETA_CAUSE_LINK_CHANGE |
-@@ -2959,9 +2956,7 @@ static int mvneta_percpu_notifier(struct
+@@ -2958,9 +2955,7 @@ static int mvneta_percpu_notifier(struct
        case CPU_DOWN_PREPARE_FROZEN:
                netif_tx_stop_all_queues(pp->dev);
                /* Mask all ethernet port interrupts */
@@ -165,7 +165,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
                napi_synchronize(&port->napi);
                napi_disable(&port->napi);
-@@ -2977,10 +2972,7 @@ static int mvneta_percpu_notifier(struct
+@@ -2976,10 +2971,7 @@ static int mvneta_percpu_notifier(struct
                /* Check if a new CPU must be elected now this on is down */
                mvneta_percpu_elect(pp);
                /* Unmask all ethernet port interrupts */
index f2a30b33aac9158bcb4e6d49be14af9cbbe20b0d..1d3d6aaf1428b63912fa75b4cf50c97ced5cad5d 100644 (file)
@@ -31,7 +31,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
        /* Core clock */
        struct clk *clk;
-@@ -2858,6 +2862,12 @@ static void mvneta_percpu_elect(struct m
+@@ -2857,6 +2861,12 @@ static void mvneta_percpu_elect(struct m
  {
        int elected_cpu = 0, max_cpu, cpu, i = 0;
  
@@ -44,7 +44,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        /* Use the cpu associated to the rxq when it is online, in all
         * the other cases, use the cpu 0 which can't be offline.
         */
-@@ -2901,6 +2911,7 @@ static void mvneta_percpu_elect(struct m
+@@ -2900,6 +2910,7 @@ static void mvneta_percpu_elect(struct m
                i++;
  
        }
@@ -52,7 +52,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  };
  
  static int mvneta_percpu_notifier(struct notifier_block *nfb,
-@@ -2955,8 +2966,13 @@ static int mvneta_percpu_notifier(struct
+@@ -2954,8 +2965,13 @@ static int mvneta_percpu_notifier(struct
        case CPU_DOWN_PREPARE:
        case CPU_DOWN_PREPARE_FROZEN:
                netif_tx_stop_all_queues(pp->dev);
index efdd08427c3e4db74f2b5987b0fadb5cf8384a8e..878229cbf787f3b75d1b1fc4da60df561e3eda4d 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
        /* Core clock */
        struct clk *clk;
-@@ -2858,16 +2859,14 @@ static void mvneta_percpu_disable(void *
+@@ -2857,16 +2858,14 @@ static void mvneta_percpu_disable(void *
        disable_percpu_irq(pp->dev->irq);
  }
  
@@ -47,7 +47,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        /* Use the cpu associated to the rxq when it is online, in all
         * the other cases, use the cpu 0 which can't be offline.
         */
-@@ -2911,7 +2910,6 @@ static void mvneta_percpu_elect(struct m
+@@ -2910,7 +2909,6 @@ static void mvneta_percpu_elect(struct m
                i++;
  
        }
@@ -55,7 +55,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  };
  
  static int mvneta_percpu_notifier(struct notifier_block *nfb,
-@@ -2925,6 +2923,14 @@ static int mvneta_percpu_notifier(struct
+@@ -2924,6 +2922,14 @@ static int mvneta_percpu_notifier(struct
        switch (action) {
        case CPU_ONLINE:
        case CPU_ONLINE_FROZEN:
@@ -70,7 +70,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                netif_tx_stop_all_queues(pp->dev);
  
                /* We have to synchronise on tha napi of each CPU
-@@ -2962,6 +2968,7 @@ static int mvneta_percpu_notifier(struct
+@@ -2961,6 +2967,7 @@ static int mvneta_percpu_notifier(struct
                        MVNETA_CAUSE_LINK_CHANGE |
                        MVNETA_CAUSE_PSC_SYNC_CHANGE);
                netif_tx_start_all_queues(pp->dev);
@@ -78,7 +78,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                break;
        case CPU_DOWN_PREPARE:
        case CPU_DOWN_PREPARE_FROZEN:
-@@ -2986,7 +2993,9 @@ static int mvneta_percpu_notifier(struct
+@@ -2985,7 +2992,9 @@ static int mvneta_percpu_notifier(struct
        case CPU_DEAD:
        case CPU_DEAD_FROZEN:
                /* Check if a new CPU must be elected now this on is down */
@@ -88,7 +88,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                /* Unmask all ethernet port interrupts */
                on_each_cpu(mvneta_percpu_unmask_interrupt, pp, true);
                mvreg_write(pp, MVNETA_INTR_MISC_MASK,
-@@ -3038,7 +3047,7 @@ static int mvneta_open(struct net_device
+@@ -3037,7 +3046,7 @@ static int mvneta_open(struct net_device
         */
        on_each_cpu(mvneta_percpu_enable, pp, true);
  
@@ -97,7 +97,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        /* Register a CPU notifier to handle the case where our CPU
         * might be taken offline.
         */
-@@ -3071,9 +3080,18 @@ static int mvneta_stop(struct net_device
+@@ -3070,9 +3079,18 @@ static int mvneta_stop(struct net_device
  {
        struct mvneta_port *pp = netdev_priv(dev);
  
@@ -116,7 +116,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        on_each_cpu(mvneta_percpu_disable, pp, true);
        free_percpu_irq(dev->irq, pp->ports);
        mvneta_cleanup_rxqs(pp);
-@@ -3344,7 +3362,9 @@ static int  mvneta_config_rss(struct mvn
+@@ -3343,7 +3361,9 @@ static int  mvneta_config_rss(struct mvn
        mvreg_write(pp, MVNETA_PORT_CONFIG, val);
  
        /* Update the elected CPU matching the new rxq_def */
index b3c86cad7d64be2815912fecc00dd0c2856eea64..89e9526ee188b497b81aeada11ab66353dc78439 100644 (file)
@@ -860,7 +860,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        pp->pkt_size = MVNETA_RX_PKT_SIZE(dev->mtu);
        pp->frag_size = SKB_DATA_ALIGN(MVNETA_RX_BUF_SIZE(pp->pkt_size)) +
                        SKB_DATA_ALIGN(sizeof(struct skb_shared_info));
-@@ -3568,6 +3974,7 @@ static int mvneta_probe(struct platform_
+@@ -3567,6 +3973,7 @@ static int mvneta_probe(struct platform_
        struct resource *res;
        struct device_node *dn = pdev->dev.of_node;
        struct device_node *phy_node;
@@ -868,7 +868,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        struct mvneta_port *pp;
        struct net_device *dev;
        const char *dt_mac_addr;
-@@ -3695,26 +4102,39 @@ static int mvneta_probe(struct platform_
+@@ -3694,26 +4101,39 @@ static int mvneta_probe(struct platform_
  
        pp->tx_csum_limit = tx_csum_limit;
  
@@ -914,7 +914,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        for_each_present_cpu(cpu) {
                struct mvneta_pcpu_port *port = per_cpu_ptr(pp->ports, cpu);
  
-@@ -3749,6 +4169,13 @@ static int mvneta_probe(struct platform_
+@@ -3748,6 +4168,13 @@ static int mvneta_probe(struct platform_
  
        return 0;
  
@@ -928,7 +928,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  err_free_stats:
        free_percpu(pp->stats);
  err_free_ports:
-@@ -3778,6 +4205,12 @@ static int mvneta_remove(struct platform
+@@ -3777,6 +4204,12 @@ static int mvneta_remove(struct platform
        of_node_put(pp->phy_node);
        free_netdev(dev);
  
index 54399a1b17ec7f389585addf2a43bfef91746651..7058686c20f11a3230d99f0644342639fb7aa94f 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3489,17 +3489,17 @@ static int mvneta_stop(struct net_device
+@@ -3488,17 +3488,17 @@ static int mvneta_stop(struct net_device
        struct mvneta_port *pp = netdev_priv(dev);
  
        /* Inform that we are stopping so we don't want to setup the
@@ -42,7 +42,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        on_each_cpu(mvneta_percpu_disable, pp, true);
        free_percpu_irq(dev->irq, pp->ports);
        mvneta_cleanup_rxqs(pp);
-@@ -4032,6 +4032,7 @@ static int mvneta_probe(struct platform_
+@@ -4031,6 +4031,7 @@ static int mvneta_probe(struct platform_
        dev->ethtool_ops = &mvneta_eth_tool_ops;
  
        pp = netdev_priv(dev);
index bcb0b4b8c7be1c338486233fb0524f32ae6cb13c..11b1d87f4c297133e56f14c98fe35031a6212eab 100644 (file)
@@ -50,9 +50,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
 +      on_each_cpu(mvneta_percpu_enable, pp, true);
        mvneta_start_dev(pp);
-       mvneta_port_up(pp);
  
-@@ -3245,20 +3261,6 @@ static void mvneta_mdio_remove(struct mv
+       netdev_update_features(dev);
+@@ -3244,20 +3260,6 @@ static void mvneta_mdio_remove(struct mv
        pp->phy_dev = NULL;
  }
  
index 380b6bf670cf83a3e10532ea6c3ba8ae140e18a7..33c687ed1185524968b9b5b38ef7e424df9db289 100644 (file)
@@ -208,7 +208,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  
        for_each_online_cpu(cpu) {
                struct mvneta_pcpu_port *port = per_cpu_ptr(pp->ports, cpu);
-@@ -3166,99 +3109,219 @@ static int mvneta_set_mac_addr(struct ne
+@@ -3165,99 +3108,219 @@ static int mvneta_set_mac_addr(struct ne
        return 0;
  }
  
@@ -449,6 +449,13 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 -      struct phy_device *phy_dev;
 +      struct mvneta_port *pp = netdev_priv(ndev);
 +      u32 val;
++
++      if (mode == MLO_AN_PHY || mode == MLO_AN_FIXED) {
++              val = mvreg_read(pp, MVNETA_GMAC_AUTONEG_CONFIG);
++              val &= ~MVNETA_GMAC_FORCE_LINK_DOWN;
++              val |= MVNETA_GMAC_FORCE_LINK_PASS;
++              mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, val);
++      }
  
 -      phy_dev = of_phy_connect(pp->dev, pp->phy_node, mvneta_adjust_link, 0,
 -                               pp->phy_interface);
@@ -464,17 +471,10 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 -      pp->link    = 0;
 -      pp->duplex  = 0;
 -      pp->speed   = 0;
-+      if (mode == MLO_AN_PHY || mode == MLO_AN_FIXED) {
-+              val = mvreg_read(pp, MVNETA_GMAC_AUTONEG_CONFIG);
-+              val &= ~MVNETA_GMAC_FORCE_LINK_DOWN;
-+              val |= MVNETA_GMAC_FORCE_LINK_PASS;
-+              mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, val);
-+      }
--      return 0;
 +      mvneta_port_up(pp);
 +}
-+
+-      return 0;
 +static const struct phylink_mac_ops mvneta_phylink_ops = {
 +      .mac_get_support = mvneta_mac_support,
 +      .mac_link_state = mvneta_mac_link_state,
@@ -501,7 +501,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  }
  
  /* Electing a CPU must be done in an atomic way: it should be done
-@@ -3506,10 +3569,7 @@ static int mvneta_ioctl(struct net_devic
+@@ -3505,10 +3568,7 @@ static int mvneta_ioctl(struct net_devic
  {
        struct mvneta_port *pp = netdev_priv(dev);
  
@@ -513,7 +513,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  }
  
  /* Ethtool methods */
-@@ -3519,54 +3579,15 @@ int mvneta_ethtool_get_settings(struct n
+@@ -3518,54 +3578,15 @@ int mvneta_ethtool_get_settings(struct n
  {
        struct mvneta_port *pp = netdev_priv(dev);
  
@@ -570,7 +570,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  }
  
  /* Set interrupt coalescing for ethtools */
-@@ -3674,7 +3695,8 @@ static void mvneta_ethtool_update_stats(
+@@ -3673,7 +3694,8 @@ static void mvneta_ethtool_update_stats(
  {
        const struct mvneta_statistic *s;
        void __iomem *base = pp->base;
@@ -580,7 +580,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        u64 val64;
        int i;
  
-@@ -3969,14 +3991,13 @@ static int mvneta_probe(struct platform_
+@@ -3968,14 +3990,13 @@ static int mvneta_probe(struct platform_
        const struct mbus_dram_target_info *dram_target_info;
        struct resource *res;
        struct device_node *dn = pdev->dev.of_node;
@@ -596,7 +596,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        int tx_csum_limit;
        int phy_mode;
        int err;
-@@ -3992,31 +4013,11 @@ static int mvneta_probe(struct platform_
+@@ -3991,31 +4012,11 @@ static int mvneta_probe(struct platform_
                goto err_free_netdev;
        }
  
@@ -629,7 +629,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        }
  
        dev->tx_queue_len = MVNETA_MAX_TXD;
-@@ -4027,12 +4028,7 @@ static int mvneta_probe(struct platform_
+@@ -4026,12 +4027,7 @@ static int mvneta_probe(struct platform_
  
        pp = netdev_priv(dev);
        spin_lock_init(&pp->lock);
@@ -643,7 +643,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        pp->cpu_notifier.notifier_call = mvneta_percpu_notifier;
  
        pp->rxq_def = rxq_def;
-@@ -4042,7 +4038,7 @@ static int mvneta_probe(struct platform_
+@@ -4041,7 +4037,7 @@ static int mvneta_probe(struct platform_
        pp->clk = devm_clk_get(&pdev->dev, NULL);
        if (IS_ERR(pp->clk)) {
                err = PTR_ERR(pp->clk);
@@ -652,7 +652,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        }
  
        clk_prepare_enable(pp->clk);
-@@ -4145,6 +4141,14 @@ static int mvneta_probe(struct platform_
+@@ -4144,6 +4140,14 @@ static int mvneta_probe(struct platform_
        dev->priv_flags |= IFF_UNICAST_FLT | IFF_LIVE_ADDR_CHANGE;
        dev->gso_max_segs = MVNETA_MAX_TSO_SEGS;
  
@@ -667,7 +667,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        err = register_netdev(dev);
        if (err < 0) {
                dev_err(&pdev->dev, "failed to register\n");
-@@ -4156,13 +4160,6 @@ static int mvneta_probe(struct platform_
+@@ -4155,13 +4159,6 @@ static int mvneta_probe(struct platform_
  
        platform_set_drvdata(pdev, pp->dev);
  
@@ -681,7 +681,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  
        return 0;
  
-@@ -4174,13 +4171,13 @@ err_netdev:
+@@ -4173,13 +4170,13 @@ err_netdev:
                                       1 << pp->id);
        }
  err_free_stats:
@@ -697,7 +697,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  err_free_irq:
        irq_dispose_mapping(dev->irq);
  err_free_netdev:
-@@ -4199,7 +4196,7 @@ static int mvneta_remove(struct platform
+@@ -4198,7 +4195,7 @@ static int mvneta_remove(struct platform
        free_percpu(pp->ports);
        free_percpu(pp->stats);
        irq_dispose_mapping(dev->irq);
index 700b9b53611c76e11c89d78cfa929cd29811bb15..034b5964363eccf9aac12a94acc4ca967bb464a8 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3590,6 +3590,13 @@ int mvneta_ethtool_set_settings(struct n
+@@ -3589,6 +3589,13 @@ int mvneta_ethtool_set_settings(struct n
        return phylink_ethtool_set_settings(pp->phylink, cmd);
  }
  
@@ -28,7 +28,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  /* Set interrupt coalescing for ethtools */
  static int mvneta_ethtool_set_coalesce(struct net_device *dev,
                                       struct ethtool_coalesce *c)
-@@ -3854,6 +3861,7 @@ const struct ethtool_ops mvneta_eth_tool
+@@ -3853,6 +3860,7 @@ const struct ethtool_ops mvneta_eth_tool
        .get_link       = ethtool_op_get_link,
        .get_settings   = mvneta_ethtool_get_settings,
        .set_settings   = mvneta_ethtool_set_settings,
index 62633cff462f60f240174e10d07aa9bc2689311c..75cd46e3da612056b82fe59333f0e14df4e60711 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3209,6 +3209,8 @@ static void mvneta_mac_config(struct net
+@@ -3208,6 +3208,8 @@ static void mvneta_mac_config(struct net
  
        if (state->advertising & ADVERTISED_Pause)
                new_an |= MVNETA_GMAC_ADVERT_SYM_FLOW_CTRL;
@@ -23,7 +23,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  
        switch (mode) {
        case MLO_AN_SGMII:
-@@ -3233,7 +3235,7 @@ static void mvneta_mac_config(struct net
+@@ -3232,7 +3234,7 @@ static void mvneta_mac_config(struct net
                         /* The MAC only supports FD mode */
                         MVNETA_GMAC_CONFIG_FULL_DUPLEX;
  
@@ -32,7 +32,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
                        new_an |= MVNETA_GMAC_AN_FLOW_CTRL_EN;
                break;
  
-@@ -3686,6 +3688,22 @@ static int mvneta_ethtool_set_ringparam(
+@@ -3685,6 +3687,22 @@ static int mvneta_ethtool_set_ringparam(
        return 0;
  }
  
@@ -55,7 +55,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  static void mvneta_ethtool_get_strings(struct net_device *netdev, u32 sset,
                                       u8 *data)
  {
-@@ -3867,6 +3885,8 @@ const struct ethtool_ops mvneta_eth_tool
+@@ -3866,6 +3884,8 @@ const struct ethtool_ops mvneta_eth_tool
        .get_drvinfo    = mvneta_ethtool_get_drvinfo,
        .get_ringparam  = mvneta_ethtool_get_ringparam,
        .set_ringparam  = mvneta_ethtool_set_ringparam,
index 1c081757bd00a8802aa410ce1e840c7435ad59bd..e10574c753d967654a7025be1219cff148dbe05d 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3128,12 +3128,14 @@ static int mvneta_mac_support(struct net
+@@ -3127,12 +3127,14 @@ static int mvneta_mac_support(struct net
                state->supported = PHY_10BT_FEATURES |
                                   PHY_100BT_FEATURES |
                                   SUPPORTED_1000baseT_Full |
index d1683d98a2cd774a00c8c4fc3fb7a447c0826164..16ffab3d46ea0ce4302c88a83dc6e3ce7aaf5c7f 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3115,9 +3115,9 @@ static int mvneta_mac_support(struct net
+@@ -3114,9 +3114,9 @@ static int mvneta_mac_support(struct net
        switch (mode) {
        case MLO_AN_8023Z:
                state->supported = SUPPORTED_1000baseT_Full |
@@ -27,7 +27,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
                state->an_enabled = 1;
                break;
  
-@@ -3128,18 +3128,21 @@ static int mvneta_mac_support(struct net
+@@ -3127,18 +3127,21 @@ static int mvneta_mac_support(struct net
                state->supported = PHY_10BT_FEATURES |
                                   PHY_100BT_FEATURES |
                                   SUPPORTED_1000baseT_Full |
index 71f8c166e9548e62a97f46ef7e4c7adc81414dd1..b9043561d0711a4244fa5bcbad826ff0866712e8 100644 (file)
@@ -68,7 +68,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        u64 ethtool_stats[ARRAY_SIZE(mvneta_statistics)];
  
        u32 indir[MVNETA_RSS_LU_TABLE_SIZE];
-@@ -3277,6 +3294,18 @@ static void mvneta_mac_config(struct net
+@@ -3276,6 +3293,18 @@ static void mvneta_mac_config(struct net
                mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, new_an);
  }
  
@@ -87,7 +87,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  static void mvneta_mac_link_down(struct net_device *ndev, unsigned int mode)
  {
        struct mvneta_port *pp = netdev_priv(ndev);
-@@ -3290,6 +3319,9 @@ static void mvneta_mac_link_down(struct
+@@ -3289,6 +3318,9 @@ static void mvneta_mac_link_down(struct
                val |= MVNETA_GMAC_FORCE_LINK_DOWN;
                mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, val);
        }
@@ -97,7 +97,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  }
  
  static void mvneta_mac_link_up(struct net_device *ndev, unsigned int mode,
-@@ -3306,6 +3338,11 @@ static void mvneta_mac_link_up(struct ne
+@@ -3305,6 +3337,11 @@ static void mvneta_mac_link_up(struct ne
        }
  
        mvneta_port_up(pp);
@@ -109,7 +109,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  }
  
  static const struct phylink_mac_ops mvneta_phylink_ops = {
-@@ -3745,6 +3782,13 @@ static void mvneta_ethtool_update_stats(
+@@ -3744,6 +3781,13 @@ static void mvneta_ethtool_update_stats(
                        val64 = (u64)high << 32 | low;
                        pp->ethtool_stats[i] += val64;
                        break;
@@ -123,7 +123,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
                }
        }
  }
-@@ -3868,6 +3912,47 @@ static int mvneta_ethtool_get_rxfh(struc
+@@ -3867,6 +3911,47 @@ static int mvneta_ethtool_get_rxfh(struc
        return 0;
  }
  
@@ -171,7 +171,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  static const struct net_device_ops mvneta_netdev_ops = {
        .ndo_open            = mvneta_open,
        .ndo_stop            = mvneta_stop,
-@@ -3899,6 +3984,8 @@ const struct ethtool_ops mvneta_eth_tool
+@@ -3898,6 +3983,8 @@ const struct ethtool_ops mvneta_eth_tool
        .get_rxnfc      = mvneta_ethtool_get_rxnfc,
        .get_rxfh       = mvneta_ethtool_get_rxfh,
        .set_rxfh       = mvneta_ethtool_set_rxfh,
index 7100e4da568e9640a88a3143c93e39489e22fe59..b3f9039081898ec4508f079df72a35ada6b3b282 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3912,6 +3912,22 @@ static int mvneta_ethtool_get_rxfh(struc
+@@ -3911,6 +3911,22 @@ static int mvneta_ethtool_get_rxfh(struc
        return 0;
  }
  
@@ -33,7 +33,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  static int mvneta_ethtool_get_eee(struct net_device *dev,
                                  struct ethtool_eee *eee)
  {
-@@ -3984,6 +4000,8 @@ const struct ethtool_ops mvneta_eth_tool
+@@ -3983,6 +3999,8 @@ const struct ethtool_ops mvneta_eth_tool
        .get_rxnfc      = mvneta_ethtool_get_rxnfc,
        .get_rxfh       = mvneta_ethtool_get_rxfh,
        .set_rxfh       = mvneta_ethtool_set_rxfh,
index d2ea24ba40a0fcbde7e0b894e55fb444e804441a..5dba311d93a6d325fc110b8218d56209bd78e9dd 100644 (file)
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 ---
 --- a/drivers/net/ethernet/marvell/mvneta.c
 +++ b/drivers/net/ethernet/marvell/mvneta.c
-@@ -3985,6 +3985,16 @@ static int mvneta_ethtool_set_eee(struct
+@@ -3984,6 +3984,16 @@ static int mvneta_ethtool_set_eee(struct
        return phylink_ethtool_set_eee(pp->phylink, eee);
  }
  
@@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static const struct net_device_ops mvneta_netdev_ops = {
        .ndo_open            = mvneta_open,
        .ndo_stop            = mvneta_stop,
-@@ -3995,6 +4005,7 @@ static const struct net_device_ops mvnet
+@@ -3994,6 +4004,7 @@ static const struct net_device_ops mvnet
        .ndo_fix_features    = mvneta_fix_features,
        .ndo_get_stats64     = mvneta_get_stats64,
        .ndo_do_ioctl        = mvneta_ioctl,
index d23e7c856933e005cf04339a3f8cbe1e22fc6a9c..4956e00b83d764f3f4a0ff4db5f8373fdb902f81 100644 (file)
@@ -23,7 +23,7 @@ Changes since v2:
 
 --- a/drivers/crypto/mxs-dcp.c
 +++ b/drivers/crypto/mxs-dcp.c
-@@ -775,6 +775,24 @@ static void dcp_sha_cra_exit(struct cryp
+@@ -782,6 +782,24 @@ static void dcp_sha_cra_exit(struct cryp
  {
  }
  
@@ -48,7 +48,7 @@ Changes since v2:
  /* AES 128 ECB and AES 128 CBC */
  static struct crypto_alg dcp_aes_algs[] = {
        {
-@@ -834,8 +852,11 @@ static struct ahash_alg dcp_sha1_alg = {
+@@ -841,8 +859,11 @@ static struct ahash_alg dcp_sha1_alg = {
        .final  = dcp_sha_final,
        .finup  = dcp_sha_finup,
        .digest = dcp_sha_digest,
@@ -60,7 +60,7 @@ Changes since v2:
                .base           = {
                        .cra_name               = "sha1",
                        .cra_driver_name        = "sha1-dcp",
-@@ -858,8 +879,11 @@ static struct ahash_alg dcp_sha256_alg =
+@@ -865,8 +886,11 @@ static struct ahash_alg dcp_sha256_alg =
        .final  = dcp_sha_final,
        .finup  = dcp_sha_finup,
        .digest = dcp_sha_digest,
index 5edd9c3639afe5e25b04ba954a96c021ff53bc07..8881dcd485cb8a3215647a90089c538a8b72ef4f 100644 (file)
@@ -212,7 +212,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        kfree(mtd_list);
 --- a/drivers/mtd/mtdchar.c
 +++ b/drivers/mtd/mtdchar.c
-@@ -465,38 +465,111 @@ static int mtdchar_readoob(struct file *
+@@ -469,38 +469,111 @@ static int mtdchar_readoob(struct file *
  }
  
  /*
@@ -341,7 +341,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  static int mtdchar_blkpg_ioctl(struct mtd_info *mtd,
                               struct blkpg_ioctl_arg *arg)
  {
-@@ -815,16 +888,12 @@ static int mtdchar_ioctl(struct file *fi
+@@ -819,16 +892,12 @@ static int mtdchar_ioctl(struct file *fi
        {
                struct nand_oobinfo oi;
  
@@ -362,7 +362,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  
                if (copy_to_user(argp, &oi, sizeof(struct nand_oobinfo)))
                        return -EFAULT;
-@@ -913,14 +982,14 @@ static int mtdchar_ioctl(struct file *fi
+@@ -917,14 +986,14 @@ static int mtdchar_ioctl(struct file *fi
        {
                struct nand_ecclayout_user *usrlay;
  
@@ -4297,7 +4297,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  }
  
  /*
-@@ -737,8 +869,8 @@ static const struct flash_info spi_nor_i
+@@ -743,8 +875,8 @@ static const struct flash_info spi_nor_i
        { "n25q032a",    INFO(0x20bb16, 0, 64 * 1024,   64, SPI_NOR_QUAD_READ) },
        { "n25q064",     INFO(0x20ba17, 0, 64 * 1024,  128, SECT_4K | SPI_NOR_QUAD_READ) },
        { "n25q064a",    INFO(0x20bb17, 0, 64 * 1024,  128, SECT_4K | SPI_NOR_QUAD_READ) },
@@ -4308,7 +4308,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        { "n25q256a",    INFO(0x20ba19, 0, 64 * 1024,  512, SECT_4K | SPI_NOR_QUAD_READ) },
        { "n25q512a",    INFO(0x20bb20, 0, 64 * 1024, 1024, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ) },
        { "n25q512ax3",  INFO(0x20ba20, 0, 64 * 1024, 1024, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ) },
-@@ -772,6 +904,7 @@ static const struct flash_info spi_nor_i
+@@ -778,6 +910,7 @@ static const struct flash_info spi_nor_i
        { "s25fl008k",  INFO(0xef4014,      0,  64 * 1024,  16, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
        { "s25fl016k",  INFO(0xef4015,      0,  64 * 1024,  32, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
        { "s25fl064k",  INFO(0xef4017,      0,  64 * 1024, 128, SECT_4K) },
@@ -4316,7 +4316,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        { "s25fl132k",  INFO(0x014016,      0,  64 * 1024,  64, SECT_4K) },
        { "s25fl164k",  INFO(0x014017,      0,  64 * 1024, 128, SECT_4K) },
        { "s25fl204k",  INFO(0x014013,      0,  64 * 1024,   8, SECT_4K | SPI_NOR_DUAL_READ) },
-@@ -835,11 +968,23 @@ static const struct flash_info spi_nor_i
+@@ -841,11 +974,23 @@ static const struct flash_info spi_nor_i
        { "w25x16", INFO(0xef3015, 0, 64 * 1024,  32, SECT_4K) },
        { "w25x32", INFO(0xef3016, 0, 64 * 1024,  64, SECT_4K) },
        { "w25q32", INFO(0xef4016, 0, 64 * 1024,  64, SECT_4K) },
@@ -4343,7 +4343,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        { "w25q80", INFO(0xef5014, 0, 64 * 1024,  16, SECT_4K) },
        { "w25q80bl", INFO(0xef4014, 0, 64 * 1024,  16, SECT_4K) },
        { "w25q128", INFO(0xef4018, 0, 64 * 1024, 256, SECT_4K) },
-@@ -862,7 +1007,7 @@ static const struct flash_info *spi_nor_
+@@ -868,7 +1013,7 @@ static const struct flash_info *spi_nor_
  
        tmp = nor->read_reg(nor, SPINOR_OP_RDID, id, SPI_NOR_MAX_ID_LEN);
        if (tmp < 0) {
@@ -4352,7 +4352,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
                return ERR_PTR(tmp);
        }
  
-@@ -873,7 +1018,7 @@ static const struct flash_info *spi_nor_
+@@ -879,7 +1024,7 @@ static const struct flash_info *spi_nor_
                                return &spi_nor_ids[tmp];
                }
        }
@@ -4361,7 +4361,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
                id[0], id[1], id[2]);
        return ERR_PTR(-ENODEV);
  }
-@@ -1019,6 +1164,8 @@ static int macronix_quad_enable(struct s
+@@ -1025,6 +1170,8 @@ static int macronix_quad_enable(struct s
        int ret, val;
  
        val = read_sr(nor);
@@ -4370,7 +4370,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        write_enable(nor);
  
        write_sr(nor, val | SR_QUAD_EN_MX);
-@@ -1107,7 +1254,7 @@ static int set_quad_mode(struct spi_nor
+@@ -1113,7 +1260,7 @@ static int set_quad_mode(struct spi_nor
  static int spi_nor_check(struct spi_nor *nor)
  {
        if (!nor->dev || !nor->read || !nor->write ||
@@ -4379,7 +4379,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
                pr_err("spi-nor: please fill all the necessary fields!\n");
                return -EINVAL;
        }
-@@ -1120,7 +1267,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1126,7 +1273,7 @@ int spi_nor_scan(struct spi_nor *nor, co
        const struct flash_info *info = NULL;
        struct device *dev = nor->dev;
        struct mtd_info *mtd = &nor->mtd;
@@ -4388,7 +4388,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        int ret;
        int i;
  
-@@ -1174,6 +1321,7 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1180,6 +1327,7 @@ int spi_nor_scan(struct spi_nor *nor, co
            info->flags & SPI_NOR_HAS_LOCK) {
                write_enable(nor);
                write_sr(nor, 0);
@@ -4396,7 +4396,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        }
  
        if (!mtd->name)
-@@ -1208,6 +1356,8 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1214,6 +1362,8 @@ int spi_nor_scan(struct spi_nor *nor, co
  
        if (info->flags & USE_FSR)
                nor->flags |= SNOR_F_USE_FSR;
@@ -4405,7 +4405,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  
  #ifdef CONFIG_MTD_SPI_NOR_USE_4K_SECTORS
        /* prefer "small sector" erase if possible */
-@@ -1310,6 +1460,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1316,6 +1466,12 @@ int spi_nor_scan(struct spi_nor *nor, co
                nor->addr_width = 3;
        }
  
index cecca5b22cc314cfa32454485583a8c241a596c2..05832bc5366b19d5b1a4f5b38b4c6c86d02dbc5c 100644 (file)
@@ -64,7 +64,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  
  #include <media/v4l2-common.h>
  
-@@ -1092,9 +1097,149 @@ static void uvc_video_decode_data(struct
+@@ -1104,9 +1109,149 @@ static void uvc_video_decode_data(struct
        }
  }
  
@@ -214,7 +214,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
        /* Mark the buffer as done if the EOF marker is set. */
        if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) {
                uvc_trace(UVC_TRACE_FRAME, "Frame complete (EOF found).\n");
-@@ -1507,6 +1652,8 @@ static int uvc_init_video_isoc(struct uv
+@@ -1519,6 +1664,8 @@ static int uvc_init_video_isoc(struct uv
        if (npackets == 0)
                return -ENOMEM;
  
index 7a01846ae164f5738ea9a7bb133ecb759919c5a5..8ac0b6e3059cae859918f64987c97e6a81691e17 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1014,6 +1014,66 @@ write_err:
+@@ -1020,6 +1020,66 @@ write_err:
        return ret;
  }
  
@@ -67,7 +67,7 @@
  static int macronix_quad_enable(struct spi_nor *nor)
  {
        int ret, val;
-@@ -1201,10 +1261,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1207,10 +1267,12 @@ int spi_nor_scan(struct spi_nor *nor, co
        }
  
        /* sst nor chips use AAI word program */
@@ -82,7 +82,7 @@
  
        if (info->flags & USE_FSR)
                nor->flags |= SNOR_F_USE_FSR;
-@@ -1232,11 +1294,20 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1238,11 +1300,20 @@ int spi_nor_scan(struct spi_nor *nor, co
        mtd->writebufsize = nor->page_size;
  
        if (np) {