kernel: bump 3.18 to 3.18.119
authorKoen Vandeputte <koen.vandeputte@ncentric.com>
Mon, 20 Aug 2018 08:43:09 +0000 (10:43 +0200)
committerKoen Vandeputte <koen.vandeputte@ncentric.com>
Mon, 20 Aug 2018 11:03:23 +0000 (13:03 +0200)
Refreshed all patches.

Compile-tested on: adm5120, adm8668, au1000, mcs814x, ppc40x, ppc44x, xburst
Runtime-tested on: none

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
46 files changed:
include/kernel-version.mk
target/linux/adm5120/patches-3.18/007-adm5120_pci.patch
target/linux/adm5120/patches-3.18/101-cfi_fixup_macronix_bootloc.patch
target/linux/adm5120/patches-3.18/120-rb153_cf_driver.patch
target/linux/adm8668/patches-3.18/002-adm8668_pci.patch
target/linux/adm8668/patches-3.18/004-tulip_pci_split.patch
target/linux/adm8668/patches-3.18/005-tulip_platform.patch
target/linux/generic/pending-3.18/001-mtdsplit_backport.patch
target/linux/generic/pending-3.18/002-phy_drivers_backport.patch
target/linux/generic/pending-3.18/030-nl80211-Allow-set-network-namespace-by-fd.patch
target/linux/generic/pending-3.18/081-01-pppoe-Use-workqueue-to-die-properly-when-a-PADT-is-r.patch
target/linux/generic/pending-3.18/081-07-ppp-remove-PPPOX_ZOMBIE-socket-state.patch
target/linux/generic/pending-3.18/081-08-pppoe-fix-memory-corruption-in-padt-work-structure.patch
target/linux/generic/pending-3.18/082-ipv6-ip6_fragment-fix-headroom-tests-and-skb-leak.patch
target/linux/generic/pending-3.18/110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch
target/linux/generic/pending-3.18/111-jffs2-add-RENAME_EXCHANGE-support.patch
target/linux/generic/pending-3.18/192-USB-qcserial-Add-support-for-Quectel-EC20-Mini-PCIe-.patch
target/linux/generic/pending-3.18/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch
target/linux/generic/pending-3.18/202-reduce_module_size.patch
target/linux/generic/pending-3.18/214-spidev_h_portability.patch
target/linux/generic/pending-3.18/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch
target/linux/generic/pending-3.18/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch
target/linux/generic/pending-3.18/476-mtd-spi-nor-add-eon-en25qh32.patch
target/linux/generic/pending-3.18/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch
target/linux/generic/pending-3.18/610-netfilter_match_bypass_default_checks.patch
target/linux/generic/pending-3.18/630-packet_socket_type.patch
target/linux/generic/pending-3.18/645-bridge_multicast_to_unicast.patch
target/linux/generic/pending-3.18/650-pppoe_header_pad.patch
target/linux/generic/pending-3.18/653-disable_netlink_trim.patch
target/linux/generic/pending-3.18/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
target/linux/generic/pending-3.18/667-ipv6-Fixed-source-specific-default-route-handling.patch
target/linux/generic/pending-3.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/pending-3.18/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
target/linux/generic/pending-3.18/701-phy_extension.patch
target/linux/generic/pending-3.18/702-phy_add_aneg_done_function.patch
target/linux/generic/pending-3.18/703-phy-add-detach-callback-to-struct-phy_driver.patch
target/linux/generic/pending-3.18/710-phy-add-mdio_register_board_info.patch
target/linux/generic/pending-3.18/721-phy_packets.patch
target/linux/generic/pending-3.18/834-ledtrig-libata.patch
target/linux/generic/pending-3.18/902-debloat_proc.patch
target/linux/mcs814x/patches-3.18/004-usb.patch
target/linux/mcs814x/patches-3.18/012-mtd-cfi_cmdset_0002-force-word-write.patch
target/linux/mcs814x/patches-3.18/013-ohci_workarounds.patch
target/linux/xburst/patches-3.18/002-NAND-Optimize-NAND_ECC_HW_OOB_FIRST-read.patch
target/linux/xburst/patches-3.18/003-NAND-Add-support-for-subpage-reads-for-NAND_ECC_HW_O.patch
target/linux/xburst/patches-3.18/007-qi_lb60-Don-t-use-3-wire-spi-mode-for-the-display-fo.patch

index 94e14845c3fa72e55d9a799c9e2679b484a1d083..eef80250f28ecad1003d4d79eeb06c73c421b0eb 100644 (file)
@@ -2,11 +2,11 @@
 
 LINUX_RELEASE?=1
 
 
 LINUX_RELEASE?=1
 
-LINUX_VERSION-3.18 = .71
+LINUX_VERSION-3.18 = .119
 LINUX_VERSION-4.9 = .122
 LINUX_VERSION-4.14 = .65
 
 LINUX_VERSION-4.9 = .122
 LINUX_VERSION-4.14 = .65
 
-LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
+LINUX_KERNEL_HASH-3.18.119 = 2bab623ed868b679eac224f62212cc285264061bedf1e32897f72e35aa26160d
 LINUX_KERNEL_HASH-4.9.122 = a46f90876b2cdb8ca1626e6489e76f8706dfd593a9d44fc91e68df47db6cf86c
 LINUX_KERNEL_HASH-4.14.65 = 12980c406bb9be670db58a88464d1c36cafd3c1d4d5ee09e8ecfa71e5eb5a5ec
 
 LINUX_KERNEL_HASH-4.9.122 = a46f90876b2cdb8ca1626e6489e76f8706dfd593a9d44fc91e68df47db6cf86c
 LINUX_KERNEL_HASH-4.14.65 = 12980c406bb9be670db58a88464d1c36cafd3c1d4d5ee09e8ecfa71e5eb5a5ec
 
index a5a0abf43bcaa3db88937dad402a540bf2d2c9d9..7a84217beee204b13d04b4b5f257e46db1d41be3 100644 (file)
@@ -10,7 +10,7 @@
  obj-$(CONFIG_PCI_AR724X)      += pci-ar724x.o
 --- a/include/linux/pci_ids.h
 +++ b/include/linux/pci_ids.h
  obj-$(CONFIG_PCI_AR724X)      += pci-ar724x.o
 --- a/include/linux/pci_ids.h
 +++ b/include/linux/pci_ids.h
-@@ -1820,6 +1820,9 @@
+@@ -1821,6 +1821,9 @@
  
  #define PCI_VENDOR_ID_CB              0x1307  /* Measurement Computing */
  
  
  #define PCI_VENDOR_ID_CB              0x1307  /* Measurement Computing */
  
index a0caa680bc2fd7126e59741dd24dcd6f23359f1f..92937fce14da3f92e97b46f80fbb1ccf199a3f2e 100644 (file)
@@ -67,7 +67,7 @@
  
 --- a/drivers/mtd/chips/Kconfig
 +++ b/drivers/mtd/chips/Kconfig
  
 --- a/drivers/mtd/chips/Kconfig
 +++ b/drivers/mtd/chips/Kconfig
-@@ -188,6 +188,14 @@ config MTD_CFI_AMDSTD
+@@ -189,6 +189,14 @@ config MTD_CFI_AMDSTD
          provides support for command set 0002, used on chips including
          the AMD Am29LV320.
  
          provides support for command set 0002, used on chips including
          the AMD Am29LV320.
  
index c5d4d3a57edf13df8da6b596e035583ebee0f56f..5390bd95b7261e5d8558eb1af594679aa53b0d19 100644 (file)
@@ -10,7 +10,7 @@
  obj-$(CONFIG_PATA_SAMSUNG_CF) += pata_samsung_cf.o
 --- a/drivers/ata/Kconfig
 +++ b/drivers/ata/Kconfig
  obj-$(CONFIG_PATA_SAMSUNG_CF) += pata_samsung_cf.o
 --- a/drivers/ata/Kconfig
 +++ b/drivers/ata/Kconfig
-@@ -955,6 +955,15 @@ config PATA_QDI
+@@ -958,6 +958,15 @@ config PATA_QDI
        help
          Support for QDI 6500 and 6580 PATA controllers on VESA local bus.
  
        help
          Support for QDI 6500 and 6580 PATA controllers on VESA local bus.
  
index 70ee00db5aa604f166e14b1939dc255ff1eb8424..d013d08b5d5993697760ab211014f83a6ac4c69a 100644 (file)
@@ -10,7 +10,7 @@
  obj-$(CONFIG_CAVIUM_OCTEON_SOC) += msi-octeon.o
 --- a/include/linux/pci_ids.h
 +++ b/include/linux/pci_ids.h
  obj-$(CONFIG_CAVIUM_OCTEON_SOC) += msi-octeon.o
 --- a/include/linux/pci_ids.h
 +++ b/include/linux/pci_ids.h
-@@ -1820,6 +1820,9 @@
+@@ -1821,6 +1821,9 @@
  
  #define PCI_VENDOR_ID_CB              0x1307  /* Measurement Computing */
  
  
  #define PCI_VENDOR_ID_CB              0x1307  /* Measurement Computing */
  
index e57bdb73cc88ccb13f294fcc4ef333fff7b61cdd..e39a1686cee0b4c4ad7fdb248539c12df8208a8a 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/ethernet/dec/tulip/tulip_core.c
 +++ b/drivers/net/ethernet/dec/tulip/tulip_core.c
 --- a/drivers/net/ethernet/dec/tulip/tulip_core.c
 +++ b/drivers/net/ethernet/dec/tulip/tulip_core.c
-@@ -207,6 +207,7 @@ struct tulip_chip_table tulip_tbl[] = {
+@@ -206,6 +206,7 @@ struct tulip_chip_table tulip_tbl[] = {
  };
  
  
  };
  
  
@@ -8,7 +8,7 @@
  static const struct pci_device_id tulip_pci_tbl[] = {
        { 0x1011, 0x0009, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DC21140 },
        { 0x1011, 0x0019, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DC21143 },
  static const struct pci_device_id tulip_pci_tbl[] = {
        { 0x1011, 0x0009, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DC21140 },
        { 0x1011, 0x0019, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DC21143 },
-@@ -250,7 +251,7 @@ static const struct pci_device_id tulip_
+@@ -249,7 +250,7 @@ static const struct pci_device_id tulip_
        { } /* terminate list */
  };
  MODULE_DEVICE_TABLE(pci, tulip_pci_tbl);
        { } /* terminate list */
  };
  MODULE_DEVICE_TABLE(pci, tulip_pci_tbl);
@@ -17,7 +17,7 @@
  
  /* A full-duplex map for media types. */
  const char tulip_media_cap[32] =
  
  /* A full-duplex map for media types. */
  const char tulip_media_cap[32] =
-@@ -268,11 +269,14 @@ static void tulip_down(struct net_device
+@@ -267,11 +268,14 @@ static void tulip_down(struct net_device
  static struct net_device_stats *tulip_get_stats(struct net_device *dev);
  static int private_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
  static void set_rx_mode(struct net_device *dev);
  static struct net_device_stats *tulip_get_stats(struct net_device *dev);
  static int private_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
  static void set_rx_mode(struct net_device *dev);
@@ -32,7 +32,7 @@
  static void tulip_set_power_state (struct tulip_private *tp,
                                   int sleep, int snooze)
  {
  static void tulip_set_power_state (struct tulip_private *tp,
                                   int sleep, int snooze)
  {
-@@ -289,7 +293,7 @@ static void tulip_set_power_state (struc
+@@ -288,7 +292,7 @@ static void tulip_set_power_state (struc
        }
  
  }
        }
  
  }
@@ -41,7 +41,7 @@
  
  static void tulip_up(struct net_device *dev)
  {
  
  static void tulip_up(struct net_device *dev)
  {
-@@ -303,6 +307,7 @@ static void tulip_up(struct net_device *
+@@ -302,6 +306,7 @@ static void tulip_up(struct net_device *
        napi_enable(&tp->napi);
  #endif
  
        napi_enable(&tp->napi);
  #endif
  
@@ -49,7 +49,7 @@
        /* Wake the chip from sleep/snooze mode. */
        tulip_set_power_state (tp, 0, 0);
  
        /* Wake the chip from sleep/snooze mode. */
        tulip_set_power_state (tp, 0, 0);
  
-@@ -310,6 +315,7 @@ static void tulip_up(struct net_device *
+@@ -309,6 +314,7 @@ static void tulip_up(struct net_device *
        pci_enable_wake(tp->pdev, PCI_D3hot, 0);
        pci_enable_wake(tp->pdev, PCI_D3cold, 0);
        tulip_set_wolopts(tp->pdev, 0);
        pci_enable_wake(tp->pdev, PCI_D3hot, 0);
        pci_enable_wake(tp->pdev, PCI_D3cold, 0);
        tulip_set_wolopts(tp->pdev, 0);
@@ -57,7 +57,7 @@
  
        /* On some chip revs we must set the MII/SYM port before the reset!? */
        if (tp->mii_cnt  ||  (tp->mtable  &&  tp->mtable->has_mii))
  
        /* On some chip revs we must set the MII/SYM port before the reset!? */
        if (tp->mii_cnt  ||  (tp->mtable  &&  tp->mtable->has_mii))
-@@ -317,18 +323,22 @@ static void tulip_up(struct net_device *
+@@ -316,18 +322,22 @@ static void tulip_up(struct net_device *
  
        /* Reset the chip, holding bit 0 set at least 50 PCI cycles. */
        iowrite32(0x00000001, ioaddr + CSR0);
  
        /* Reset the chip, holding bit 0 set at least 50 PCI cycles. */
        iowrite32(0x00000001, ioaddr + CSR0);
@@ -81,7 +81,7 @@
  
        iowrite32(tp->rx_ring_dma, ioaddr + CSR3);
        iowrite32(tp->tx_ring_dma, ioaddr + CSR4);
  
        iowrite32(tp->rx_ring_dma, ioaddr + CSR3);
        iowrite32(tp->tx_ring_dma, ioaddr + CSR4);
-@@ -362,9 +372,11 @@ static void tulip_up(struct net_device *
+@@ -361,9 +371,11 @@ static void tulip_up(struct net_device *
                *setup_frm++ = eaddrs[1]; *setup_frm++ = eaddrs[1];
                *setup_frm++ = eaddrs[2]; *setup_frm++ = eaddrs[2];
  
                *setup_frm++ = eaddrs[1]; *setup_frm++ = eaddrs[1];
                *setup_frm++ = eaddrs[2]; *setup_frm++ = eaddrs[2];
  
@@ -93,7 +93,7 @@
                tp->tx_buffers[tp->cur_tx].skb = NULL;
                tp->tx_buffers[tp->cur_tx].mapping = mapping;
  
                tp->tx_buffers[tp->cur_tx].skb = NULL;
                tp->tx_buffers[tp->cur_tx].mapping = mapping;
  
-@@ -520,7 +532,7 @@ tulip_open(struct net_device *dev)
+@@ -519,7 +531,7 @@ tulip_open(struct net_device *dev)
  
        tulip_init_ring (dev);
  
  
        tulip_init_ring (dev);
  
                             dev->name, dev);
        if (retval)
                goto free_ring;
                             dev->name, dev);
        if (retval)
                goto free_ring;
-@@ -644,8 +656,10 @@ static void tulip_init_ring(struct net_d
+@@ -643,8 +655,10 @@ static void tulip_init_ring(struct net_d
                tp->rx_buffers[i].skb = skb;
                if (skb == NULL)
                        break;
                tp->rx_buffers[i].skb = skb;
                if (skb == NULL)
                        break;
                tp->rx_buffers[i].mapping = mapping;
                tp->rx_ring[i].status = cpu_to_le32(DescOwned); /* Owned by Tulip chip */
                tp->rx_ring[i].buffer1 = cpu_to_le32(mapping);
                tp->rx_buffers[i].mapping = mapping;
                tp->rx_ring[i].status = cpu_to_le32(DescOwned); /* Owned by Tulip chip */
                tp->rx_ring[i].buffer1 = cpu_to_le32(mapping);
-@@ -678,8 +692,10 @@ tulip_start_xmit(struct sk_buff *skb, st
+@@ -677,8 +691,10 @@ tulip_start_xmit(struct sk_buff *skb, st
        entry = tp->cur_tx % TX_RING_SIZE;
  
        tp->tx_buffers[entry].skb = skb;
        entry = tp->cur_tx % TX_RING_SIZE;
  
        tp->tx_buffers[entry].skb = skb;
        tp->tx_buffers[entry].mapping = mapping;
        tp->tx_ring[entry].buffer1 = cpu_to_le32(mapping);
  
        tp->tx_buffers[entry].mapping = mapping;
        tp->tx_ring[entry].buffer1 = cpu_to_le32(mapping);
  
-@@ -730,16 +746,19 @@ static void tulip_clean_tx_ring(struct t
+@@ -729,16 +745,19 @@ static void tulip_clean_tx_ring(struct t
                if (tp->tx_buffers[entry].skb == NULL) {
                        /* test because dummy frames not mapped */
                        if (tp->tx_buffers[entry].mapping)
                if (tp->tx_buffers[entry].skb == NULL) {
                        /* test because dummy frames not mapped */
                        if (tp->tx_buffers[entry].mapping)
  
                /* Free the original skb. */
                dev_kfree_skb_irq(tp->tx_buffers[entry].skb);
  
                /* Free the original skb. */
                dev_kfree_skb_irq(tp->tx_buffers[entry].skb);
-@@ -790,7 +809,9 @@ static void tulip_down (struct net_devic
+@@ -789,7 +808,9 @@ static void tulip_down (struct net_devic
        dev->if_port = tp->saved_if_port;
  
        /* Leave the driver in snooze, not sleep, mode. */
        dev->if_port = tp->saved_if_port;
  
        /* Leave the driver in snooze, not sleep, mode. */
  }
  
  static void tulip_free_ring (struct net_device *dev)
  }
  
  static void tulip_free_ring (struct net_device *dev)
-@@ -811,8 +832,10 @@ static void tulip_free_ring (struct net_
+@@ -810,8 +831,10 @@ static void tulip_free_ring (struct net_
                /* An invalid address. */
                tp->rx_ring[i].buffer1 = cpu_to_le32(0xBADF00D0);
                if (skb) {
                /* An invalid address. */
                tp->rx_ring[i].buffer1 = cpu_to_le32(0xBADF00D0);
                if (skb) {
                        dev_kfree_skb (skb);
                }
        }
                        dev_kfree_skb (skb);
                }
        }
-@@ -821,8 +844,10 @@ static void tulip_free_ring (struct net_
+@@ -820,8 +843,10 @@ static void tulip_free_ring (struct net_
                struct sk_buff *skb = tp->tx_buffers[i].skb;
  
                if (skb != NULL) {
                struct sk_buff *skb = tp->tx_buffers[i].skb;
  
                if (skb != NULL) {
                        dev_kfree_skb (skb);
                }
                tp->tx_buffers[i].skb = NULL;
                        dev_kfree_skb (skb);
                }
                tp->tx_buffers[i].skb = NULL;
-@@ -843,7 +868,7 @@ static int tulip_close (struct net_devic
+@@ -842,7 +867,7 @@ static int tulip_close (struct net_devic
                netdev_dbg(dev, "Shutting down ethercard, status was %02x\n",
                           ioread32 (ioaddr + CSR5));
  
                netdev_dbg(dev, "Shutting down ethercard, status was %02x\n",
                           ioread32 (ioaddr + CSR5));
  
  
        tulip_free_ring (dev);
  
  
        tulip_free_ring (dev);
  
-@@ -874,7 +899,9 @@ static void tulip_get_drvinfo(struct net
+@@ -873,7 +898,9 @@ static void tulip_get_drvinfo(struct net
        struct tulip_private *np = netdev_priv(dev);
        strlcpy(info->driver, DRV_NAME, sizeof(info->driver));
        strlcpy(info->version, DRV_VERSION, sizeof(info->version));
        struct tulip_private *np = netdev_priv(dev);
        strlcpy(info->driver, DRV_NAME, sizeof(info->driver));
        strlcpy(info->version, DRV_VERSION, sizeof(info->version));
  }
  
  
  }
  
  
-@@ -887,7 +914,9 @@ static int tulip_ethtool_set_wol(struct
+@@ -886,7 +913,9 @@ static int tulip_ethtool_set_wol(struct
                   return -EOPNOTSUPP;
  
        tp->wolinfo.wolopts = wolinfo->wolopts;
                   return -EOPNOTSUPP;
  
        tp->wolinfo.wolopts = wolinfo->wolopts;
        return 0;
  }
  
        return 0;
  }
  
-@@ -1165,9 +1194,11 @@ static void set_rx_mode(struct net_devic
+@@ -1164,9 +1193,11 @@ static void set_rx_mode(struct net_devic
  
                        tp->tx_buffers[entry].skb = NULL;
                        tp->tx_buffers[entry].mapping =
  
                        tp->tx_buffers[entry].skb = NULL;
                        tp->tx_buffers[entry].mapping =
                        /* Put the setup frame on the Tx list. */
                        if (entry == TX_RING_SIZE-1)
                                tx_flags |= DESC_RING_WRAP;             /* Wrap ring. */
                        /* Put the setup frame on the Tx list. */
                        if (entry == TX_RING_SIZE-1)
                                tx_flags |= DESC_RING_WRAP;             /* Wrap ring. */
-@@ -1264,19 +1295,22 @@ out:
+@@ -1263,19 +1294,22 @@ out:
                netdev_dbg(dev, "MWI config cacheline=%d, csr0=%08x\n",
                           cache, csr0);
  }
                netdev_dbg(dev, "MWI config cacheline=%d, csr0=%08x\n",
                           cache, csr0);
  }
  
  static const struct net_device_ops tulip_netdev_ops = {
        .ndo_open               = tulip_open,
  
  static const struct net_device_ops tulip_netdev_ops = {
        .ndo_open               = tulip_open,
-@@ -1294,6 +1328,7 @@ static const struct net_device_ops tulip
+@@ -1293,6 +1327,7 @@ static const struct net_device_ops tulip
  #endif
  };
  
  #endif
  };
  
  const struct pci_device_id early_486_chipsets[] = {
        { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82424) },
        { PCI_DEVICE(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_496) },
  const struct pci_device_id early_486_chipsets[] = {
        { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82424) },
        { PCI_DEVICE(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_496) },
-@@ -1471,6 +1506,8 @@ static int tulip_init_one(struct pci_dev
+@@ -1470,6 +1505,8 @@ static int tulip_init_one(struct pci_dev
                }
        }
        tp->pdev = pdev;
                }
        }
        tp->pdev = pdev;
        tp->base_addr = ioaddr;
        tp->revision = pdev->revision;
        tp->csr0 = csr0;
        tp->base_addr = ioaddr;
        tp->revision = pdev->revision;
        tp->csr0 = csr0;
-@@ -1801,6 +1838,7 @@ err_out_free_netdev:
+@@ -1800,6 +1837,7 @@ err_out_free_netdev:
  }
  
  
  }
  
  
  /* set the registers according to the given wolopts */
  static void tulip_set_wolopts (struct pci_dev *pdev, u32 wolopts)
  {
  /* set the registers according to the given wolopts */
  static void tulip_set_wolopts (struct pci_dev *pdev, u32 wolopts)
  {
-@@ -1829,6 +1867,7 @@ static void tulip_set_wolopts (struct pc
+@@ -1828,6 +1866,7 @@ static void tulip_set_wolopts (struct pc
                iowrite32(tmp, ioaddr + CSR13);
        }
  }
                iowrite32(tmp, ioaddr + CSR13);
        }
  }
  
  #ifdef CONFIG_PM
  
  
  #ifdef CONFIG_PM
  
-@@ -1943,6 +1982,7 @@ static void tulip_remove_one(struct pci_
+@@ -1942,6 +1981,7 @@ static void tulip_remove_one(struct pci_
  
        /* pci_power_off (pdev, -1); */
  }
  
        /* pci_power_off (pdev, -1); */
  }
  
  #ifdef CONFIG_NET_POLL_CONTROLLER
  /*
  
  #ifdef CONFIG_NET_POLL_CONTROLLER
  /*
-@@ -1964,7 +2004,8 @@ static void poll_tulip (struct net_devic
+@@ -1963,7 +2003,8 @@ static void poll_tulip (struct net_devic
  }
  #endif
  
  }
  #endif
  
        .name           = DRV_NAME,
        .id_table       = tulip_pci_tbl,
        .probe          = tulip_init_one,
        .name           = DRV_NAME,
        .id_table       = tulip_pci_tbl,
        .probe          = tulip_init_one,
-@@ -1974,10 +2015,12 @@ static struct pci_driver tulip_driver =
+@@ -1973,10 +2014,12 @@ static struct pci_driver tulip_driver =
        .resume         = tulip_resume,
  #endif /* CONFIG_PM */
  };
        .resume         = tulip_resume,
  #endif /* CONFIG_PM */
  };
  #ifdef MODULE
        pr_info("%s", version);
  #endif
  #ifdef MODULE
        pr_info("%s", version);
  #endif
-@@ -1987,13 +2030,18 @@ static int __init tulip_init (void)
+@@ -1992,13 +2035,18 @@ static int __init tulip_init (void)
        tulip_max_interrupt_work = max_interrupt_work;
  
        /* probe for and init boards */
        tulip_max_interrupt_work = max_interrupt_work;
  
        /* probe for and init boards */
index bddc572c669cc5ded507322c07a9970286f910ac..184a5d0a70aa9f95cd7d683caa920d111dc0048a 100644 (file)
@@ -26,7 +26,7 @@
  #include <linux/delay.h>
  #include <linux/mii.h>
  #include <linux/crc32.h>
  #include <linux/delay.h>
  #include <linux/mii.h>
  #include <linux/crc32.h>
-@@ -204,6 +206,9 @@ struct tulip_chip_table tulip_tbl[] = {
+@@ -203,6 +205,9 @@ struct tulip_chip_table tulip_tbl[] = {
    { "Conexant LANfinity", 256, 0x0001ebef,
        HAS_MII | HAS_ACPI, tulip_timer, tulip_media_task },
  
    { "Conexant LANfinity", 256, 0x0001ebef,
        HAS_MII | HAS_ACPI, tulip_timer, tulip_media_task },
  
@@ -36,7 +36,7 @@
  };
  
  
  };
  
  
-@@ -377,6 +382,11 @@ static void tulip_up(struct net_device *
+@@ -376,6 +381,11 @@ static void tulip_up(struct net_device *
                                         sizeof(tp->setup_frame),
                                         PCI_DMA_TODEVICE);
  #endif
                                         sizeof(tp->setup_frame),
                                         PCI_DMA_TODEVICE);
  #endif
@@ -48,7 +48,7 @@
                tp->tx_buffers[tp->cur_tx].skb = NULL;
                tp->tx_buffers[tp->cur_tx].mapping = mapping;
  
                tp->tx_buffers[tp->cur_tx].skb = NULL;
                tp->tx_buffers[tp->cur_tx].mapping = mapping;
  
-@@ -396,6 +406,7 @@ static void tulip_up(struct net_device *
+@@ -395,6 +405,7 @@ static void tulip_up(struct net_device *
        i = 0;
        if (tp->mtable == NULL)
                goto media_picked;
        i = 0;
        if (tp->mtable == NULL)
                goto media_picked;
@@ -56,7 +56,7 @@
        if (dev->if_port) {
                int looking_for = tulip_media_cap[dev->if_port] & MediaIsMII ? 11 :
                        (dev->if_port == 12 ? 0 : dev->if_port);
        if (dev->if_port) {
                int looking_for = tulip_media_cap[dev->if_port] & MediaIsMII ? 11 :
                        (dev->if_port == 12 ? 0 : dev->if_port);
-@@ -489,6 +500,10 @@ media_picked:
+@@ -488,6 +499,10 @@ media_picked:
                iowrite32(ioread32(ioaddr + 0x88) | 1, ioaddr + 0x88);
                dev->if_port = tp->mii_cnt ? 11 : 0;
                tp->csr6 = 0x00040000;
                iowrite32(ioread32(ioaddr + 0x88) | 1, ioaddr + 0x88);
                dev->if_port = tp->mii_cnt ? 11 : 0;
                tp->csr6 = 0x00040000;
@@ -67,7 +67,7 @@
        } else if (tp->chip_id == AX88140) {
                tp->csr6 = tp->mii_cnt ? 0x00040100 : 0x00000100;
        } else
        } else if (tp->chip_id == AX88140) {
                tp->csr6 = tp->mii_cnt ? 0x00040100 : 0x00000100;
        } else
-@@ -660,6 +675,10 @@ static void tulip_init_ring(struct net_d
+@@ -659,6 +674,10 @@ static void tulip_init_ring(struct net_d
                mapping = pci_map_single(tp->pdev, skb->data,
                                         PKT_BUF_SZ, PCI_DMA_FROMDEVICE);
  #endif
                mapping = pci_map_single(tp->pdev, skb->data,
                                         PKT_BUF_SZ, PCI_DMA_FROMDEVICE);
  #endif
@@ -78,7 +78,7 @@
                tp->rx_buffers[i].mapping = mapping;
                tp->rx_ring[i].status = cpu_to_le32(DescOwned); /* Owned by Tulip chip */
                tp->rx_ring[i].buffer1 = cpu_to_le32(mapping);
                tp->rx_buffers[i].mapping = mapping;
                tp->rx_ring[i].status = cpu_to_le32(DescOwned); /* Owned by Tulip chip */
                tp->rx_ring[i].buffer1 = cpu_to_le32(mapping);
-@@ -696,6 +715,11 @@ tulip_start_xmit(struct sk_buff *skb, st
+@@ -695,6 +714,11 @@ tulip_start_xmit(struct sk_buff *skb, st
        mapping = pci_map_single(tp->pdev, skb->data,
                                 skb->len, PCI_DMA_TODEVICE);
  #endif
        mapping = pci_map_single(tp->pdev, skb->data,
                                 skb->len, PCI_DMA_TODEVICE);
  #endif
@@ -90,7 +90,7 @@
        tp->tx_buffers[entry].mapping = mapping;
        tp->tx_ring[entry].buffer1 = cpu_to_le32(mapping);
  
        tp->tx_buffers[entry].mapping = mapping;
        tp->tx_ring[entry].buffer1 = cpu_to_le32(mapping);
  
-@@ -752,6 +776,13 @@ static void tulip_clean_tx_ring(struct t
+@@ -751,6 +775,13 @@ static void tulip_clean_tx_ring(struct t
                                        sizeof(tp->setup_frame),
                                        PCI_DMA_TODEVICE);
  #endif
                                        sizeof(tp->setup_frame),
                                        PCI_DMA_TODEVICE);
  #endif
                        continue;
                }
  #ifdef CONFIG_TULIP_PCI
                        continue;
                }
  #ifdef CONFIG_TULIP_PCI
-@@ -759,6 +790,11 @@ static void tulip_clean_tx_ring(struct t
+@@ -758,6 +789,11 @@ static void tulip_clean_tx_ring(struct t
                                tp->tx_buffers[entry].skb->len,
                                PCI_DMA_TODEVICE);
  #endif
                                tp->tx_buffers[entry].skb->len,
                                PCI_DMA_TODEVICE);
  #endif
  
                /* Free the original skb. */
                dev_kfree_skb_irq(tp->tx_buffers[entry].skb);
  
                /* Free the original skb. */
                dev_kfree_skb_irq(tp->tx_buffers[entry].skb);
-@@ -836,6 +872,10 @@ static void tulip_free_ring (struct net_
+@@ -835,6 +871,10 @@ static void tulip_free_ring (struct net_
                        pci_unmap_single(tp->pdev, mapping, PKT_BUF_SZ,
                                         PCI_DMA_FROMDEVICE);
  #endif
                        pci_unmap_single(tp->pdev, mapping, PKT_BUF_SZ,
                                         PCI_DMA_FROMDEVICE);
  #endif
                        dev_kfree_skb (skb);
                }
        }
                        dev_kfree_skb (skb);
                }
        }
-@@ -848,6 +888,10 @@ static void tulip_free_ring (struct net_
+@@ -847,6 +887,10 @@ static void tulip_free_ring (struct net_
                        pci_unmap_single(tp->pdev, tp->tx_buffers[i].mapping,
                                         skb->len, PCI_DMA_TODEVICE);
  #endif
                        pci_unmap_single(tp->pdev, tp->tx_buffers[i].mapping,
                                         skb->len, PCI_DMA_TODEVICE);
  #endif
                        dev_kfree_skb (skb);
                }
                tp->tx_buffers[i].skb = NULL;
                        dev_kfree_skb (skb);
                }
                tp->tx_buffers[i].skb = NULL;
-@@ -902,6 +946,9 @@ static void tulip_get_drvinfo(struct net
+@@ -901,6 +945,9 @@ static void tulip_get_drvinfo(struct net
  #ifdef CONFIG_TULIP_PCI
        strlcpy(info->bus_info, pci_name(np->pdev), sizeof(info->bus_info));
  #endif
  #ifdef CONFIG_TULIP_PCI
        strlcpy(info->bus_info, pci_name(np->pdev), sizeof(info->bus_info));
  #endif
  }
  
  
  }
  
  
-@@ -917,6 +964,9 @@ static int tulip_ethtool_set_wol(struct
+@@ -916,6 +963,9 @@ static int tulip_ethtool_set_wol(struct
  #ifdef CONFIG_TULIP_PCI
        device_set_wakeup_enable(tp->kdev, tp->wolinfo.wolopts);
  #endif
  #ifdef CONFIG_TULIP_PCI
        device_set_wakeup_enable(tp->kdev, tp->wolinfo.wolopts);
  #endif
        return 0;
  }
  
        return 0;
  }
  
-@@ -1192,13 +1242,20 @@ static void set_rx_mode(struct net_devic
+@@ -1191,13 +1241,20 @@ static void set_rx_mode(struct net_devic
  
                        }
  
  
                        }
  
                        /* Put the setup frame on the Tx list. */
                        if (entry == TX_RING_SIZE-1)
                                tx_flags |= DESC_RING_WRAP;             /* Wrap ring. */
                        /* Put the setup frame on the Tx list. */
                        if (entry == TX_RING_SIZE-1)
                                tx_flags |= DESC_RING_WRAP;             /* Wrap ring. */
-@@ -1218,6 +1275,9 @@ static void set_rx_mode(struct net_devic
+@@ -1217,6 +1274,9 @@ static void set_rx_mode(struct net_devic
                spin_unlock_irqrestore(&tp->lock, flags);
        }
  
                spin_unlock_irqrestore(&tp->lock, flags);
        }
  
        iowrite32(csr6, ioaddr + CSR6);
  }
  
        iowrite32(csr6, ioaddr + CSR6);
  }
  
-@@ -1984,6 +2044,126 @@ static void tulip_remove_one(struct pci_
+@@ -1983,6 +2043,126 @@ static void tulip_remove_one(struct pci_
  }
  #endif /* CONFIG_TULIP_PCI */
  
  }
  #endif /* CONFIG_TULIP_PCI */
  
  #ifdef CONFIG_NET_POLL_CONTROLLER
  /*
   * Polling 'interrupt' - used by things like netconsole to send skbs
  #ifdef CONFIG_NET_POLL_CONTROLLER
  /*
   * Polling 'interrupt' - used by things like netconsole to send skbs
-@@ -2017,6 +2197,17 @@ static struct pci_driver tulip_pci_drive
+@@ -2016,6 +2196,17 @@ static struct pci_driver tulip_pci_drive
  };
  #endif
  
  };
  #endif
  
  
  static int __init tulip_init (void)
  {
  
  static int __init tulip_init (void)
  {
-@@ -2033,6 +2224,9 @@ static int __init tulip_init (void)
+@@ -2038,6 +2229,9 @@ static int __init tulip_init (void)
  #ifdef CONFIG_TULIP_PCI
        ret = pci_register_driver(&tulip_pci_driver);
  #endif
  #ifdef CONFIG_TULIP_PCI
        ret = pci_register_driver(&tulip_pci_driver);
  #endif
        return ret;
  }
  
        return ret;
  }
  
-@@ -2042,6 +2236,9 @@ static void __exit tulip_cleanup (void)
+@@ -2047,6 +2241,9 @@ static void __exit tulip_cleanup (void)
  #ifdef CONFIG_TULIP_PCI
        pci_unregister_driver (&tulip_pci_driver);
  #endif
  #ifdef CONFIG_TULIP_PCI
        pci_unregister_driver (&tulip_pci_driver);
  #endif
index 97cd62d75cd867f3c12b8b41a074acf3ce181c0a..f0f2effbe40679000f280021738186f31fa18c23 100644 (file)
        return __mtdsplit_parse_uimage(master, pparts, data,
 --- a/drivers/mtd/mtdsplit/mtdsplit_wrgg.c
 +++ b/drivers/mtd/mtdsplit/mtdsplit_wrgg.c
        return __mtdsplit_parse_uimage(master, pparts, data,
 --- a/drivers/mtd/mtdsplit/mtdsplit_wrgg.c
 +++ b/drivers/mtd/mtdsplit/mtdsplit_wrgg.c
-@@ -40,8 +40,8 @@ struct wrgg03_header {
+@@ -51,8 +51,8 @@ struct wrg_header {
  
  
  static int mtdsplit_parse_wrgg(struct mtd_info *master,
  
  
  static int mtdsplit_parse_wrgg(struct mtd_info *master,
index 504d772defca41f26ea5be794ca3a6a2e9c62b2f..c5001383097d4816740d3a1d6fd19676c12bb2e9 100644 (file)
@@ -95,7 +95,7 @@
        ret |= BMCR_ANENABLE | BMCR_ANRESTART;
        return phy_write(phydev, MII_BMCR, ret);
  }
        ret |= BMCR_ANENABLE | BMCR_ANRESTART;
        return phy_write(phydev, MII_BMCR, ret);
  }
-@@ -2007,7 +2007,7 @@ ar8xxx_phy_config_init(struct phy_device
+@@ -2012,7 +2012,7 @@ ar8xxx_phy_config_init(struct phy_device
  
        priv->phy = phydev;
  
  
        priv->phy = phydev;
  
                if (chip_is_ar8316(priv)) {
                        /* switch device has been initialized, reinit */
                        priv->dev.ports = (AR8216_NUM_PORTS - 1);
                if (chip_is_ar8316(priv)) {
                        /* switch device has been initialized, reinit */
                        priv->dev.ports = (AR8216_NUM_PORTS - 1);
-@@ -2055,7 +2055,7 @@ ar8xxx_check_link_states(struct ar8xxx_p
+@@ -2060,7 +2060,7 @@ ar8xxx_check_link_states(struct ar8xxx_p
                /* flush ARL entries for this port if it went down*/
                if (!link_new)
                        priv->chip->atu_flush_port(priv, i);
                /* flush ARL entries for this port if it went down*/
                if (!link_new)
                        priv->chip->atu_flush_port(priv, i);
                         i, link_new ? "up" : "down");
        }
  
                         i, link_new ? "up" : "down");
        }
  
-@@ -2074,10 +2074,10 @@ ar8xxx_phy_read_status(struct phy_device
+@@ -2079,10 +2079,10 @@ ar8xxx_phy_read_status(struct phy_device
        if (phydev->state == PHY_CHANGELINK)
                ar8xxx_check_link_states(priv);
  
        if (phydev->state == PHY_CHANGELINK)
                ar8xxx_check_link_states(priv);
  
        phydev->link = !!link.link;
        if (!phydev->link)
                return 0;
        phydev->link = !!link.link;
        if (!phydev->link)
                return 0;
-@@ -2107,7 +2107,7 @@ ar8xxx_phy_read_status(struct phy_device
+@@ -2112,7 +2112,7 @@ ar8xxx_phy_read_status(struct phy_device
  static int
  ar8xxx_phy_config_aneg(struct phy_device *phydev)
  {
  static int
  ar8xxx_phy_config_aneg(struct phy_device *phydev)
  {
                return 0;
  
        return genphy_config_aneg(phydev);
                return 0;
  
        return genphy_config_aneg(phydev);
-@@ -2162,15 +2162,15 @@ ar8xxx_phy_probe(struct phy_device *phyd
+@@ -2167,15 +2167,15 @@ ar8xxx_phy_probe(struct phy_device *phyd
        int ret;
  
        /* skip PHYs at unused adresses */
        int ret;
  
        /* skip PHYs at unused adresses */
                        goto found;
  
        priv = ar8xxx_create();
                        goto found;
  
        priv = ar8xxx_create();
-@@ -2179,7 +2179,7 @@ ar8xxx_phy_probe(struct phy_device *phyd
+@@ -2184,7 +2184,7 @@ ar8xxx_phy_probe(struct phy_device *phyd
                goto unlock;
        }
  
                goto unlock;
        }
  
  
        ret = ar8xxx_probe_switch(priv);
        if (ret)
  
        ret = ar8xxx_probe_switch(priv);
        if (ret)
-@@ -2200,7 +2200,7 @@ ar8xxx_phy_probe(struct phy_device *phyd
+@@ -2205,7 +2205,7 @@ ar8xxx_phy_probe(struct phy_device *phyd
  found:
        priv->use_count++;
  
  found:
        priv->use_count++;
  
                if (ar8xxx_has_gige(priv)) {
                        phydev->supported = SUPPORTED_1000baseT_Full;
                        phydev->advertising = ADVERTISED_1000baseT_Full;
                if (ar8xxx_has_gige(priv)) {
                        phydev->supported = SUPPORTED_1000baseT_Full;
                        phydev->advertising = ADVERTISED_1000baseT_Full;
-@@ -2288,21 +2288,33 @@ ar8xxx_phy_soft_reset(struct phy_device
+@@ -2293,21 +2293,33 @@ ar8xxx_phy_soft_reset(struct phy_device
        return 0;
  }
  
        return 0;
  }
  
index 52a2391ccd7516257289b15b5103b233a95da4ae..80f9708306596d92346e1377e68b47ff6f1bfe65 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
 
 --- a/net/core/net_namespace.c
 +++ b/net/core/net_namespace.c
 
 --- a/net/core/net_namespace.c
 +++ b/net/core/net_namespace.c
-@@ -361,6 +361,7 @@ struct net *get_net_ns_by_fd(int fd)
+@@ -380,6 +380,7 @@ struct net *get_net_ns_by_fd(int fd)
        return ERR_PTR(-EINVAL);
  }
  #endif
        return ERR_PTR(-EINVAL);
  }
  #endif
index 347049a9243e61d2e3990e312fa69cad11fb2b90..fb44df97e9246c3c4892666d1d55b4e4f6285826 100644 (file)
@@ -67,8 +67,8 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 +      INIT_WORK(&po->proto.pppoe.padt_work, pppoe_unbind_sock_work);
 +
        error = -EINVAL;
 +      INIT_WORK(&po->proto.pppoe.padt_work, pppoe_unbind_sock_work);
 +
        error = -EINVAL;
-       if (sp->sa_protocol != PX_PROTO_OE)
-               goto end;
+       if (sockaddr_len != sizeof(struct sockaddr_pppox))
 --- a/include/linux/if_pppox.h
 +++ b/include/linux/if_pppox.h
 @@ -19,6 +19,7 @@
 --- a/include/linux/if_pppox.h
 +++ b/include/linux/if_pppox.h
 @@ -19,6 +19,7 @@
index ffdba4d923f9347eee1bf36afd29f607f5562120..28ec03b410e3be01733135a5f1da6e5da331c225 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                                pppox_unbind_sock(sk);
                                sk->sk_state_change(sk);
                                po->pppoe_dev = NULL;
                                pppox_unbind_sock(sk);
                                sk->sk_state_change(sk);
                                po->pppoe_dev = NULL;
-@@ -775,7 +775,7 @@ static int pppoe_ioctl(struct socket *so
+@@ -779,7 +779,7 @@ static int pppoe_ioctl(struct socket *so
                struct pppox_sock *relay_po;
  
                err = -EBUSY;
                struct pppox_sock *relay_po;
  
                err = -EBUSY;
index 147e9712dbc356a9571e5848757fcd91e977c40c..8637746b5b74c3abe22f0a285f365764d81aa293 100644 (file)
@@ -62,9 +62,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 -      INIT_WORK(&po->proto.pppoe.padt_work, pppoe_unbind_sock_work);
 -
        error = -EINVAL;
 -      INIT_WORK(&po->proto.pppoe.padt_work, pppoe_unbind_sock_work);
 -
        error = -EINVAL;
-       if (sp->sa_protocol != PX_PROTO_OE)
-               goto end;
-@@ -645,8 +646,13 @@ static int pppoe_connect(struct socket *
+       if (sockaddr_len != sizeof(struct sockaddr_pppox))
+@@ -649,8 +650,13 @@ static int pppoe_connect(struct socket *
                        po->pppoe_dev = NULL;
                }
  
                        po->pppoe_dev = NULL;
                }
  
index 9f39e5ba5eaceb6d2073e7a124cd5652e548112c..51f31ea06e898a225d51f2aaba7a2faf5d86b941 100644 (file)
@@ -44,7 +44,7 @@ Closes 20532
 
 --- a/net/ipv6/ip6_output.c
 +++ b/net/ipv6/ip6_output.c
 
 --- a/net/ipv6/ip6_output.c
 +++ b/net/ipv6/ip6_output.c
-@@ -600,20 +600,22 @@ int ip6_fragment(struct sk_buff *skb, in
+@@ -602,20 +602,22 @@ int ip6_fragment(struct sk_buff *skb, in
        }
        mtu -= hlen + sizeof(struct frag_hdr);
  
        }
        mtu -= hlen + sizeof(struct frag_hdr);
  
@@ -69,7 +69,7 @@ Closes 20532
                                goto slow_path_clean;
  
                        /* Partially cloned skb? */
                                goto slow_path_clean;
  
                        /* Partially cloned skb? */
-@@ -630,8 +632,6 @@ int ip6_fragment(struct sk_buff *skb, in
+@@ -632,8 +634,6 @@ int ip6_fragment(struct sk_buff *skb, in
  
                err = 0;
                offset = 0;
  
                err = 0;
                offset = 0;
@@ -78,7 +78,7 @@ Closes 20532
                /* BUILD HEADER */
  
                *prevhdr = NEXTHDR_FRAGMENT;
                /* BUILD HEADER */
  
                *prevhdr = NEXTHDR_FRAGMENT;
-@@ -639,8 +639,11 @@ int ip6_fragment(struct sk_buff *skb, in
+@@ -641,8 +641,11 @@ int ip6_fragment(struct sk_buff *skb, in
                if (!tmp_hdr) {
                        IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)),
                                      IPSTATS_MIB_FRAGFAILS);
                if (!tmp_hdr) {
                        IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)),
                                      IPSTATS_MIB_FRAGFAILS);
@@ -91,7 +91,7 @@ Closes 20532
  
                __skb_pull(skb, hlen);
                fh = (struct frag_hdr *)__skb_push(skb, sizeof(struct frag_hdr));
  
                __skb_pull(skb, hlen);
                fh = (struct frag_hdr *)__skb_push(skb, sizeof(struct frag_hdr));
-@@ -738,7 +741,6 @@ slow_path:
+@@ -740,7 +743,6 @@ slow_path:
         */
  
        *prevhdr = NEXTHDR_FRAGMENT;
         */
  
        *prevhdr = NEXTHDR_FRAGMENT;
index f671db6e947fe169117abe0d7a0d816f592b4d32..6bbeb93cfae70cb0929dd087173de84629ca879a 100644 (file)
@@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        .get_acl =      jffs2_get_acl,
        .set_acl =      jffs2_set_acl,
        .setattr =      jffs2_setattr,
        .get_acl =      jffs2_get_acl,
        .set_acl =      jffs2_set_acl,
        .setattr =      jffs2_setattr,
-@@ -756,8 +756,27 @@ static int jffs2_mknod (struct inode *di
+@@ -752,8 +752,27 @@ static int jffs2_mknod (struct inode *di
        return ret;
  }
  
        return ret;
  }
  
@@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  {
        int ret;
        struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb);
  {
        int ret;
        struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb);
-@@ -765,6 +784,9 @@ static int jffs2_rename (struct inode *o
+@@ -761,6 +780,9 @@ static int jffs2_rename (struct inode *o
        uint8_t type;
        uint32_t now;
  
        uint8_t type;
        uint32_t now;
  
@@ -66,7 +66,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        /* The VFS will check for us and prevent trying to rename a
         * file over a directory and vice versa, but if it's a directory,
         * the VFS can't check whether the victim is empty. The filesystem
        /* The VFS will check for us and prevent trying to rename a
         * file over a directory and vice versa, but if it's a directory,
         * the VFS can't check whether the victim is empty. The filesystem
-@@ -828,9 +850,14 @@ static int jffs2_rename (struct inode *o
+@@ -824,9 +846,14 @@ static int jffs2_rename (struct inode *o
        if (S_ISDIR(old_dentry->d_inode->i_mode) && !victim_f)
                inc_nlink(new_dir_i);
  
        if (S_ISDIR(old_dentry->d_inode->i_mode) && !victim_f)
                inc_nlink(new_dir_i);
  
index be87c3507e9161d2244625b26a1cd9948477421f..e0ed3312a2fecbc1aa42ced938d69edb7e1443d5 100644 (file)
@@ -7,7 +7,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/fs/jffs2/dir.c
 +++ b/fs/jffs2/dir.c
 
 --- a/fs/jffs2/dir.c
 +++ b/fs/jffs2/dir.c
-@@ -784,7 +784,7 @@ static int jffs2_rename (struct inode *o
+@@ -780,7 +780,7 @@ static int jffs2_rename (struct inode *o
        uint8_t type;
        uint32_t now;
  
        uint8_t type;
        uint32_t now;
  
@@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                return -EINVAL;
  
        /* The VFS will check for us and prevent trying to rename a
                return -EINVAL;
  
        /* The VFS will check for us and prevent trying to rename a
-@@ -792,7 +792,7 @@ static int jffs2_rename (struct inode *o
+@@ -788,7 +788,7 @@ static int jffs2_rename (struct inode *o
         * the VFS can't check whether the victim is empty. The filesystem
         * needs to do that for itself.
         */
         * the VFS can't check whether the victim is empty. The filesystem
         * needs to do that for itself.
         */
@@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                victim_f = JFFS2_INODE_INFO(new_dentry->d_inode);
                if (S_ISDIR(new_dentry->d_inode->i_mode)) {
                        struct jffs2_full_dirent *fd;
                victim_f = JFFS2_INODE_INFO(new_dentry->d_inode);
                if (S_ISDIR(new_dentry->d_inode->i_mode)) {
                        struct jffs2_full_dirent *fd;
-@@ -827,7 +827,7 @@ static int jffs2_rename (struct inode *o
+@@ -823,7 +823,7 @@ static int jffs2_rename (struct inode *o
        if (ret)
                return ret;
  
        if (ret)
                return ret;
  
@@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                /* There was a victim. Kill it off nicely */
                if (S_ISDIR(new_dentry->d_inode->i_mode))
                        clear_nlink(new_dentry->d_inode);
                /* There was a victim. Kill it off nicely */
                if (S_ISDIR(new_dentry->d_inode->i_mode))
                        clear_nlink(new_dentry->d_inode);
-@@ -853,6 +853,12 @@ static int jffs2_rename (struct inode *o
+@@ -849,6 +849,12 @@ static int jffs2_rename (struct inode *o
        if (flags & RENAME_WHITEOUT)
                /* Replace with whiteout */
                ret = jffs2_whiteout(old_dir_i, old_dentry);
        if (flags & RENAME_WHITEOUT)
                /* Replace with whiteout */
                ret = jffs2_whiteout(old_dir_i, old_dentry);
@@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        else
                /* Unlink the original */
                ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i),
        else
                /* Unlink the original */
                ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i),
-@@ -879,7 +885,7 @@ static int jffs2_rename (struct inode *o
+@@ -875,7 +881,7 @@ static int jffs2_rename (struct inode *o
                return ret;
        }
  
                return ret;
        }
  
index ae018cbab0c9c9466b556dcb2474b5f54a64a464..c75cc9ded154bc00f716b12ee6cbe757deefcd12 100644 (file)
@@ -61,7 +61,7 @@ Signed-off-by: Petr Å tetiar <ynezz@true.cz>
  /* standard device layouts supported by this driver */
  enum qcserial_layouts {
        QCSERIAL_G2K = 0,       /* Gobi 2000 */
  /* standard device layouts supported by this driver */
  enum qcserial_layouts {
        QCSERIAL_G2K = 0,       /* Gobi 2000 */
-@@ -176,6 +178,38 @@ static const struct usb_device_id id_tab
+@@ -181,6 +183,38 @@ static const struct usb_device_id id_tab
  };
  MODULE_DEVICE_TABLE(usb, id_table);
  
  };
  MODULE_DEVICE_TABLE(usb, id_table);
  
@@ -100,7 +100,7 @@ Signed-off-by: Petr Å tetiar <ynezz@true.cz>
  static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
  {
        struct usb_host_interface *intf = serial->interface->cur_altsetting;
  static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
  {
        struct usb_host_interface *intf = serial->interface->cur_altsetting;
-@@ -244,6 +278,11 @@ static int qcprobe(struct usb_serial *se
+@@ -249,6 +283,11 @@ static int qcprobe(struct usb_serial *se
                        altsetting = -1;
                break;
        case QCSERIAL_G2K:
                        altsetting = -1;
                break;
        case QCSERIAL_G2K:
index ee0d7b2cccba49c3739623033eeab868c236a455..ae3533db194362bedf5dba13c1d98663100f849b 100644 (file)
@@ -48,7 +48,7 @@ Signed-off-by: Petr Å tetiar <ynezz@true.cz>
 
 --- a/drivers/net/usb/qmi_wwan.c
 +++ b/drivers/net/usb/qmi_wwan.c
 
 --- a/drivers/net/usb/qmi_wwan.c
 +++ b/drivers/net/usb/qmi_wwan.c
-@@ -825,6 +825,7 @@ static const struct usb_device_id produc
+@@ -836,6 +836,7 @@ static const struct usb_device_id produc
        {QMI_GOBI_DEVICE(0x05c6, 0x9245)},      /* Samsung Gobi 2000 Modem device (VL176) */
        {QMI_GOBI_DEVICE(0x03f0, 0x251d)},      /* HP Gobi 2000 Modem device (VP412) */
        {QMI_GOBI_DEVICE(0x05c6, 0x9215)},      /* Acer Gobi 2000 Modem device (VP413) */
        {QMI_GOBI_DEVICE(0x05c6, 0x9245)},      /* Samsung Gobi 2000 Modem device (VL176) */
        {QMI_GOBI_DEVICE(0x03f0, 0x251d)},      /* HP Gobi 2000 Modem device (VP412) */
        {QMI_GOBI_DEVICE(0x05c6, 0x9215)},      /* Acer Gobi 2000 Modem device (VP413) */
@@ -56,7 +56,7 @@ Signed-off-by: Petr Å tetiar <ynezz@true.cz>
        {QMI_GOBI_DEVICE(0x05c6, 0x9265)},      /* Asus Gobi 2000 Modem device (VR305) */
        {QMI_GOBI_DEVICE(0x05c6, 0x9235)},      /* Top Global Gobi 2000 Modem device (VR306) */
        {QMI_GOBI_DEVICE(0x05c6, 0x9275)},      /* iRex Technologies Gobi 2000 Modem device (VR307) */
        {QMI_GOBI_DEVICE(0x05c6, 0x9265)},      /* Asus Gobi 2000 Modem device (VR305) */
        {QMI_GOBI_DEVICE(0x05c6, 0x9235)},      /* Top Global Gobi 2000 Modem device (VR306) */
        {QMI_GOBI_DEVICE(0x05c6, 0x9275)},      /* iRex Technologies Gobi 2000 Modem device (VR307) */
-@@ -856,10 +857,24 @@ static const struct usb_device_id produc
+@@ -867,6 +868,19 @@ static const struct usb_device_id produc
  };
  MODULE_DEVICE_TABLE(usb, products);
  
  };
  MODULE_DEVICE_TABLE(usb, products);
  
@@ -65,9 +65,9 @@ Signed-off-by: Petr Å tetiar <ynezz@true.cz>
 +      struct usb_device *dev = interface_to_usbdev(intf);
 +
 +      if (dev->actconfig &&
 +      struct usb_device *dev = interface_to_usbdev(intf);
 +
 +      if (dev->actconfig &&
-+          le16_to_cpu(dev->descriptor.idVendor) == 0x05c6 &&
-+          le16_to_cpu(dev->descriptor.idProduct) == 0x9215 &&
-+          dev->actconfig->desc.bNumInterfaces == 5)
++         le16_to_cpu(dev->descriptor.idVendor) == 0x05c6 &&
++         le16_to_cpu(dev->descriptor.idProduct) == 0x9215 &&
++         dev->actconfig->desc.bNumInterfaces == 5)
 +              return true;
 +
 +      return false;
 +              return true;
 +
 +      return false;
@@ -76,13 +76,8 @@ Signed-off-by: Petr Å tetiar <ynezz@true.cz>
  static int qmi_wwan_probe(struct usb_interface *intf,
                          const struct usb_device_id *prod)
  {
  static int qmi_wwan_probe(struct usb_interface *intf,
                          const struct usb_device_id *prod)
  {
-       struct usb_device_id *id = (struct usb_device_id *)prod;
-+      struct usb_interface_descriptor *desc = &intf->cur_altsetting->desc;
-       /* Workaround to enable dynamic IDs.  This disables usbnet
-        * blacklisting functionality.  Which, if required, can be
-@@ -871,6 +886,12 @@ static int qmi_wwan_probe(struct usb_int
-               id->driver_info = (unsigned long)&qmi_wwan_info;
+@@ -895,6 +909,12 @@ static int qmi_wwan_probe(struct usb_int
+               return -ENODEV;
        }
  
 +      /* Quectel EC20 quirk where we've QMI on interface 4 instead of 0 */
        }
  
 +      /* Quectel EC20 quirk where we've QMI on interface 4 instead of 0 */
index b98ea4e9d860fe1165d9ad010ae152b8a4992ca5..60ea5c20854f908eda814a073fa07ff6bdf51df5 100644 (file)
@@ -1,6 +1,6 @@
 --- a/Makefile
 +++ b/Makefile
 --- a/Makefile
 +++ b/Makefile
-@@ -409,7 +409,7 @@ KBUILD_CFLAGS_KERNEL :=
+@@ -408,7 +408,7 @@ KBUILD_CFLAGS_KERNEL :=
  KBUILD_AFLAGS   := -D__ASSEMBLY__
  KBUILD_AFLAGS_MODULE  := -DMODULE
  KBUILD_CFLAGS_MODULE  := -DMODULE
  KBUILD_AFLAGS   := -D__ASSEMBLY__
  KBUILD_AFLAGS_MODULE  := -DMODULE
  KBUILD_CFLAGS_MODULE  := -DMODULE
index dbee0905473d97c7d09b028767f2f4a72da79d58..39fa32ffa273f9b7856dadbd6ed985c5b6c2ddf5 100644 (file)
@@ -1,6 +1,6 @@
 --- a/include/uapi/linux/spi/spidev.h
 +++ b/include/uapi/linux/spi/spidev.h
 --- a/include/uapi/linux/spi/spidev.h
 +++ b/include/uapi/linux/spi/spidev.h
-@@ -111,7 +111,7 @@ struct spi_ioc_transfer {
+@@ -112,7 +112,7 @@ struct spi_ioc_transfer {
  
  /* not all platforms use <asm-generic/ioctl.h> or _IOC_TYPECHECK() ... */
  #define SPI_MSGSIZE(N) \
  
  /* not all platforms use <asm-generic/ioctl.h> or _IOC_TYPECHECK() ... */
  #define SPI_MSGSIZE(N) \
index 10d698f96143dce4743a3763261dc5bf8f290822..6f7ba681c190f84394f7da2bde64ec7619f57ee2 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
  
  /*
   *    IEEE 802.3 Ethernet magic constants.  The frame sizes omit the preamble
  
  /*
   *    IEEE 802.3 Ethernet magic constants.  The frame sizes omit the preamble
-@@ -134,11 +135,13 @@
+@@ -135,11 +136,13 @@
   *    This is an Ethernet frame header.
   */
  
   *    This is an Ethernet frame header.
   */
  
index c437a140f0fb63fc811ed6e9f58b1ead80599dad..382b44a939a955f2cb99f8a967d623d174ef3d59 100644 (file)
@@ -8,7 +8,7 @@ Signed-off-by: George Kashperko <george@znau.edu.ua>
  1 file changed, 1 insertion(+)
 --- a/drivers/mtd/chips/cfi_cmdset_0002.c
 +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
  1 file changed, 1 insertion(+)
 --- a/drivers/mtd/chips/cfi_cmdset_0002.c
 +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
-@@ -1830,6 +1830,7 @@ static int __xipram do_write_buffer(stru
+@@ -1831,6 +1831,7 @@ static int __xipram do_write_buffer(stru
  
        /* Write Buffer Load */
        map_write(map, CMD(0x25), cmd_adr);
  
        /* Write Buffer Load */
        map_write(map, CMD(0x25), cmd_adr);
index 7c95ce7093b4dc86dd4eae5ef0a5c8b231640101..950970dbc9745b4f8514547a847d91b73c061109 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -497,6 +497,7 @@
+@@ -497,6 +497,7 @@ static const struct spi_device_id spi_no
        { "en25q32b",   INFO(0x1c3016, 0, 64 * 1024,   64, 0) },
        { "en25p64",    INFO(0x1c2017, 0, 64 * 1024,  128, 0) },
        { "en25q64",    INFO(0x1c3017, 0, 64 * 1024,  128, SECT_4K) },
        { "en25q32b",   INFO(0x1c3016, 0, 64 * 1024,   64, 0) },
        { "en25p64",    INFO(0x1c2017, 0, 64 * 1024,  128, 0) },
        { "en25q64",    INFO(0x1c3017, 0, 64 * 1024,  128, SECT_4K) },
index bca3487d186ef47c6cbbf8ffcc5ee6241b47ef5f..b2b46ac6aa8e2a22267274db4d6cb5e509451c7b 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/drivers/mtd/ubi/build.c
 +++ b/drivers/mtd/ubi/build.c
 
 --- a/drivers/mtd/ubi/build.c
 +++ b/drivers/mtd/ubi/build.c
-@@ -1212,6 +1212,49 @@ static struct mtd_info * __init open_mtd
+@@ -1223,6 +1223,49 @@ static struct mtd_info * __init open_mtd
        return mtd;
  }
  
        return mtd;
  }
  
@@ -61,7 +61,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  static int __init ubi_init(void)
  {
        int err, i, k;
  static int __init ubi_init(void)
  {
        int err, i, k;
-@@ -1301,6 +1344,12 @@ static int __init ubi_init(void)
+@@ -1312,6 +1355,12 @@ static int __init ubi_init(void)
                }
        }
  
                }
        }
  
index e5c7a77b46f21eec882384a38737d1040d662b27..b96402fd3ed1c7fcc489d8ba0bed92957be7e643 100644 (file)
@@ -57,9 +57,9 @@
 +      ip_checkdefault(&e->ip);
 +
        j = 0;
 +      ip_checkdefault(&e->ip);
 +
        j = 0;
+       memset(&mtpar, 0, sizeof(mtpar));
        mtpar.net       = net;
        mtpar.net       = net;
-       mtpar.table     = name;
-@@ -942,6 +970,7 @@ copy_entries_to_user(unsigned int total_
+@@ -943,6 +971,7 @@ copy_entries_to_user(unsigned int total_
        const struct xt_table_info *private = table->private;
        int ret = 0;
        const void *loc_cpu_entry;
        const struct xt_table_info *private = table->private;
        int ret = 0;
        const void *loc_cpu_entry;
@@ -67,7 +67,7 @@
  
        counters = alloc_counters(table);
        if (IS_ERR(counters))
  
        counters = alloc_counters(table);
        if (IS_ERR(counters))
-@@ -973,6 +1002,14 @@ copy_entries_to_user(unsigned int total_
+@@ -974,6 +1003,14 @@ copy_entries_to_user(unsigned int total_
                        goto free_counters;
                }
  
                        goto free_counters;
                }
  
@@ -82,7 +82,7 @@
                for (i = sizeof(struct ipt_entry);
                     i < e->target_offset;
                     i += m->u.match_size) {
                for (i = sizeof(struct ipt_entry);
                     i < e->target_offset;
                     i += m->u.match_size) {
-@@ -1379,12 +1416,15 @@ compat_copy_entry_to_user(struct ipt_ent
+@@ -1380,12 +1417,15 @@ compat_copy_entry_to_user(struct ipt_ent
        compat_uint_t origsize;
        const struct xt_entry_match *ematch;
        int ret = 0;
        compat_uint_t origsize;
        const struct xt_entry_match *ematch;
        int ret = 0;
index ec7383e114a82acc7a3d89a6b93ffc14a83144f9..81e296e0315cfc47a17a4a8c526fccefe4ee3e3d 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #define PACKET_FANOUT_LB              1
 --- a/net/packet/af_packet.c
 +++ b/net/packet/af_packet.c
  #define PACKET_FANOUT_LB              1
 --- a/net/packet/af_packet.c
 +++ b/net/packet/af_packet.c
-@@ -1529,6 +1529,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1551,6 +1551,7 @@ static int packet_rcv_spkt(struct sk_buf
  {
        struct sock *sk;
        struct sockaddr_pkt *spkt;
  {
        struct sock *sk;
        struct sockaddr_pkt *spkt;
@@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        /*
         *      When we registered the protocol we saved the socket in the data
  
        /*
         *      When we registered the protocol we saved the socket in the data
-@@ -1536,6 +1537,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1558,6 +1559,7 @@ static int packet_rcv_spkt(struct sk_buf
         */
  
        sk = pt->af_packet_priv;
         */
  
        sk = pt->af_packet_priv;
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        /*
         *      Yank back the headers [hope the device set this
  
        /*
         *      Yank back the headers [hope the device set this
-@@ -1548,7 +1550,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1570,7 +1572,7 @@ static int packet_rcv_spkt(struct sk_buf
         *      so that this procedure is noop.
         */
  
         *      so that this procedure is noop.
         */
  
@@ -51,7 +51,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                goto out;
  
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto out;
  
        if (!net_eq(dev_net(dev), sock_net(sk)))
-@@ -1747,12 +1749,12 @@ static int packet_rcv(struct sk_buff *sk
+@@ -1769,12 +1771,12 @@ static int packet_rcv(struct sk_buff *sk
        int skb_len = skb->len;
        unsigned int snaplen, res;
  
        int skb_len = skb->len;
        unsigned int snaplen, res;
  
@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
-@@ -1872,12 +1874,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -1894,12 +1896,12 @@ static int tpacket_rcv(struct sk_buff *s
        BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
        BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
  
        BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
        BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
  
@@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
-@@ -2831,6 +2833,7 @@ static int packet_create(struct net *net
+@@ -2862,6 +2864,7 @@ static int packet_create(struct net *net
        spin_lock_init(&po->bind_lock);
        mutex_init(&po->pg_vec_lock);
        po->prot_hook.func = packet_rcv;
        spin_lock_init(&po->bind_lock);
        mutex_init(&po->pg_vec_lock);
        po->prot_hook.func = packet_rcv;
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        if (sock->type == SOCK_PACKET)
                po->prot_hook.func = packet_rcv_spkt;
  
        if (sock->type == SOCK_PACKET)
                po->prot_hook.func = packet_rcv_spkt;
-@@ -3425,6 +3428,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3485,6 +3488,16 @@ packet_setsockopt(struct socket *sock, i
                po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
                return 0;
        }
                po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
                return 0;
        }
@@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        default:
                return -ENOPROTOOPT;
        }
        default:
                return -ENOPROTOOPT;
        }
-@@ -3476,6 +3489,13 @@ static int packet_getsockopt(struct sock
+@@ -3536,6 +3549,13 @@ static int packet_getsockopt(struct sock
        case PACKET_VNET_HDR:
                val = po->has_vnet_hdr;
                break;
        case PACKET_VNET_HDR:
                val = po->has_vnet_hdr;
                break;
index 1226770a3b43629698e44b6ca93b452c7c6abe07..642cf03d33d4ae4130995f5150c885fc221226ae 100644 (file)
@@ -372,7 +372,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
  
 --- a/net/bridge/br_sysfs_if.c
 +++ b/net/bridge/br_sysfs_if.c
  
 --- a/net/bridge/br_sysfs_if.c
 +++ b/net/bridge/br_sysfs_if.c
-@@ -202,6 +202,7 @@ static BRPORT_ATTR(multicast_router, S_I
+@@ -187,6 +187,7 @@ static BRPORT_ATTR(multicast_router, S_I
                   store_multicast_router);
  
  BRPORT_ATTR_FLAG(multicast_fast_leave, BR_MULTICAST_FAST_LEAVE);
                   store_multicast_router);
  
  BRPORT_ATTR_FLAG(multicast_fast_leave, BR_MULTICAST_FAST_LEAVE);
@@ -380,11 +380,11 @@ Implement optinal multicast->unicast conversion for igmp snooping
  #endif
  
  static const struct brport_attribute *brport_attrs[] = {
  #endif
  
  static const struct brport_attribute *brport_attrs[] = {
-@@ -228,6 +229,7 @@ static const struct brport_attribute *br
+@@ -213,6 +214,7 @@ static const struct brport_attribute *br
  #ifdef CONFIG_BRIDGE_IGMP_SNOOPING
        &brport_attr_multicast_router,
        &brport_attr_multicast_fast_leave,
 +      &brport_attr_multicast_to_unicast,
  #endif
  #ifdef CONFIG_BRIDGE_IGMP_SNOOPING
        &brport_attr_multicast_router,
        &brport_attr_multicast_fast_leave,
 +      &brport_attr_multicast_to_unicast,
  #endif
-       &brport_attr_isolate_mode,
+       &brport_attr_isolated,
        NULL
        NULL
index eb9b4bfd151ae7be856bf54d6392a8404c685dce..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,20 +0,0 @@
---- a/drivers/net/ppp/pppoe.c
-+++ b/drivers/net/ppp/pppoe.c
-@@ -859,7 +859,7 @@ static int pppoe_sendmsg(struct kiocb *i
-               goto end;
--      skb = sock_wmalloc(sk, total_len + dev->hard_header_len + 32,
-+      skb = sock_wmalloc(sk, total_len + dev->hard_header_len + 32 + NET_SKB_PAD,
-                          0, GFP_KERNEL);
-       if (!skb) {
-               error = -ENOMEM;
-@@ -867,7 +867,7 @@ static int pppoe_sendmsg(struct kiocb *i
-       }
-       /* Reserve space for headers. */
--      skb_reserve(skb, dev->hard_header_len);
-+      skb_reserve(skb, dev->hard_header_len + NET_SKB_PAD);
-       skb_reset_network_header(skb);
-       skb->dev = dev;
index fe62110f0659b27d69cb633d4365d14135d9e5f4..ebe5da4ec0c287c6702064fed711cbfab4f29a00 100644 (file)
@@ -1,6 +1,6 @@
 --- a/net/netlink/af_netlink.c
 +++ b/net/netlink/af_netlink.c
 --- a/net/netlink/af_netlink.c
 +++ b/net/netlink/af_netlink.c
-@@ -1107,23 +1107,7 @@ void netlink_detachskb(struct sock *sk,
+@@ -1154,23 +1154,7 @@ void netlink_detachskb(struct sock *sk,
  
  static struct sk_buff *netlink_trim(struct sk_buff *skb, gfp_t allocation)
  {
  
  static struct sk_buff *netlink_trim(struct sk_buff *skb, gfp_t allocation)
  {
index 3948d726b82a9bbb8f6e1ad22752f3218884d445..c9686f1f01f88c0f067bb53e16f17c3e8735bacc 100644 (file)
@@ -132,7 +132,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        }
        return &ip6n->tnls[prio][h];
  }
        }
        return &ip6n->tnls[prio][h];
  }
-@@ -388,6 +397,12 @@ ip6_tnl_dev_uninit(struct net_device *de
+@@ -391,6 +400,12 @@ ip6_tnl_dev_uninit(struct net_device *de
        struct net *net = t->net;
        struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id);
  
        struct net *net = t->net;
        struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id);
  
@@ -145,7 +145,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        if (dev == ip6n->fb_tnl_dev)
                RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL);
        else
        if (dev == ip6n->fb_tnl_dev)
                RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL);
        else
-@@ -781,6 +796,108 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t,
+@@ -784,6 +799,108 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t,
  }
  EXPORT_SYMBOL_GPL(ip6_tnl_rcv_ctl);
  
  }
  EXPORT_SYMBOL_GPL(ip6_tnl_rcv_ctl);
  
@@ -254,7 +254,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  /**
   * ip6_tnl_rcv - decapsulate IPv6 packet and retransmit it locally
   *   @skb: received socket buffer
  /**
   * ip6_tnl_rcv - decapsulate IPv6 packet and retransmit it locally
   *   @skb: received socket buffer
-@@ -825,6 +942,26 @@ static int ip6_tnl_rcv(struct sk_buff *s
+@@ -828,6 +945,26 @@ static int ip6_tnl_rcv(struct sk_buff *s
                skb_reset_network_header(skb);
                skb->protocol = htons(protocol);
                memset(skb->cb, 0, sizeof(struct inet6_skb_parm));
                skb_reset_network_header(skb);
                skb->protocol = htons(protocol);
                memset(skb->cb, 0, sizeof(struct inet6_skb_parm));
@@ -281,7 +281,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  
                __skb_tunnel_rx(skb, t->dev, t->net);
  
  
                __skb_tunnel_rx(skb, t->dev, t->net);
  
-@@ -1086,6 +1223,7 @@ ip4ip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1089,6 +1226,7 @@ ip4ip6_tnl_xmit(struct sk_buff *skb, str
        __u8 dsfield;
        __u32 mtu;
        int err;
        __u8 dsfield;
        __u32 mtu;
        int err;
@@ -289,7 +289,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  
        if ((t->parms.proto != IPPROTO_IPIP && t->parms.proto != 0) ||
            !ip6_tnl_xmit_ctl(t))
  
        if ((t->parms.proto != IPPROTO_IPIP && t->parms.proto != 0) ||
            !ip6_tnl_xmit_ctl(t))
-@@ -1105,6 +1243,18 @@ ip4ip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1108,6 +1246,18 @@ ip4ip6_tnl_xmit(struct sk_buff *skb, str
        if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)
                fl6.flowi6_mark = skb->mark;
  
        if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)
                fl6.flowi6_mark = skb->mark;
  
@@ -308,7 +308,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        err = ip6_tnl_xmit2(skb, dev, dsfield, &fl6, encap_limit, &mtu);
        if (err != 0) {
                /* XXX: send ICMP error even if DF is not set. */
        err = ip6_tnl_xmit2(skb, dev, dsfield, &fl6, encap_limit, &mtu);
        if (err != 0) {
                /* XXX: send ICMP error even if DF is not set. */
-@@ -1273,6 +1423,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
+@@ -1276,6 +1426,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
        t->parms.flowinfo = p->flowinfo;
        t->parms.link = p->link;
        t->parms.proto = p->proto;
        t->parms.flowinfo = p->flowinfo;
        t->parms.link = p->link;
        t->parms.proto = p->proto;
@@ -323,7 +323,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        ip6_tnl_dst_reset(t);
        ip6_tnl_link_config(t);
        return 0;
        ip6_tnl_dst_reset(t);
        ip6_tnl_link_config(t);
        return 0;
-@@ -1303,6 +1461,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
+@@ -1306,6 +1464,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
        p->flowinfo = u->flowinfo;
        p->link = u->link;
        p->proto = u->proto;
        p->flowinfo = u->flowinfo;
        p->link = u->link;
        p->proto = u->proto;
@@ -331,7 +331,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        memcpy(p->name, u->name, sizeof(u->name));
  }
  
        memcpy(p->name, u->name, sizeof(u->name));
  }
  
-@@ -1578,6 +1737,15 @@ static int ip6_tnl_validate(struct nlatt
+@@ -1581,6 +1740,15 @@ static int ip6_tnl_validate(struct nlatt
        return 0;
  }
  
        return 0;
  }
  
@@ -347,7 +347,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  static void ip6_tnl_netlink_parms(struct nlattr *data[],
                                  struct __ip6_tnl_parm *parms)
  {
  static void ip6_tnl_netlink_parms(struct nlattr *data[],
                                  struct __ip6_tnl_parm *parms)
  {
-@@ -1611,6 +1779,46 @@ static void ip6_tnl_netlink_parms(struct
+@@ -1614,6 +1782,46 @@ static void ip6_tnl_netlink_parms(struct
  
        if (data[IFLA_IPTUN_PROTO])
                parms->proto = nla_get_u8(data[IFLA_IPTUN_PROTO]);
  
        if (data[IFLA_IPTUN_PROTO])
                parms->proto = nla_get_u8(data[IFLA_IPTUN_PROTO]);
@@ -394,7 +394,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  }
  
  static int ip6_tnl_newlink(struct net *src_net, struct net_device *dev,
  }
  
  static int ip6_tnl_newlink(struct net *src_net, struct net_device *dev,
-@@ -1663,6 +1871,12 @@ static void ip6_tnl_dellink(struct net_d
+@@ -1666,6 +1874,12 @@ static void ip6_tnl_dellink(struct net_d
  
  static size_t ip6_tnl_get_size(const struct net_device *dev)
  {
  
  static size_t ip6_tnl_get_size(const struct net_device *dev)
  {
@@ -407,7 +407,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        return
                /* IFLA_IPTUN_LINK */
                nla_total_size(4) +
        return
                /* IFLA_IPTUN_LINK */
                nla_total_size(4) +
-@@ -1680,6 +1894,24 @@ static size_t ip6_tnl_get_size(const str
+@@ -1683,6 +1897,24 @@ static size_t ip6_tnl_get_size(const str
                nla_total_size(4) +
                /* IFLA_IPTUN_PROTO */
                nla_total_size(1) +
                nla_total_size(4) +
                /* IFLA_IPTUN_PROTO */
                nla_total_size(1) +
@@ -432,7 +432,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
                0;
  }
  
                0;
  }
  
-@@ -1687,6 +1919,9 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -1690,6 +1922,9 @@ static int ip6_tnl_fill_info(struct sk_b
  {
        struct ip6_tnl *tunnel = netdev_priv(dev);
        struct __ip6_tnl_parm *parm = &tunnel->parms;
  {
        struct ip6_tnl *tunnel = netdev_priv(dev);
        struct __ip6_tnl_parm *parm = &tunnel->parms;
@@ -442,7 +442,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  
        if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
            nla_put(skb, IFLA_IPTUN_LOCAL, sizeof(struct in6_addr),
  
        if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
            nla_put(skb, IFLA_IPTUN_LOCAL, sizeof(struct in6_addr),
-@@ -1697,8 +1932,27 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -1700,8 +1935,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) ||
            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) ||
@@ -471,7 +471,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        return 0;
  
  nla_put_failure:
        return 0;
  
  nla_put_failure:
-@@ -1714,6 +1968,7 @@ static const struct nla_policy ip6_tnl_p
+@@ -1717,6 +1971,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 },
        [IFLA_IPTUN_FLOWINFO]           = { .type = NLA_U32 },
        [IFLA_IPTUN_FLAGS]              = { .type = NLA_U32 },
        [IFLA_IPTUN_PROTO]              = { .type = NLA_U8 },
index de8745cdc39d36ad033c7f55aff25f2b3c6d724b..95d357813901a6c7805ede37daf38427ecf9d3fc 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- a/net/ipv6/ip6_output.c
 +++ b/net/ipv6/ip6_output.c
 
 --- a/net/ipv6/ip6_output.c
 +++ b/net/ipv6/ip6_output.c
-@@ -906,21 +906,45 @@ static int ip6_dst_lookup_tail(struct so
+@@ -908,21 +908,45 @@ static int ip6_dst_lookup_tail(struct so
  #endif
        int err;
  
  #endif
        int err;
  
@@ -81,7 +81,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
         * Here if the dst entry we've looked up
 --- a/net/ipv6/route.c
 +++ b/net/ipv6/route.c
         * Here if the dst entry we've looked up
 --- a/net/ipv6/route.c
 +++ b/net/ipv6/route.c
-@@ -2184,9 +2184,10 @@ int ip6_route_get_saddr(struct net *net,
+@@ -2185,9 +2185,10 @@ int ip6_route_get_saddr(struct net *net,
                        unsigned int prefs,
                        struct in6_addr *saddr)
  {
                        unsigned int prefs,
                        struct in6_addr *saddr)
  {
index f999d44df0b4eb6a19eec494e55275807c0d87be..ac4a0a6bf915e89fff2b72a0e79e99d8acca59f7 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),
  static const struct rt6_info ip6_blk_hole_entry_template = {
        .dst = {
                .__refcnt       = ATOMIC_INIT(1),
-@@ -1578,6 +1595,11 @@ int ip6_route_add(struct fib6_config *cf
+@@ -1579,6 +1596,11 @@ int ip6_route_add(struct fib6_config *cf
                        rt->dst.output = ip6_pkt_prohibit_out;
                        rt->dst.input = ip6_pkt_prohibit;
                        break;
                        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:
                default:
                        rt->dst.error = (cfg->fc_type == RTN_THROW) ? -EAGAIN
                case RTN_THROW:
                default:
                        rt->dst.error = (cfg->fc_type == RTN_THROW) ? -EAGAIN
-@@ -2141,6 +2163,17 @@ static int ip6_pkt_prohibit_out(struct s
+@@ -2142,6 +2164,17 @@ static int ip6_pkt_prohibit_out(struct s
        return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
  }
  
        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.
   */
  /*
   *    Allocate a dst for local (unicast / anycast) address.
   */
-@@ -2365,7 +2398,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -2368,7 +2401,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 ||
        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)
                cfg->fc_flags |= RTF_REJECT;
  
        if (rtm->rtm_type == RTN_LOCAL)
-@@ -2567,6 +2601,9 @@ static int rt6_fill_node(struct net *net
+@@ -2570,6 +2604,9 @@ static int rt6_fill_node(struct net *net
                case -EACCES:
                        rtm->rtm_type = RTN_PROHIBIT;
                        break;
                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;
                case -EAGAIN:
                        rtm->rtm_type = RTN_THROW;
                        break;
-@@ -2825,6 +2862,8 @@ static int ip6_route_dev_notify(struct n
+@@ -2828,6 +2865,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);
  #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
                net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
                net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
  #endif
-@@ -3047,6 +3086,17 @@ static int __net_init ip6_route_net_init
+@@ -3054,6 +3093,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);
        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);
@@ -220,7 +220,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  #endif
  
        net->ipv6.sysctl.flush_delay = 0;
  #endif
  
        net->ipv6.sysctl.flush_delay = 0;
-@@ -3065,6 +3115,8 @@ out:
+@@ -3072,6 +3122,8 @@ out:
        return ret;
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
        return ret;
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -229,7 +229,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  out_ip6_prohibit_entry:
        kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_entry:
  out_ip6_prohibit_entry:
        kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_entry:
-@@ -3082,6 +3134,7 @@ static void __net_exit ip6_route_net_exi
+@@ -3089,6 +3141,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);
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
        kfree(net->ipv6.ip6_prohibit_entry);
        kfree(net->ipv6.ip6_blk_hole_entry);
@@ -237,7 +237,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  #endif
        dst_entries_destroy(&net->ipv6.ip6_dst_ops);
  }
  #endif
        dst_entries_destroy(&net->ipv6.ip6_dst_ops);
  }
-@@ -3155,6 +3208,9 @@ void __init ip6_route_init_special_entri
+@@ -3162,6 +3215,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);
        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 da4b58883a70bf22e4c8c02cde0250311935c49a..1f2f89daa9aa750f46ee1582b3fa3bd5cc07ca0f 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
 
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -4006,6 +4006,9 @@ static enum gro_result dev_gro_receive(s
+@@ -4028,6 +4028,9 @@ static enum gro_result dev_gro_receive(s
        enum gro_result ret;
        int grow;
  
        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;
  
        if (!(skb->dev->features & NETIF_F_GRO))
                goto normal;
  
-@@ -5077,6 +5080,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -5099,6 +5102,48 @@ static void __netdev_adjacent_dev_unlink
                                           &upper_dev->adj_list.lower);
  }
  
                                           &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)
  static int __netdev_upper_dev_link(struct net_device *dev,
                                   struct net_device *upper_dev, bool master,
                                   void *private)
-@@ -5137,6 +5182,7 @@ static int __netdev_upper_dev_link(struc
+@@ -5159,6 +5204,7 @@ static int __netdev_upper_dev_link(struc
                        goto rollback_lower_mesh;
        }
  
                        goto rollback_lower_mesh;
        }
  
@@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        call_netdevice_notifiers(NETDEV_CHANGEUPPER, dev);
        return 0;
  
        call_netdevice_notifiers(NETDEV_CHANGEUPPER, dev);
        return 0;
  
-@@ -5254,6 +5300,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -5276,6 +5322,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);
  
        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(NETDEV_CHANGEUPPER, dev);
  }
  EXPORT_SYMBOL(netdev_upper_dev_unlink);
        call_netdevice_notifiers(NETDEV_CHANGEUPPER, dev);
  }
  EXPORT_SYMBOL(netdev_upper_dev_unlink);
-@@ -5773,6 +5820,7 @@ int dev_set_mac_address(struct net_devic
+@@ -5795,6 +5842,7 @@ int dev_set_mac_address(struct net_devic
        if (err)
                return err;
        dev->addr_assign_type = NET_ADDR_SET;
        if (err)
                return err;
        dev->addr_assign_type = NET_ADDR_SET;
@@ -114,8 +114,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
 @@ -598,7 +598,8 @@ struct sk_buff {
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
 @@ -598,7 +598,8 @@ struct sk_buff {
- #endif
        __u8                    ipvs_property:1;
        __u8                    ipvs_property:1;
        __u8                    inner_protocol_type:1;
 -      /* 4 or 6 bit hole */
 +      __u8                    gro_skip:1;
        __u8                    inner_protocol_type:1;
 -      /* 4 or 6 bit hole */
 +      __u8                    gro_skip:1;
index fa4542b88bcabd1b22df197dc653247fc9b3f58b..ffc310a134bfa8378a4d2de4e019e6ceaf55a5f7 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/phy/phy.c
 +++ b/drivers/net/phy/phy.c
 --- a/drivers/net/phy/phy.c
 +++ b/drivers/net/phy/phy.c
-@@ -357,6 +357,50 @@ int phy_ethtool_gset(struct phy_device *
+@@ -363,6 +363,50 @@ int phy_ethtool_gset(struct phy_device *
  }
  EXPORT_SYMBOL(phy_ethtool_gset);
  
  }
  EXPORT_SYMBOL(phy_ethtool_gset);
  
@@ -53,7 +53,7 @@
   * @phydev: the phy_device struct
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
   * @phydev: the phy_device struct
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -752,6 +752,7 @@ void phy_start_machine(struct phy_device
+@@ -759,6 +759,7 @@ void phy_start_machine(struct phy_device
  void phy_stop_machine(struct phy_device *phydev);
  int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd);
  int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd);
  void phy_stop_machine(struct phy_device *phydev);
  int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd);
  int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd);
index bc9515217ac3692ed99d226a34cfbc5b026be10d..49ffd27814e034522979c88ac30df9f671ed864f 100644 (file)
@@ -1,6 +1,6 @@
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -484,6 +484,12 @@ struct phy_driver {
+@@ -480,6 +480,12 @@ struct phy_driver {
        /* Determines the negotiated speed and duplex */
        int (*read_status)(struct phy_device *phydev);
  
        /* Determines the negotiated speed and duplex */
        int (*read_status)(struct phy_device *phydev);
  
index 061e40fb49e2c870cda022aba23c533f117208fe..ca8e455833cba038006e7a01821095416a9cbcf7 100644 (file)
@@ -12,7 +12,7 @@
  
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
  
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -502,6 +502,12 @@ struct phy_driver {
+@@ -498,6 +498,12 @@ struct phy_driver {
         */
        int (*did_interrupt)(struct phy_device *phydev);
  
         */
        int (*did_interrupt)(struct phy_device *phydev);
  
index 424c63e31172b8e6d0522ce21e1a093c96429c5f..60026b474c4f47cfd98e36792129629f1967749e 100644 (file)
@@ -46,7 +46,7 @@
                phy_device_free(phydev);
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
                phy_device_free(phydev);
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -789,4 +789,22 @@ int __init mdio_bus_init(void);
+@@ -796,4 +796,22 @@ int __init mdio_bus_init(void);
  void mdio_bus_exit(void);
  
  extern struct bus_type mdio_bus_type;
  void mdio_bus_exit(void);
  
  extern struct bus_type mdio_bus_type;
index 7235ab355f25c6fe95996030687c78904da3b1f7..ed51bb1d2dde7823db00143fabab39494a4e592b 100644 (file)
@@ -86,7 +86,7 @@
        help
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
        help
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -2626,10 +2626,20 @@ static int xmit_one(struct sk_buff *skb,
+@@ -2637,10 +2637,20 @@ static int xmit_one(struct sk_buff *skb,
        if (!list_empty(&ptype_all))
                dev_queue_xmit_nit(skb, dev);
  
        if (!list_empty(&ptype_all))
                dev_queue_xmit_nit(skb, dev);
  
index d0aee1c2d061e2225ed3b5ecbacfa064bdab2c93..25dffdc58d5ef9d53ecdf972a04cc73e3aaf579d 100644 (file)
@@ -69,7 +69,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  /**
   *    ata_build_rw_tf - Build ATA taskfile for given read/write request
   *    @tf: Target ATA taskfile
  /**
   *    ata_build_rw_tf - Build ATA taskfile for given read/write request
   *    @tf: Target ATA taskfile
-@@ -4800,6 +4813,9 @@ static struct ata_queued_cmd *ata_qc_new
+@@ -4825,6 +4838,9 @@ static struct ata_queued_cmd *ata_qc_new
                        break;
                }
        }
                        break;
                }
        }
@@ -79,7 +79,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
        return qc;
  }
  
        return qc;
  }
-@@ -5710,6 +5726,9 @@ struct ata_port *ata_port_alloc(struct a
+@@ -5734,6 +5750,9 @@ struct ata_port *ata_port_alloc(struct a
        ap->stats.unhandled_irq = 1;
        ap->stats.idle_irq = 1;
  #endif
        ap->stats.unhandled_irq = 1;
        ap->stats.idle_irq = 1;
  #endif
@@ -89,7 +89,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        ata_sff_port_init(ap);
  
        return ap;
        ata_sff_port_init(ap);
  
        return ap;
-@@ -5731,6 +5750,12 @@ static void ata_host_release(struct devi
+@@ -5755,6 +5774,12 @@ static void ata_host_release(struct devi
  
                kfree(ap->pmp_link);
                kfree(ap->slave_link);
  
                kfree(ap->pmp_link);
                kfree(ap->slave_link);
@@ -102,7 +102,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
                kfree(ap);
                host->ports[i] = NULL;
        }
                kfree(ap);
                host->ports[i] = NULL;
        }
-@@ -6177,7 +6202,23 @@ int ata_host_register(struct ata_host *h
+@@ -6201,7 +6226,23 @@ int ata_host_register(struct ata_host *h
                host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
                host->ports[i]->local_port_no = i + 1;
        }
                host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
                host->ports[i]->local_port_no = i + 1;
        }
index 596a84f8dde4bf7a75172783b5b72a0492fe1cce..69cf448414c1b292a3d1a7534549aadf6545c5bc 100644 (file)
@@ -34,7 +34,7 @@
  }
 --- a/fs/proc/proc_tty.c
 +++ b/fs/proc/proc_tty.c
  }
 --- a/fs/proc/proc_tty.c
 +++ b/fs/proc/proc_tty.c
-@@ -143,7 +143,10 @@ static const struct file_operations proc
+@@ -144,7 +144,10 @@ static const struct file_operations proc
  void proc_tty_register_driver(struct tty_driver *driver)
  {
        struct proc_dir_entry *ent;
  void proc_tty_register_driver(struct tty_driver *driver)
  {
        struct proc_dir_entry *ent;
@@ -46,7 +46,7 @@
        if (!driver->driver_name || driver->proc_entry ||
            !driver->ops->proc_fops)
                return;
        if (!driver->driver_name || driver->proc_entry ||
            !driver->ops->proc_fops)
                return;
-@@ -160,6 +163,9 @@ void proc_tty_unregister_driver(struct t
+@@ -161,6 +164,9 @@ void proc_tty_unregister_driver(struct t
  {
        struct proc_dir_entry *ent;
  
  {
        struct proc_dir_entry *ent;
  
@@ -56,7 +56,7 @@
        ent = driver->proc_entry;
        if (!ent)
                return;
        ent = driver->proc_entry;
        if (!ent)
                return;
-@@ -174,6 +180,9 @@ void proc_tty_unregister_driver(struct t
+@@ -175,6 +181,9 @@ void proc_tty_unregister_driver(struct t
   */
  void __init proc_tty_init(void)
  {
   */
  void __init proc_tty_init(void)
  {
                return -ENOMEM;
 --- a/mm/vmalloc.c
 +++ b/mm/vmalloc.c
                return -ENOMEM;
 --- a/mm/vmalloc.c
 +++ b/mm/vmalloc.c
-@@ -2662,6 +2662,8 @@ static const struct file_operations proc
+@@ -2663,6 +2663,8 @@ static const struct file_operations proc
  
  static int __init proc_vmalloc_init(void)
  {
  
  static int __init proc_vmalloc_init(void)
  {
                goto err;
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
                goto err;
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -2939,6 +2939,8 @@ static __net_initdata struct pernet_oper
+@@ -2941,6 +2941,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
  {
  
  static int __init proto_init(void)
  {
  
 --- a/net/ipv4/route.c
 +++ b/net/ipv4/route.c
  
 --- a/net/ipv4/route.c
 +++ b/net/ipv4/route.c
-@@ -416,6 +416,9 @@ static struct pernet_operations ip_rt_pr
+@@ -418,6 +418,9 @@ static struct pernet_operations ip_rt_pr
  
  static int __init ip_rt_proc_init(void)
  {
  
  static int __init ip_rt_proc_init(void)
  {
  
 --- a/ipc/msg.c
 +++ b/ipc/msg.c
  
 --- a/ipc/msg.c
 +++ b/ipc/msg.c
-@@ -1072,6 +1072,9 @@ void __init msg_init(void)
+@@ -1075,6 +1075,9 @@ void __init msg_init(void)
        printk(KERN_INFO "msgmni has been set to %d\n",
                init_ipc_ns.msg_ctlmni);
  
        printk(KERN_INFO "msgmni has been set to %d\n",
                init_ipc_ns.msg_ctlmni);
  
index d69ec211a5cbfab95fa158dea3c173c4f4b323da..410c53085daf0708f2f360a62c37c65d962ceee7 100644 (file)
@@ -14,7 +14,7 @@
        int retval = 0;
 --- a/drivers/usb/host/ohci-hcd.c
 +++ b/drivers/usb/host/ohci-hcd.c
        int retval = 0;
 --- a/drivers/usb/host/ohci-hcd.c
 +++ b/drivers/usb/host/ohci-hcd.c
-@@ -1259,6 +1259,11 @@ MODULE_LICENSE ("GPL");
+@@ -1260,6 +1260,11 @@ MODULE_LICENSE ("GPL");
  #define PLATFORM_DRIVER               ohci_hcd_tilegx_driver
  #endif
  
  #define PLATFORM_DRIVER               ohci_hcd_tilegx_driver
  #endif
  
index 10593ce70d0f138cfb64c6f1a0e28bb24ea0cf77..6269e40a090fce2581bf951c222277817bef397f 100644 (file)
@@ -7,8 +7,8 @@
 -#define FORCE_WORD_WRITE 0
 +#define FORCE_WORD_WRITE 1
  
 -#define FORCE_WORD_WRITE 0
 +#define FORCE_WORD_WRITE 1
  
--#define MAX_WORD_RETRIES 3
-+#define MAX_WORD_RETRIES 10
+-#define MAX_RETRIES 3
++#define MAX_RETRIES 10
  
  #define SST49LF004B           0x0060
  #define SST49LF040B           0x0050
  
  #define SST49LF004B           0x0060
  #define SST49LF040B           0x0050
index 8697f033865e8b6e7560885a5a6066d8b68acd24..9d4982b0fbaf9f1983f244304bef15a35ae024c8 100644 (file)
@@ -18,8 +18,8 @@
 +      u32 hcca_area;
  
        /* Accept arbitrarily long scatter-gather lists */
 +      u32 hcca_area;
  
        /* Accept arbitrarily long scatter-gather lists */
-       hcd->self.sg_tablesize = ~0;
-@@ -501,11 +502,13 @@ static int ohci_init (struct ohci_hcd *o
+       if (!(hcd->driver->flags & HCD_LOCAL_MEM))
+@@ -502,11 +503,13 @@ static int ohci_init (struct ohci_hcd *o
                        (unsigned long) ohci);
        set_timer_slack(&ohci->io_watchdog, msecs_to_jiffies(20));
  
                        (unsigned long) ohci);
        set_timer_slack(&ohci->io_watchdog, msecs_to_jiffies(20));
  
@@ -35,7 +35,7 @@
        if ((ret = ohci_mem_init (ohci)) < 0)
                ohci_stop (hcd);
        else {
        if ((ret = ohci_mem_init (ohci)) < 0)
                ohci_stop (hcd);
        else {
-@@ -523,6 +526,7 @@ static int ohci_init (struct ohci_hcd *o
+@@ -524,6 +527,7 @@ static int ohci_init (struct ohci_hcd *o
   */
  static int ohci_run (struct ohci_hcd *ohci)
  {
   */
  static int ohci_run (struct ohci_hcd *ohci)
  {
@@ -43,7 +43,7 @@
        u32                     mask, val;
        int                     first = ohci->fminterval == 0;
        struct usb_hcd          *hcd = ohci_to_hcd(ohci);
        u32                     mask, val;
        int                     first = ohci->fminterval == 0;
        struct usb_hcd          *hcd = ohci_to_hcd(ohci);
-@@ -573,6 +577,8 @@ static int ohci_run (struct ohci_hcd *oh
+@@ -574,6 +578,8 @@ static int ohci_run (struct ohci_hcd *oh
        msleep(val);
  
        memset (ohci->hcca, 0, sizeof (struct ohci_hcca));
        msleep(val);
  
        memset (ohci->hcca, 0, sizeof (struct ohci_hcca));
@@ -52,7 +52,7 @@
  
        /* 2msec timelimit here means no irqs/preempt */
        spin_lock_irq (&ohci->lock);
  
        /* 2msec timelimit here means no irqs/preempt */
        spin_lock_irq (&ohci->lock);
-@@ -984,9 +990,6 @@ static void ohci_stop (struct usb_hcd *h
+@@ -985,9 +991,6 @@ static void ohci_stop (struct usb_hcd *h
        remove_debug_files (ohci);
        ohci_mem_cleanup (ohci);
        if (ohci->hcca) {
        remove_debug_files (ohci);
        ohci_mem_cleanup (ohci);
        if (ohci->hcca) {
index 046da51912de3cd4444779df5de13d2c1999719a..ce87452a16166eb09c29da1065c384cf4f4691ed 100644 (file)
@@ -10,7 +10,7 @@ Avoid sending unnecessary READ commands to the chip.
 
 --- a/drivers/mtd/nand/nand_base.c
 +++ b/drivers/mtd/nand/nand_base.c
 
 --- a/drivers/mtd/nand/nand_base.c
 +++ b/drivers/mtd/nand/nand_base.c
-@@ -1360,9 +1360,16 @@ static int nand_read_page_hwecc_oob_firs
+@@ -1365,9 +1365,16 @@ static int nand_read_page_hwecc_oob_firs
        unsigned int max_bitflips = 0;
  
        /* Read the OOB area first */
        unsigned int max_bitflips = 0;
  
        /* Read the OOB area first */
@@ -30,7 +30,7 @@ Avoid sending unnecessary READ commands to the chip.
  
        for (i = 0; i < chip->ecc.total; i++)
                ecc_code[i] = chip->oob_poi[eccpos[i]];
  
        for (i = 0; i < chip->ecc.total; i++)
                ecc_code[i] = chip->oob_poi[eccpos[i]];
-@@ -1575,7 +1582,9 @@ static int nand_do_read_ops(struct mtd_i
+@@ -1580,7 +1587,9 @@ static int nand_do_read_ops(struct mtd_i
                                                 __func__, buf);
  
  read_retry:
                                                 __func__, buf);
  
  read_retry:
index 974eb7a5db9a09347fa6137461f030575f9a4328..65e739d479ee887b055639e4cbfe44ed48e279db 100644 (file)
@@ -10,7 +10,7 @@ Subject: [PATCH 3/7] NAND: Add support for subpage reads for
 
 --- a/drivers/mtd/nand/nand_base.c
 +++ b/drivers/mtd/nand/nand_base.c
 
 --- a/drivers/mtd/nand/nand_base.c
 +++ b/drivers/mtd/nand/nand_base.c
-@@ -1393,6 +1393,75 @@ static int nand_read_page_hwecc_oob_firs
+@@ -1398,6 +1398,75 @@ static int nand_read_page_hwecc_oob_firs
  }
  
  /**
  }
  
  /**
@@ -86,7 +86,7 @@ Subject: [PATCH 3/7] NAND: Add support for subpage reads for
   * nand_read_page_syndrome - [REPLACEABLE] hardware ECC syndrome based page read
   * @mtd: mtd info structure
   * @chip: nand chip info structure
   * nand_read_page_syndrome - [REPLACEABLE] hardware ECC syndrome based page read
   * @mtd: mtd info structure
   * @chip: nand chip info structure
-@@ -3950,8 +4019,14 @@ int nand_scan_tail(struct mtd_info *mtd)
+@@ -3961,8 +4030,14 @@ int nand_scan_tail(struct mtd_info *mtd)
                        pr_warn("No ECC functions supplied; hardware ECC not possible\n");
                        BUG();
                }
                        pr_warn("No ECC functions supplied; hardware ECC not possible\n");
                        BUG();
                }
index b8aac66b3e5856c9a889ac11058f599bd053023f..fd89ad3bcad31e21dbb9a37854da721a5c1a6fc3 100644 (file)
@@ -11,7 +11,7 @@ The spi_gpio driver does not support 3-wire mode.
 
 --- a/arch/mips/jz4740/board-qi_lb60.c
 +++ b/arch/mips/jz4740/board-qi_lb60.c
 
 --- a/arch/mips/jz4740/board-qi_lb60.c
 +++ b/arch/mips/jz4740/board-qi_lb60.c
-@@ -312,7 +312,6 @@ static struct spi_board_info qi_lb60_spi
+@@ -313,7 +313,6 @@ static struct spi_board_info qi_lb60_spi
                .chip_select = 0,
                .bus_num = 1,
                .max_speed_hz = 30 * 1000,
                .chip_select = 0,
                .bus_num = 1,
                .max_speed_hz = 30 * 1000,