From 548182bc6d38a3817c8e9f5b11207043a31c59b9 Mon Sep 17 00:00:00 2001 From: Koen Vandeputte Date: Mon, 20 Aug 2018 10:43:09 +0200 Subject: kernel: bump 3.18 to 3.18.119 Refreshed all patches. Compile-tested on: adm5120, adm8668, au1000, mcs814x, ppc40x, ppc44x, xburst Runtime-tested on: none Signed-off-by: Koen Vandeputte --- .../pending-3.18/001-mtdsplit_backport.patch | 2 +- .../pending-3.18/002-phy_drivers_backport.patch | 16 ++++++------- ...nl80211-Allow-set-network-namespace-by-fd.patch | 2 +- ...orkqueue-to-die-properly-when-a-PADT-is-r.patch | 4 ++-- ...1-07-ppp-remove-PPPOX_ZOMBIE-socket-state.patch | 2 +- ...-memory-corruption-in-padt-work-structure.patch | 6 ++--- ..._fragment-fix-headroom-tests-and-skb-leak.patch | 8 +++---- ...-.rename2-and-add-RENAME_WHITEOUT-support.patch | 6 ++--- .../111-jffs2-add-RENAME_EXCHANGE-support.patch | 10 ++++---- ...l-Add-support-for-Quectel-EC20-Mini-PCIe-.patch | 4 ++-- ...n-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch | 19 ++++++--------- .../pending-3.18/202-reduce_module_size.patch | 2 +- .../pending-3.18/214-spidev_h_portability.patch | 2 +- ...er.h-prevent-redefinition-of-struct-ethhd.patch | 2 +- ..._cmdset_0002-add-buffer-write-cmd-timeout.patch | 2 +- .../476-mtd-spi-nor-add-eon-en25qh32.patch | 2 +- ...tach-mtd-device-named-ubi-or-data-on-boot.patch | 4 ++-- ...610-netfilter_match_bypass_default_checks.patch | 8 +++---- .../pending-3.18/630-packet_socket_type.patch | 16 ++++++------- .../645-bridge_multicast_to_unicast.patch | 6 ++--- .../pending-3.18/650-pppoe_header_pad.patch | 20 ---------------- .../pending-3.18/653-disable_netlink_trim.patch | 2 +- .../666-Add-support-for-MAP-E-FMRs-mesh-mode.patch | 28 +++++++++++----------- ...ed-source-specific-default-route-handling.patch | 4 ++-- ...jecting-with-source-address-failed-policy.patch | 18 +++++++------- ...80-NET-skip-GRO-for-foreign-MAC-addresses.patch | 12 +++++----- .../generic/pending-3.18/701-phy_extension.patch | 4 ++-- .../702-phy_add_aneg_done_function.patch | 2 +- ...-add-detach-callback-to-struct-phy_driver.patch | 2 +- .../710-phy-add-mdio_register_board_info.patch | 2 +- .../generic/pending-3.18/721-phy_packets.patch | 2 +- .../generic/pending-3.18/834-ledtrig-libata.patch | 8 +++---- .../generic/pending-3.18/902-debloat_proc.patch | 14 +++++------ 33 files changed, 108 insertions(+), 133 deletions(-) (limited to 'target/linux/generic') diff --git a/target/linux/generic/pending-3.18/001-mtdsplit_backport.patch b/target/linux/generic/pending-3.18/001-mtdsplit_backport.patch index 97cd62d75c..f0f2effbe4 100644 --- a/target/linux/generic/pending-3.18/001-mtdsplit_backport.patch +++ b/target/linux/generic/pending-3.18/001-mtdsplit_backport.patch @@ -129,7 +129,7 @@ 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, diff --git a/target/linux/generic/pending-3.18/002-phy_drivers_backport.patch b/target/linux/generic/pending-3.18/002-phy_drivers_backport.patch index 504d772def..c500138309 100644 --- a/target/linux/generic/pending-3.18/002-phy_drivers_backport.patch +++ b/target/linux/generic/pending-3.18/002-phy_drivers_backport.patch @@ -95,7 +95,7 @@ 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; @@ -104,7 +104,7 @@ 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); @@ -113,7 +113,7 @@ 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); @@ -126,7 +126,7 @@ 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) { @@ -135,7 +135,7 @@ 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 */ @@ -154,7 +154,7 @@ 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; } @@ -163,7 +163,7 @@ 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++; @@ -172,7 +172,7 @@ 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; } diff --git a/target/linux/generic/pending-3.18/030-nl80211-Allow-set-network-namespace-by-fd.patch b/target/linux/generic/pending-3.18/030-nl80211-Allow-set-network-namespace-by-fd.patch index 52a2391ccd..80f9708306 100644 --- a/target/linux/generic/pending-3.18/030-nl80211-Allow-set-network-namespace-by-fd.patch +++ b/target/linux/generic/pending-3.18/030-nl80211-Allow-set-network-namespace-by-fd.patch @@ -11,7 +11,7 @@ Signed-off-by: Johannes Berg --- 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 diff --git a/target/linux/generic/pending-3.18/081-01-pppoe-Use-workqueue-to-die-properly-when-a-PADT-is-r.patch b/target/linux/generic/pending-3.18/081-01-pppoe-Use-workqueue-to-die-properly-when-a-PADT-is-r.patch index 347049a924..fb44df97e9 100644 --- a/target/linux/generic/pending-3.18/081-01-pppoe-Use-workqueue-to-die-properly-when-a-PADT-is-r.patch +++ b/target/linux/generic/pending-3.18/081-01-pppoe-Use-workqueue-to-die-properly-when-a-PADT-is-r.patch @@ -67,8 +67,8 @@ Signed-off-by: David S. Miller + 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 @@ diff --git a/target/linux/generic/pending-3.18/081-07-ppp-remove-PPPOX_ZOMBIE-socket-state.patch b/target/linux/generic/pending-3.18/081-07-ppp-remove-PPPOX_ZOMBIE-socket-state.patch index ffdba4d923..28ec03b410 100644 --- a/target/linux/generic/pending-3.18/081-07-ppp-remove-PPPOX_ZOMBIE-socket-state.patch +++ b/target/linux/generic/pending-3.18/081-07-ppp-remove-PPPOX_ZOMBIE-socket-state.patch @@ -19,7 +19,7 @@ Signed-off-by: David S. Miller 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; diff --git a/target/linux/generic/pending-3.18/081-08-pppoe-fix-memory-corruption-in-padt-work-structure.patch b/target/linux/generic/pending-3.18/081-08-pppoe-fix-memory-corruption-in-padt-work-structure.patch index 147e9712db..8637746b5b 100644 --- a/target/linux/generic/pending-3.18/081-08-pppoe-fix-memory-corruption-in-padt-work-structure.patch +++ b/target/linux/generic/pending-3.18/081-08-pppoe-fix-memory-corruption-in-padt-work-structure.patch @@ -62,9 +62,9 @@ Signed-off-by: David S. Miller - 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; } diff --git a/target/linux/generic/pending-3.18/082-ipv6-ip6_fragment-fix-headroom-tests-and-skb-leak.patch b/target/linux/generic/pending-3.18/082-ipv6-ip6_fragment-fix-headroom-tests-and-skb-leak.patch index 9f39e5ba5e..51f31ea06e 100644 --- a/target/linux/generic/pending-3.18/082-ipv6-ip6_fragment-fix-headroom-tests-and-skb-leak.patch +++ b/target/linux/generic/pending-3.18/082-ipv6-ip6_fragment-fix-headroom-tests-and-skb-leak.patch @@ -44,7 +44,7 @@ Closes 20532 --- 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); @@ -69,7 +69,7 @@ Closes 20532 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; @@ -78,7 +78,7 @@ Closes 20532 /* 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); @@ -91,7 +91,7 @@ Closes 20532 __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; diff --git a/target/linux/generic/pending-3.18/110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch b/target/linux/generic/pending-3.18/110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch index f671db6e94..6bbeb93cfa 100644 --- a/target/linux/generic/pending-3.18/110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch +++ b/target/linux/generic/pending-3.18/110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch @@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau .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; } @@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau { 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; @@ -66,7 +66,7 @@ Signed-off-by: Felix Fietkau /* 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); diff --git a/target/linux/generic/pending-3.18/111-jffs2-add-RENAME_EXCHANGE-support.patch b/target/linux/generic/pending-3.18/111-jffs2-add-RENAME_EXCHANGE-support.patch index be87c3507e..e0ed3312a2 100644 --- a/target/linux/generic/pending-3.18/111-jffs2-add-RENAME_EXCHANGE-support.patch +++ b/target/linux/generic/pending-3.18/111-jffs2-add-RENAME_EXCHANGE-support.patch @@ -7,7 +7,7 @@ Signed-off-by: Felix Fietkau --- 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; @@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau 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. */ @@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau 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; @@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau /* 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); @@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau 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; } diff --git a/target/linux/generic/pending-3.18/192-USB-qcserial-Add-support-for-Quectel-EC20-Mini-PCIe-.patch b/target/linux/generic/pending-3.18/192-USB-qcserial-Add-support-for-Quectel-EC20-Mini-PCIe-.patch index ae018cbab0..c75cc9ded1 100644 --- a/target/linux/generic/pending-3.18/192-USB-qcserial-Add-support-for-Quectel-EC20-Mini-PCIe-.patch +++ b/target/linux/generic/pending-3.18/192-USB-qcserial-Add-support-for-Quectel-EC20-Mini-PCIe-.patch @@ -61,7 +61,7 @@ Signed-off-by: Petr Štetiar /* 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); @@ -100,7 +100,7 @@ Signed-off-by: Petr Štetiar 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: diff --git a/target/linux/generic/pending-3.18/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch b/target/linux/generic/pending-3.18/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch index ee0d7b2ccc..ae3533db19 100644 --- a/target/linux/generic/pending-3.18/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch +++ b/target/linux/generic/pending-3.18/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch @@ -48,7 +48,7 @@ Signed-off-by: Petr Štetiar --- 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) */ @@ -56,7 +56,7 @@ Signed-off-by: Petr Štetiar {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); @@ -65,9 +65,9 @@ Signed-off-by: Petr Štetiar + 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; @@ -76,13 +76,8 @@ Signed-off-by: Petr Štetiar 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 */ diff --git a/target/linux/generic/pending-3.18/202-reduce_module_size.patch b/target/linux/generic/pending-3.18/202-reduce_module_size.patch index b98ea4e9d8..60ea5c2085 100644 --- a/target/linux/generic/pending-3.18/202-reduce_module_size.patch +++ b/target/linux/generic/pending-3.18/202-reduce_module_size.patch @@ -1,6 +1,6 @@ --- 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 diff --git a/target/linux/generic/pending-3.18/214-spidev_h_portability.patch b/target/linux/generic/pending-3.18/214-spidev_h_portability.patch index dbee090547..39fa32ffa2 100644 --- a/target/linux/generic/pending-3.18/214-spidev_h_portability.patch +++ b/target/linux/generic/pending-3.18/214-spidev_h_portability.patch @@ -1,6 +1,6 @@ --- 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 or _IOC_TYPECHECK() ... */ #define SPI_MSGSIZE(N) \ diff --git a/target/linux/generic/pending-3.18/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch b/target/linux/generic/pending-3.18/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch index 10d698f961..6f7ba681c1 100644 --- a/target/linux/generic/pending-3.18/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch +++ b/target/linux/generic/pending-3.18/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch @@ -26,7 +26,7 @@ Signed-off-by: Hauke Mehrtens /* * 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. */ diff --git a/target/linux/generic/pending-3.18/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch b/target/linux/generic/pending-3.18/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch index c437a140f0..382b44a939 100644 --- a/target/linux/generic/pending-3.18/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch +++ b/target/linux/generic/pending-3.18/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch @@ -8,7 +8,7 @@ Signed-off-by: George Kashperko 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); diff --git a/target/linux/generic/pending-3.18/476-mtd-spi-nor-add-eon-en25qh32.patch b/target/linux/generic/pending-3.18/476-mtd-spi-nor-add-eon-en25qh32.patch index 7c95ce7093..950970dbc9 100644 --- a/target/linux/generic/pending-3.18/476-mtd-spi-nor-add-eon-en25qh32.patch +++ b/target/linux/generic/pending-3.18/476-mtd-spi-nor-add-eon-en25qh32.patch @@ -1,6 +1,6 @@ --- 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) }, diff --git a/target/linux/generic/pending-3.18/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch b/target/linux/generic/pending-3.18/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch index bca3487d18..b2b46ac6aa 100644 --- a/target/linux/generic/pending-3.18/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch +++ b/target/linux/generic/pending-3.18/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch @@ -11,7 +11,7 @@ Signed-off-by: Daniel Golle --- 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; } @@ -61,7 +61,7 @@ Signed-off-by: Daniel Golle 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) } } diff --git a/target/linux/generic/pending-3.18/610-netfilter_match_bypass_default_checks.patch b/target/linux/generic/pending-3.18/610-netfilter_match_bypass_default_checks.patch index e5c7a77b46..b96402fd3e 100644 --- a/target/linux/generic/pending-3.18/610-netfilter_match_bypass_default_checks.patch +++ b/target/linux/generic/pending-3.18/610-netfilter_match_bypass_default_checks.patch @@ -57,9 +57,9 @@ + ip_checkdefault(&e->ip); + j = 0; + memset(&mtpar, 0, sizeof(mtpar)); 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; @@ -67,7 +67,7 @@ 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; } @@ -82,7 +82,7 @@ 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; diff --git a/target/linux/generic/pending-3.18/630-packet_socket_type.patch b/target/linux/generic/pending-3.18/630-packet_socket_type.patch index ec7383e114..81e296e031 100644 --- a/target/linux/generic/pending-3.18/630-packet_socket_type.patch +++ b/target/linux/generic/pending-3.18/630-packet_socket_type.patch @@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau #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; @@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau /* * 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; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau /* * 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. */ @@ -51,7 +51,7 @@ Signed-off-by: Felix Fietkau 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; @@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau 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); @@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau 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; @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau 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; } @@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau 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; diff --git a/target/linux/generic/pending-3.18/645-bridge_multicast_to_unicast.patch b/target/linux/generic/pending-3.18/645-bridge_multicast_to_unicast.patch index 1226770a3b..642cf03d33 100644 --- a/target/linux/generic/pending-3.18/645-bridge_multicast_to_unicast.patch +++ b/target/linux/generic/pending-3.18/645-bridge_multicast_to_unicast.patch @@ -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 -@@ -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); @@ -380,11 +380,11 @@ Implement optinal multicast->unicast conversion for igmp snooping #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 - &brport_attr_isolate_mode, + &brport_attr_isolated, NULL diff --git a/target/linux/generic/pending-3.18/650-pppoe_header_pad.patch b/target/linux/generic/pending-3.18/650-pppoe_header_pad.patch index eb9b4bfd15..e69de29bb2 100644 --- a/target/linux/generic/pending-3.18/650-pppoe_header_pad.patch +++ b/target/linux/generic/pending-3.18/650-pppoe_header_pad.patch @@ -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; diff --git a/target/linux/generic/pending-3.18/653-disable_netlink_trim.patch b/target/linux/generic/pending-3.18/653-disable_netlink_trim.patch index fe62110f06..ebe5da4ec0 100644 --- a/target/linux/generic/pending-3.18/653-disable_netlink_trim.patch +++ b/target/linux/generic/pending-3.18/653-disable_netlink_trim.patch @@ -1,6 +1,6 @@ --- 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) { diff --git a/target/linux/generic/pending-3.18/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch b/target/linux/generic/pending-3.18/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch index 3948d726b8..c9686f1f01 100644 --- a/target/linux/generic/pending-3.18/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch +++ b/target/linux/generic/pending-3.18/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch @@ -132,7 +132,7 @@ Signed-off-by: Steven Barth } 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); @@ -145,7 +145,7 @@ Signed-off-by: Steven Barth 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); @@ -254,7 +254,7 @@ Signed-off-by: Steven Barth /** * 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)); @@ -281,7 +281,7 @@ Signed-off-by: Steven Barth __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; @@ -289,7 +289,7 @@ Signed-off-by: Steven Barth 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; @@ -308,7 +308,7 @@ Signed-off-by: Steven Barth 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; @@ -323,7 +323,7 @@ Signed-off-by: Steven Barth 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; @@ -331,7 +331,7 @@ Signed-off-by: Steven Barth 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; } @@ -347,7 +347,7 @@ Signed-off-by: Steven Barth 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]); @@ -394,7 +394,7 @@ Signed-off-by: Steven Barth } 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) { @@ -407,7 +407,7 @@ Signed-off-by: Steven Barth 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) + @@ -432,7 +432,7 @@ Signed-off-by: Steven Barth 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; @@ -442,7 +442,7 @@ Signed-off-by: Steven Barth 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) || @@ -471,7 +471,7 @@ Signed-off-by: Steven Barth 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 }, diff --git a/target/linux/generic/pending-3.18/667-ipv6-Fixed-source-specific-default-route-handling.patch b/target/linux/generic/pending-3.18/667-ipv6-Fixed-source-specific-default-route-handling.patch index de8745cdc3..95d3578139 100644 --- a/target/linux/generic/pending-3.18/667-ipv6-Fixed-source-specific-default-route-handling.patch +++ b/target/linux/generic/pending-3.18/667-ipv6-Fixed-source-specific-default-route-handling.patch @@ -26,7 +26,7 @@ Signed-off-by: David S. Miller --- 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; @@ -81,7 +81,7 @@ Signed-off-by: David S. Miller * 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) { diff --git a/target/linux/generic/pending-3.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-3.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch index f999d44df0..ac4a0a6bf9 100644 --- a/target/linux/generic/pending-3.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/target/linux/generic/pending-3.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -143,7 +143,7 @@ Signed-off-by: Jonas Gorski 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; @@ -155,7 +155,7 @@ Signed-off-by: Jonas Gorski 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); } @@ -173,7 +173,7 @@ Signed-off-by: Jonas Gorski /* * 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 || @@ -183,7 +183,7 @@ Signed-off-by: Jonas Gorski 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; @@ -193,7 +193,7 @@ Signed-off-by: Jonas Gorski 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); @@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski 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); @@ -220,7 +220,7 @@ Signed-off-by: Jonas Gorski #endif net->ipv6.sysctl.flush_delay = 0; -@@ -3065,6 +3115,8 @@ out: +@@ -3072,6 +3122,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -229,7 +229,7 @@ Signed-off-by: Jonas Gorski 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); @@ -237,7 +237,7 @@ Signed-off-by: Jonas Gorski #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); diff --git a/target/linux/generic/pending-3.18/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-3.18/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index da4b58883a..1f2f89daa9 100644 --- a/target/linux/generic/pending-3.18/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-3.18/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau --- 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; @@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau 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); } @@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau 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; } @@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau 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); @@ -92,7 +92,7 @@ Signed-off-by: Felix Fietkau 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; @@ -114,8 +114,8 @@ Signed-off-by: Felix Fietkau --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -598,7 +598,8 @@ struct sk_buff { - #endif __u8 ipvs_property:1; + __u8 inner_protocol_type:1; - /* 4 or 6 bit hole */ + __u8 gro_skip:1; diff --git a/target/linux/generic/pending-3.18/701-phy_extension.patch b/target/linux/generic/pending-3.18/701-phy_extension.patch index fa4542b88b..ffc310a134 100644 --- a/target/linux/generic/pending-3.18/701-phy_extension.patch +++ b/target/linux/generic/pending-3.18/701-phy_extension.patch @@ -1,6 +1,6 @@ --- 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); @@ -53,7 +53,7 @@ * @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); diff --git a/target/linux/generic/pending-3.18/702-phy_add_aneg_done_function.patch b/target/linux/generic/pending-3.18/702-phy_add_aneg_done_function.patch index bc9515217a..49ffd27814 100644 --- a/target/linux/generic/pending-3.18/702-phy_add_aneg_done_function.patch +++ b/target/linux/generic/pending-3.18/702-phy_add_aneg_done_function.patch @@ -1,6 +1,6 @@ --- 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); diff --git a/target/linux/generic/pending-3.18/703-phy-add-detach-callback-to-struct-phy_driver.patch b/target/linux/generic/pending-3.18/703-phy-add-detach-callback-to-struct-phy_driver.patch index 061e40fb49..ca8e455833 100644 --- a/target/linux/generic/pending-3.18/703-phy-add-detach-callback-to-struct-phy_driver.patch +++ b/target/linux/generic/pending-3.18/703-phy-add-detach-callback-to-struct-phy_driver.patch @@ -12,7 +12,7 @@ --- 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); diff --git a/target/linux/generic/pending-3.18/710-phy-add-mdio_register_board_info.patch b/target/linux/generic/pending-3.18/710-phy-add-mdio_register_board_info.patch index 424c63e311..60026b474c 100644 --- a/target/linux/generic/pending-3.18/710-phy-add-mdio_register_board_info.patch +++ b/target/linux/generic/pending-3.18/710-phy-add-mdio_register_board_info.patch @@ -46,7 +46,7 @@ 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; diff --git a/target/linux/generic/pending-3.18/721-phy_packets.patch b/target/linux/generic/pending-3.18/721-phy_packets.patch index 7235ab355f..ed51bb1d2d 100644 --- a/target/linux/generic/pending-3.18/721-phy_packets.patch +++ b/target/linux/generic/pending-3.18/721-phy_packets.patch @@ -86,7 +86,7 @@ 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); diff --git a/target/linux/generic/pending-3.18/834-ledtrig-libata.patch b/target/linux/generic/pending-3.18/834-ledtrig-libata.patch index d0aee1c2d0..25dffdc58d 100644 --- a/target/linux/generic/pending-3.18/834-ledtrig-libata.patch +++ b/target/linux/generic/pending-3.18/834-ledtrig-libata.patch @@ -69,7 +69,7 @@ Signed-off-by: Daniel Golle /** * 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; } } @@ -79,7 +79,7 @@ Signed-off-by: Daniel Golle 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 @@ -89,7 +89,7 @@ Signed-off-by: Daniel Golle 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); @@ -102,7 +102,7 @@ Signed-off-by: Daniel Golle 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; } diff --git a/target/linux/generic/pending-3.18/902-debloat_proc.patch b/target/linux/generic/pending-3.18/902-debloat_proc.patch index 596a84f8dd..69cf448414 100644 --- a/target/linux/generic/pending-3.18/902-debloat_proc.patch +++ b/target/linux/generic/pending-3.18/902-debloat_proc.patch @@ -34,7 +34,7 @@ } --- 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; @@ -46,7 +46,7 @@ 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; @@ -56,7 +56,7 @@ 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) { @@ -122,7 +122,7 @@ 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) { @@ -173,7 +173,7 @@ 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) { @@ -239,7 +239,7 @@ --- 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) { @@ -251,7 +251,7 @@ --- 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); -- cgit v1.2.3