[source] kernel: update kernel 4.1 to version 4.1.34

LEDE Commits lede-commits at lists.infradead.org
Mon Oct 24 10:49:21 PDT 2016


stintel pushed a commit to source.git, branch master:
https://git.lede-project.org/2fc3680dd066419576cb0129d0c1bd7618b90f1a

commit 2fc3680dd066419576cb0129d0c1bd7618b90f1a
Author: Stijn Tintel <stijn at linux-ipv6.be>
AuthorDate: Thu Sep 15 15:27:45 2016 +0200

    kernel: update kernel 4.1 to version 4.1.34
    
    Refresh patches for all targets supporting 4.1 and not marked broken.
    Compile-tested on all targets using 4.1 and not marked broken.
    
    Changes to generic/610-netfilter_match_bypass_default_checks.patch based
    on 84d489f64f3b382d5544e342f66d8806e94e85d3.
    Changes to generic/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch based
    on a90ee92337d60fd14b6431adcda9929b955f3408.
    
    Signed-off-by: Stijn Tintel <stijn at linux-ipv6.be>
---
 include/kernel-version.mk                          |  4 +-
 .../linux/ar7/patches-4.1/500-serial_kludge.patch  |  2 +-
 .../generic/patches-4.1/025-bcma-from-4.6.patch    |  6 +-
 .../patches-4.1/040-fs-overlay-fix-stacking.patch  |  2 +-
 ...-tcp-make-challenge-acks-less-predictable.patch | 76 ----------------------
 .../103-packet_allow_empty_payload.patch           | 17 -----
 .../111-jffs2-add-RENAME_EXCHANGE-support.patch    |  2 +-
 ...upport_for_moving_ndp_to_end_of_ncm_frame.patch | 16 ++---
 ...n-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch |  6 +-
 .../generic/patches-4.1/204-module_strip.patch     |  4 +-
 .../generic/patches-4.1/220-gc_sections.patch      | 12 ++--
 .../generic/patches-4.1/221-module_exports.patch   |  2 +-
 .../patches-4.1/300-mips_expose_boot_raw.patch     |  2 +-
 .../generic/patches-4.1/304-mips_disable_fpu.patch |  2 +-
 ...tach-mtd-device-named-ubi-or-data-on-boot.patch |  4 +-
 ...-mounting-ubi0-rootfs-in-init-do_mounts.c.patch |  2 +-
 .../494-mtd-ubi-add-EOF-marker-support.patch       |  2 +-
 ...610-netfilter_match_bypass_default_checks.patch | 25 +++----
 .../patches-4.1/630-packet_socket_type.patch       | 10 +--
 .../generic/patches-4.1/655-increase_skb_pad.patch |  2 +-
 .../656-skb_reduce_truesize-helper.patch           |  2 +-
 .../patches-4.1/657-qdisc_reduce_truesize.patch    |  2 +-
 .../patches-4.1/660-fq_codel_defaults.patch        |  2 +-
 .../patches-4.1/662-use_fq_codel_by_default.patch  |  6 +-
 .../patches-4.1/663-remove_pfifo_fast.patch        |  2 +-
 .../generic/patches-4.1/664-codel_fix_3_12.patch   |  2 +-
 .../666-Add-support-for-MAP-E-FMRs-mesh-mode.patch | 30 ++++-----
 ...80-NET-skip-GRO-for-foreign-MAC-addresses.patch |  2 +-
 .../generic/patches-4.1/721-phy_packets.patch      | 12 ++--
 .../810-pci_disable_common_quirks.patch            |  6 +-
 .../811-pci_disable_usb_common_quirks.patch        |  2 +-
 .../generic/patches-4.1/834-ledtrig-libata.patch   |  8 +--
 target/linux/generic/patches-4.1/863-gpiommc.patch |  2 +-
 .../patches-4.1/903-debloat_direct_io.patch        |  4 +-
 .../generic/patches-4.1/904-debloat_dma_buf.patch  |  2 +-
 .../oxnas/patches-4.1/320-oxnas-irqchip.patch      |  2 +-
 .../linux/oxnas/patches-4.1/800-oxnas-ehci.patch   |  2 +-
 .../996-ATAG_DTB_COMPAT_CMDLINE_MANGLE.patch       |  4 +-
 .../linux/oxnas/patches-4.1/999-libata-hacks.patch |  4 +-
 .../linux/rb532/patches-4.1/001-cmdline_hack.patch | 18 ++---
 .../rb532/patches-4.1/002-rb532_nand_fixup.patch   | 16 +++--
 ...tion_info-rename-rootfs-to-rootfs_onboard.patch | 12 ++--
 42 files changed, 120 insertions(+), 220 deletions(-)

diff --git a/include/kernel-version.mk b/include/kernel-version.mk
index 5f64358..da96e1e 100644
--- a/include/kernel-version.mk
+++ b/include/kernel-version.mk
@@ -3,11 +3,11 @@
 LINUX_RELEASE?=1
 
 LINUX_VERSION-3.18 = .29
-LINUX_VERSION-4.1 = .20
+LINUX_VERSION-4.1 = .34
 LINUX_VERSION-4.4 = .27
 
 LINUX_KERNEL_MD5SUM-3.18.29 = b25737a0bc98e80d12200de93f239c28
-LINUX_KERNEL_MD5SUM-4.1.20 = 075c38a3a23ca5bc80437b13606df00a
+LINUX_KERNEL_MD5SUM-4.1.34 = fba99f0f4765ebf01033e69518740a3c
 LINUX_KERNEL_MD5SUM-4.4.27 = 6c437dd8f9e964c843211cf99a876b42724fe9f2013241c13e14b6ce17846afd
 
 ifdef KERNEL_PATCHVER
diff --git a/target/linux/ar7/patches-4.1/500-serial_kludge.patch b/target/linux/ar7/patches-4.1/500-serial_kludge.patch
index 2321449..c7bb297 100644
--- a/target/linux/ar7/patches-4.1/500-serial_kludge.patch
+++ b/target/linux/ar7/patches-4.1/500-serial_kludge.patch
@@ -14,7 +14,7 @@
  };
  
  /* Uart divisor latch read */
-@@ -3348,7 +3355,11 @@ static void serial8250_console_putchar(s
+@@ -3342,7 +3349,11 @@ static void serial8250_console_putchar(s
  {
  	struct uart_8250_port *up = up_to_u8250p(port);
  
diff --git a/target/linux/generic/patches-4.1/025-bcma-from-4.6.patch b/target/linux/generic/patches-4.1/025-bcma-from-4.6.patch
index 39396f2..c0504ac 100644
--- a/target/linux/generic/patches-4.1/025-bcma-from-4.6.patch
+++ b/target/linux/generic/patches-4.1/025-bcma-from-4.6.patch
@@ -359,7 +359,7 @@
  #define BCMA_CORE_ARM_CA7		0x847
  #define BCMA_CORE_SYS_MEM		0x849
  #define BCMA_CORE_DEFAULT		0xFFF
-@@ -199,6 +201,7 @@ struct bcma_host_ops {
+@@ -200,6 +202,7 @@ struct bcma_host_ops {
  #define  BCMA_PKG_ID_BCM4707	1
  #define  BCMA_PKG_ID_BCM4708	2
  #define  BCMA_PKG_ID_BCM4709	0
@@ -470,7 +470,7 @@
  extern u32 bcma_chipco_get_alp_clock(struct bcma_drv_cc *cc);
 --- a/drivers/bcma/bcma_private.h
 +++ b/drivers/bcma/bcma_private.h
-@@ -46,10 +46,6 @@ int bcma_sprom_get(struct bcma_bus *bus)
+@@ -44,10 +44,6 @@ int bcma_sprom_get(struct bcma_bus *bus)
  void bcma_core_chipcommon_early_init(struct bcma_drv_cc *cc);
  void bcma_core_chipcommon_init(struct bcma_drv_cc *cc);
  void bcma_chipco_bcm4331_ext_pa_lines_ctl(struct bcma_drv_cc *cc, bool enable);
@@ -481,7 +481,7 @@
  
  /* driver_chipcommon_b.c */
  int bcma_core_chipcommon_b_init(struct bcma_drv_cc_b *ccb);
-@@ -61,6 +57,21 @@ void bcma_pmu_init(struct bcma_drv_cc *c
+@@ -59,6 +55,21 @@ void bcma_pmu_init(struct bcma_drv_cc *c
  u32 bcma_pmu_get_alp_clock(struct bcma_drv_cc *cc);
  u32 bcma_pmu_get_cpu_clock(struct bcma_drv_cc *cc);
  
diff --git a/target/linux/generic/patches-4.1/040-fs-overlay-fix-stacking.patch b/target/linux/generic/patches-4.1/040-fs-overlay-fix-stacking.patch
index 6c13e5f..6474da6 100644
--- a/target/linux/generic/patches-4.1/040-fs-overlay-fix-stacking.patch
+++ b/target/linux/generic/patches-4.1/040-fs-overlay-fix-stacking.patch
@@ -21,7 +21,7 @@ Cc: <stable at vger.kernel.org> # v4.2+
 
 --- a/fs/overlayfs/inode.c
 +++ b/fs/overlayfs/inode.c
-@@ -375,6 +375,9 @@ struct inode *ovl_d_select_inode(struct
+@@ -383,6 +383,9 @@ struct inode *ovl_d_select_inode(struct
  		ovl_path_upper(dentry, &realpath);
  	}
  
diff --git a/target/linux/generic/patches-4.1/096-tcp-make-challenge-acks-less-predictable.patch b/target/linux/generic/patches-4.1/096-tcp-make-challenge-acks-less-predictable.patch
deleted file mode 100644
index cf1da63..0000000
--- a/target/linux/generic/patches-4.1/096-tcp-make-challenge-acks-less-predictable.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 75ff39ccc1bd5d3c455b6822ab09e533c551f758 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet at google.com>
-Date: Sun, 10 Jul 2016 10:04:02 +0200
-Subject: [PATCH] tcp: make challenge acks less predictable
-
-Yue Cao claims that current host rate limiting of challenge ACKS
-(RFC 5961) could leak enough information to allow a patient attacker
-to hijack TCP sessions. He will soon provide details in an academic
-paper.
-
-This patch increases the default limit from 100 to 1000, and adds
-some randomization so that the attacker can no longer hijack
-sessions without spending a considerable amount of probes.
-
-Based on initial analysis and patch from Linus.
-
-Note that we also have per socket rate limiting, so it is tempting
-to remove the host limit in the future.
-
-v2: randomize the count of challenge acks per second, not the period.
-
-Fixes: 282f23c6ee34 ("tcp: implement RFC 5961 3.2")
-Reported-by: Yue Cao <ycao009 at ucr.edu>
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-Suggested-by: Linus Torvalds <torvalds at linux-foundation.org>
-Cc: Yuchung Cheng <ycheng at google.com>
-Cc: Neal Cardwell <ncardwell at google.com>
-Acked-by: Neal Cardwell <ncardwell at google.com>
-Acked-by: Yuchung Cheng <ycheng at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
----
- net/ipv4/tcp_input.c | 15 ++++++++++-----
- 1 file changed, 10 insertions(+), 5 deletions(-)
-
---- a/net/ipv4/tcp_input.c
-+++ b/net/ipv4/tcp_input.c
-@@ -89,7 +89,7 @@ int sysctl_tcp_adv_win_scale __read_most
- EXPORT_SYMBOL(sysctl_tcp_adv_win_scale);
- 
- /* rfc5961 challenge ack rate limiting */
--int sysctl_tcp_challenge_ack_limit = 100;
-+int sysctl_tcp_challenge_ack_limit = 1000;
- 
- int sysctl_tcp_stdurg __read_mostly;
- int sysctl_tcp_rfc1337 __read_mostly;
-@@ -3380,7 +3380,7 @@ static void tcp_send_challenge_ack(struc
- 	static u32 challenge_timestamp;
- 	static unsigned int challenge_count;
- 	struct tcp_sock *tp = tcp_sk(sk);
--	u32 now;
-+	u32 count, now;
- 
- 	/* First check our per-socket dupack rate limit. */
- 	if (tcp_oow_rate_limited(sock_net(sk), skb,
-@@ -3388,13 +3388,18 @@ static void tcp_send_challenge_ack(struc
- 				 &tp->last_oow_ack_time))
- 		return;
- 
--	/* Then check the check host-wide RFC 5961 rate limit. */
-+	/* Then check host-wide RFC 5961 rate limit. */
- 	now = jiffies / HZ;
- 	if (now != challenge_timestamp) {
-+		u32 half = (sysctl_tcp_challenge_ack_limit + 1) >> 1;
-+
- 		challenge_timestamp = now;
--		challenge_count = 0;
-+		WRITE_ONCE(challenge_count, half +
-+		           prandom_u32_max(sysctl_tcp_challenge_ack_limit));
- 	}
--	if (++challenge_count <= sysctl_tcp_challenge_ack_limit) {
-+	count = READ_ONCE(challenge_count);
-+	if (count > 0) {
-+		WRITE_ONCE(challenge_count, count - 1);
- 		NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPCHALLENGEACK);
- 		tcp_send_ack(sk);
- 	}
diff --git a/target/linux/generic/patches-4.1/103-packet_allow_empty_payload.patch b/target/linux/generic/patches-4.1/103-packet_allow_empty_payload.patch
deleted file mode 100644
index 2b9c4b0..0000000
--- a/target/linux/generic/patches-4.1/103-packet_allow_empty_payload.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Fix a regression in the af_packet code that was breaking PPPoE
-
-pppd sends packets with only a header and no payload.
-
-Signed-off-by: Felix Fietkau <nbd at nbd.name>
-
---- a/net/packet/af_packet.c
-+++ b/net/packet/af_packet.c
-@@ -2112,7 +2112,7 @@ static void tpacket_destruct_skb(struct
- static bool ll_header_truncated(const struct net_device *dev, int len)
- {
- 	/* net device doesn't like empty head */
--	if (unlikely(len <= dev->hard_header_len)) {
-+	if (unlikely(len < dev->hard_header_len)) {
- 		net_warn_ratelimited("%s: packet size is too short (%d <= %d)\n",
- 				     current->comm, len, dev->hard_header_len);
- 		return true;
diff --git a/target/linux/generic/patches-4.1/111-jffs2-add-RENAME_EXCHANGE-support.patch b/target/linux/generic/patches-4.1/111-jffs2-add-RENAME_EXCHANGE-support.patch
index 0e18421..e1f1b29 100644
--- a/target/linux/generic/patches-4.1/111-jffs2-add-RENAME_EXCHANGE-support.patch
+++ b/target/linux/generic/patches-4.1/111-jffs2-add-RENAME_EXCHANGE-support.patch
@@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	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
+@@ -884,7 +890,7 @@ static int jffs2_rename (struct inode *o
  		return ret;
  	}
  
diff --git a/target/linux/generic/patches-4.1/190-cdc_ncm_add_support_for_moving_ndp_to_end_of_ncm_frame.patch b/target/linux/generic/patches-4.1/190-cdc_ncm_add_support_for_moving_ndp_to_end_of_ncm_frame.patch
index bd0718d..02644d0 100644
--- a/target/linux/generic/patches-4.1/190-cdc_ncm_add_support_for_moving_ndp_to_end_of_ncm_frame.patch
+++ b/target/linux/generic/patches-4.1/190-cdc_ncm_add_support_for_moving_ndp_to_end_of_ncm_frame.patch
@@ -65,7 +65,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  {
  	const struct usb_cdc_union_desc *union_desc = NULL;
  	struct cdc_ncm_ctx *ctx;
-@@ -883,6 +885,17 @@ advance:
+@@ -894,6 +896,17 @@ advance:
  	/* finish setting up the device specific data */
  	cdc_ncm_setup(dev);
  
@@ -83,7 +83,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  	/* override ethtool_ops */
  	dev->net->ethtool_ops = &cdc_ncm_ethtool_ops;
  
-@@ -985,8 +998,11 @@ static int cdc_ncm_bind(struct usbnet *d
+@@ -996,8 +1009,11 @@ static int cdc_ncm_bind(struct usbnet *d
  	if (cdc_ncm_select_altsetting(intf) != CDC_NCM_COMM_ALTSETTING_NCM)
  		return -ENODEV;
  
@@ -97,7 +97,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  
  	/*
  	 * We should get an event when network connection is "connected" or
-@@ -1017,6 +1033,14 @@ static struct usb_cdc_ncm_ndp16 *cdc_ncm
+@@ -1028,6 +1044,14 @@ static struct usb_cdc_ncm_ndp16 *cdc_ncm
  	struct usb_cdc_ncm_nth16 *nth16 = (void *)skb->data;
  	size_t ndpoffset = le16_to_cpu(nth16->wNdpIndex);
  
@@ -112,7 +112,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  	/* follow the chain of NDPs, looking for a match */
  	while (ndpoffset) {
  		ndp16 = (struct usb_cdc_ncm_ndp16 *)(skb->data + ndpoffset);
-@@ -1026,7 +1050,8 @@ static struct usb_cdc_ncm_ndp16 *cdc_ncm
+@@ -1037,7 +1061,8 @@ static struct usb_cdc_ncm_ndp16 *cdc_ncm
  	}
  
  	/* align new NDP */
@@ -122,7 +122,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  
  	/* verify that there is room for the NDP and the datagram (reserve) */
  	if ((ctx->tx_max - skb->len - reserve) < ctx->max_ndp_size)
-@@ -1039,7 +1064,11 @@ static struct usb_cdc_ncm_ndp16 *cdc_ncm
+@@ -1050,7 +1075,11 @@ static struct usb_cdc_ncm_ndp16 *cdc_ncm
  		nth16->wNdpIndex = cpu_to_le16(skb->len);
  
  	/* push a new empty NDP */
@@ -135,7 +135,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  	ndp16->dwSignature = sign;
  	ndp16->wLength = cpu_to_le16(sizeof(struct usb_cdc_ncm_ndp16) + sizeof(struct usb_cdc_ncm_dpe16));
  	return ndp16;
-@@ -1054,6 +1083,15 @@ cdc_ncm_fill_tx_frame(struct usbnet *dev
+@@ -1065,6 +1094,15 @@ cdc_ncm_fill_tx_frame(struct usbnet *dev
  	struct sk_buff *skb_out;
  	u16 n = 0, index, ndplen;
  	u8 ready2send = 0;
@@ -151,7 +151,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  
  	/* if there is a remaining skb, it gets priority */
  	if (skb != NULL) {
-@@ -1108,7 +1146,7 @@ cdc_ncm_fill_tx_frame(struct usbnet *dev
+@@ -1119,7 +1157,7 @@ cdc_ncm_fill_tx_frame(struct usbnet *dev
  		cdc_ncm_align_tail(skb_out,  ctx->tx_modulus, ctx->tx_remainder, ctx->tx_max);
  
  		/* check if we had enough room left for both NDP and frame */
@@ -160,7 +160,7 @@ Signed-off-by: David S. Miller <davem at davemloft.net>
  			if (n == 0) {
  				/* won't fit, MTU problem? */
  				dev_kfree_skb_any(skb);
-@@ -1181,6 +1219,17 @@ cdc_ncm_fill_tx_frame(struct usbnet *dev
+@@ -1192,6 +1230,17 @@ cdc_ncm_fill_tx_frame(struct usbnet *dev
  		/* variables will be reset at next call */
  	}
  
diff --git a/target/linux/generic/patches-4.1/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch b/target/linux/generic/patches-4.1/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch
index 2cd5a04..c7bf45a 100644
--- a/target/linux/generic/patches-4.1/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch
+++ b/target/linux/generic/patches-4.1/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch
@@ -48,7 +48,7 @@ Signed-off-by: Petr Štetiar <ynezz at true.cz>
 
 --- a/drivers/net/usb/qmi_wwan.c
 +++ b/drivers/net/usb/qmi_wwan.c
-@@ -821,6 +821,7 @@ static const struct usb_device_id produc
+@@ -824,6 +824,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 <ynezz at 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) */
-@@ -852,10 +853,24 @@ static const struct usb_device_id produc
+@@ -855,10 +856,24 @@ static const struct usb_device_id produc
  };
  MODULE_DEVICE_TABLE(usb, products);
  
@@ -81,7 +81,7 @@ Signed-off-by: Petr Štetiar <ynezz at true.cz>
  
  	/* Workaround to enable dynamic IDs.  This disables usbnet
  	 * blacklisting functionality.  Which, if required, can be
-@@ -867,6 +882,12 @@ static int qmi_wwan_probe(struct usb_int
+@@ -870,6 +885,12 @@ static int qmi_wwan_probe(struct usb_int
  		id->driver_info = (unsigned long)&qmi_wwan_info;
  	}
  
diff --git a/target/linux/generic/patches-4.1/204-module_strip.patch b/target/linux/generic/patches-4.1/204-module_strip.patch
index e46421a..4f5f647 100644
--- a/target/linux/generic/patches-4.1/204-module_strip.patch
+++ b/target/linux/generic/patches-4.1/204-module_strip.patch
@@ -109,7 +109,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  config INIT_ALL_POSSIBLE
 --- a/kernel/module.c
 +++ b/kernel/module.c
-@@ -2685,6 +2685,7 @@ static struct module *setup_load_info(st
+@@ -2709,6 +2709,7 @@ static struct module *setup_load_info(st
  
  static int check_modinfo(struct module *mod, struct load_info *info, int flags)
  {
@@ -117,7 +117,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	const char *modmagic = get_modinfo(info, "vermagic");
  	int err;
  
-@@ -2710,6 +2711,7 @@ static int check_modinfo(struct module *
+@@ -2734,6 +2735,7 @@ static int check_modinfo(struct module *
  		pr_warn("%s: module is from the staging directory, the quality "
  			"is unknown, you have been warned.\n", mod->name);
  	}
diff --git a/target/linux/generic/patches-4.1/220-gc_sections.patch b/target/linux/generic/patches-4.1/220-gc_sections.patch
index 832be4f..d18faba 100644
--- a/target/linux/generic/patches-4.1/220-gc_sections.patch
+++ b/target/linux/generic/patches-4.1/220-gc_sections.patch
@@ -324,7 +324,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
  			VMLINUX_SYMBOL(__ctors_end) = .;
  #else
  #define KERNEL_CTORS()
-@@ -542,7 +543,7 @@
+@@ -546,7 +547,7 @@
  #define SBSS(sbss_align)						\
  	. = ALIGN(sbss_align);						\
  	.sbss : AT(ADDR(.sbss) - LOAD_OFFSET) {				\
@@ -333,7 +333,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
  		*(.scommon)						\
  	}
  
-@@ -560,7 +561,7 @@
+@@ -564,7 +565,7 @@
  		BSS_FIRST_SECTIONS					\
  		*(.bss..page_aligned)					\
  		*(.dynbss)						\
@@ -342,7 +342,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
  		*(COMMON)						\
  	}
  
-@@ -609,7 +610,7 @@
+@@ -613,7 +614,7 @@
  	. = ALIGN(8);							\
  	__bug_table : AT(ADDR(__bug_table) - LOAD_OFFSET) {		\
  		VMLINUX_SYMBOL(__start___bug_table) = .;		\
@@ -351,7 +351,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
  		VMLINUX_SYMBOL(__stop___bug_table) = .;			\
  	}
  #else
-@@ -621,7 +622,7 @@
+@@ -625,7 +626,7 @@
  	. = ALIGN(4);							\
  	.tracedata : AT(ADDR(.tracedata) - LOAD_OFFSET) {		\
  		VMLINUX_SYMBOL(__tracedata_start) = .;			\
@@ -360,7 +360,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
  		VMLINUX_SYMBOL(__tracedata_end) = .;			\
  	}
  #else
-@@ -638,17 +639,17 @@
+@@ -642,17 +643,17 @@
  #define INIT_SETUP(initsetup_align)					\
  		. = ALIGN(initsetup_align);				\
  		VMLINUX_SYMBOL(__setup_start) = .;			\
@@ -382,7 +382,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
  		INIT_CALLS_LEVEL(0)					\
  		INIT_CALLS_LEVEL(1)					\
  		INIT_CALLS_LEVEL(2)					\
-@@ -662,21 +663,21 @@
+@@ -666,21 +667,21 @@
  
  #define CON_INITCALL							\
  		VMLINUX_SYMBOL(__con_initcall_start) = .;		\
diff --git a/target/linux/generic/patches-4.1/221-module_exports.patch b/target/linux/generic/patches-4.1/221-module_exports.patch
index 57e2549..38ea10a 100644
--- a/target/linux/generic/patches-4.1/221-module_exports.patch
+++ b/target/linux/generic/patches-4.1/221-module_exports.patch
@@ -43,7 +43,7 @@
  	}								\
  									\
  	/* __*init sections */						\
-@@ -696,6 +706,8 @@
+@@ -700,6 +710,8 @@
  	EXIT_TEXT							\
  	EXIT_DATA							\
  	EXIT_CALL							\
diff --git a/target/linux/generic/patches-4.1/300-mips_expose_boot_raw.patch b/target/linux/generic/patches-4.1/300-mips_expose_boot_raw.patch
index 49f2ded..b9cf5ba 100644
--- a/target/linux/generic/patches-4.1/300-mips_expose_boot_raw.patch
+++ b/target/linux/generic/patches-4.1/300-mips_expose_boot_raw.patch
@@ -18,7 +18,7 @@ Acked-by: Rob Landley <rob at landley.net>
  config CEVT_BCM1480
  	bool
  
-@@ -2676,6 +2673,18 @@ config USE_OF
+@@ -2677,6 +2674,18 @@ config USE_OF
  config BUILTIN_DTB
  	bool
  
diff --git a/target/linux/generic/patches-4.1/304-mips_disable_fpu.patch b/target/linux/generic/patches-4.1/304-mips_disable_fpu.patch
index 3288d19..646fe53 100644
--- a/target/linux/generic/patches-4.1/304-mips_disable_fpu.patch
+++ b/target/linux/generic/patches-4.1/304-mips_disable_fpu.patch
@@ -26,7 +26,7 @@ v2: incorporated changes suggested by Jonas Gorski
 
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -2668,6 +2668,20 @@ config MIPS_O32_FP64_SUPPORT
+@@ -2669,6 +2669,20 @@ config MIPS_O32_FP64_SUPPORT
  
  	  If unsure, say N.
  
diff --git a/target/linux/generic/patches-4.1/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch b/target/linux/generic/patches-4.1/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch
index d2fb802..7afc138 100644
--- a/target/linux/generic/patches-4.1/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch
+++ b/target/linux/generic/patches-4.1/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch
@@ -11,7 +11,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
 
 --- a/drivers/mtd/ubi/build.c
 +++ b/drivers/mtd/ubi/build.c
-@@ -1218,6 +1218,49 @@ static struct mtd_info * __init open_mtd
+@@ -1221,6 +1221,49 @@ static struct mtd_info * __init open_mtd
  	return mtd;
  }
  
@@ -61,7 +61,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  static int __init ubi_init(void)
  {
  	int err, i, k;
-@@ -1310,6 +1353,12 @@ static int __init ubi_init(void)
+@@ -1313,6 +1356,12 @@ static int __init ubi_init(void)
  		}
  	}
  
diff --git a/target/linux/generic/patches-4.1/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch b/target/linux/generic/patches-4.1/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch
index f6c71a2..c4a672c 100644
--- a/target/linux/generic/patches-4.1/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch
+++ b/target/linux/generic/patches-4.1/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch
@@ -41,7 +41,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  #ifdef CONFIG_ROOT_NFS
  
  #define NFSROOT_TIMEOUT_MIN	5
-@@ -532,6 +552,10 @@ void __init mount_root(void)
+@@ -532,6 +553,10 @@ void __init mount_root(void)
  			change_floppy("root floppy");
  	}
  #endif
diff --git a/target/linux/generic/patches-4.1/494-mtd-ubi-add-EOF-marker-support.patch b/target/linux/generic/patches-4.1/494-mtd-ubi-add-EOF-marker-support.patch
index 14fae76..dd5ee30 100644
--- a/target/linux/generic/patches-4.1/494-mtd-ubi-add-EOF-marker-support.patch
+++ b/target/linux/generic/patches-4.1/494-mtd-ubi-add-EOF-marker-support.patch
@@ -41,7 +41,7 @@
  		break;
 --- a/drivers/mtd/ubi/ubi.h
 +++ b/drivers/mtd/ubi/ubi.h
-@@ -739,6 +739,7 @@ struct ubi_attach_info {
+@@ -741,6 +741,7 @@ struct ubi_attach_info {
  	int mean_ec;
  	uint64_t ec_sum;
  	int ec_count;
diff --git a/target/linux/generic/patches-4.1/610-netfilter_match_bypass_default_checks.patch b/target/linux/generic/patches-4.1/610-netfilter_match_bypass_default_checks.patch
index 282cbdd..1187845 100644
--- a/target/linux/generic/patches-4.1/610-netfilter_match_bypass_default_checks.patch
+++ b/target/linux/generic/patches-4.1/610-netfilter_match_bypass_default_checks.patch
@@ -50,25 +50,16 @@
  static bool
  ip_checkentry(const struct ipt_ip *ip)
  {
-@@ -564,7 +590,7 @@ static void cleanup_match(struct xt_entr
- }
- 
- static int
--check_entry(const struct ipt_entry *e, const char *name)
-+check_entry(struct ipt_entry *e, const char *name)
- {
- 	const struct xt_entry_target *t;
- 
-@@ -573,6 +599,8 @@ check_entry(const struct ipt_entry *e, c
- 		return -EINVAL;
- 	}
+@@ -649,6 +675,8 @@ find_check_entry(struct ipt_entry *e, st
+ 	struct xt_mtchk_param mtpar;
+ 	struct xt_entry_match *ematch;
  
 +	ip_checkdefault(&e->ip);
 +
- 	if (e->target_offset + sizeof(struct xt_entry_target) >
- 	    e->next_offset)
- 		return -EINVAL;
-@@ -934,6 +962,7 @@ copy_entries_to_user(unsigned int total_
+ 	j = 0;
+ 	mtpar.net	= net;
+ 	mtpar.table     = name;
+@@ -941,6 +969,7 @@ copy_entries_to_user(unsigned int total_
  	const struct xt_table_info *private = table->private;
  	int ret = 0;
  	const void *loc_cpu_entry;
@@ -76,7 +67,7 @@
  
  	counters = alloc_counters(table);
  	if (IS_ERR(counters))
-@@ -964,6 +993,14 @@ copy_entries_to_user(unsigned int total_
+@@ -971,6 +1000,14 @@ copy_entries_to_user(unsigned int total_
  			ret = -EFAULT;
  			goto free_counters;
  		}
diff --git a/target/linux/generic/patches-4.1/630-packet_socket_type.patch b/target/linux/generic/patches-4.1/630-packet_socket_type.patch
index a52c454..a59cba3 100644
--- a/target/linux/generic/patches-4.1/630-packet_socket_type.patch
+++ b/target/linux/generic/patches-4.1/630-packet_socket_type.patch
@@ -51,7 +51,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		goto out;
  
  	if (!net_eq(dev_net(dev), sock_net(sk)))
-@@ -1765,12 +1767,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 <nbd at nbd.name>
  	if (!net_eq(dev_net(dev), sock_net(sk)))
  		goto drop;
  
-@@ -1890,12 +1892,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 <nbd at nbd.name>
  	if (!net_eq(dev_net(dev), sock_net(sk)))
  		goto drop;
  
-@@ -2871,6 +2873,7 @@ static int packet_create(struct net *net
+@@ -2866,6 +2868,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 <nbd at nbd.name>
  
  	if (sock->type == SOCK_PACKET)
  		po->prot_hook.func = packet_rcv_spkt;
-@@ -3476,6 +3479,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3472,6 +3475,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 <nbd at nbd.name>
  	default:
  		return -ENOPROTOOPT;
  	}
-@@ -3527,6 +3540,13 @@ static int packet_getsockopt(struct sock
+@@ -3523,6 +3536,13 @@ static int packet_getsockopt(struct sock
  	case PACKET_VNET_HDR:
  		val = po->has_vnet_hdr;
  		break;
diff --git a/target/linux/generic/patches-4.1/655-increase_skb_pad.patch b/target/linux/generic/patches-4.1/655-increase_skb_pad.patch
index ad872ff..dfc93ef 100644
--- a/target/linux/generic/patches-4.1/655-increase_skb_pad.patch
+++ b/target/linux/generic/patches-4.1/655-increase_skb_pad.patch
@@ -1,6 +1,6 @@
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -2028,7 +2028,7 @@ static inline int pskb_network_may_pull(
+@@ -2052,7 +2052,7 @@ static inline int pskb_network_may_pull(
   * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
   */
  #ifndef NET_SKB_PAD
diff --git a/target/linux/generic/patches-4.1/656-skb_reduce_truesize-helper.patch b/target/linux/generic/patches-4.1/656-skb_reduce_truesize-helper.patch
index 762ba25..6baee52 100644
--- a/target/linux/generic/patches-4.1/656-skb_reduce_truesize-helper.patch
+++ b/target/linux/generic/patches-4.1/656-skb_reduce_truesize-helper.patch
@@ -14,7 +14,7 @@ when needed.
 
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -2073,6 +2073,24 @@ static inline void pskb_trim_unique(stru
+@@ -2097,6 +2097,24 @@ static inline void pskb_trim_unique(stru
  	BUG_ON(err);
  }
  
diff --git a/target/linux/generic/patches-4.1/657-qdisc_reduce_truesize.patch b/target/linux/generic/patches-4.1/657-qdisc_reduce_truesize.patch
index 6777eec..410e0b7 100644
--- a/target/linux/generic/patches-4.1/657-qdisc_reduce_truesize.patch
+++ b/target/linux/generic/patches-4.1/657-qdisc_reduce_truesize.patch
@@ -13,7 +13,7 @@ commont qdiscs.
 
 --- a/net/sched/sch_codel.c
 +++ b/net/sched/sch_codel.c
-@@ -96,6 +96,8 @@ static int codel_qdisc_enqueue(struct sk
+@@ -97,6 +97,8 @@ static int codel_qdisc_enqueue(struct sk
  	struct codel_sched_data *q;
  
  	if (likely(qdisc_qlen(sch) < sch->limit)) {
diff --git a/target/linux/generic/patches-4.1/660-fq_codel_defaults.patch b/target/linux/generic/patches-4.1/660-fq_codel_defaults.patch
index e0f73de..8a870cc 100644
--- a/target/linux/generic/patches-4.1/660-fq_codel_defaults.patch
+++ b/target/linux/generic/patches-4.1/660-fq_codel_defaults.patch
@@ -1,6 +1,6 @@
 --- a/net/sched/sch_fq_codel.c
 +++ b/net/sched/sch_fq_codel.c
-@@ -387,8 +387,8 @@ static int fq_codel_init(struct Qdisc *s
+@@ -394,8 +394,8 @@ static int fq_codel_init(struct Qdisc *s
  	struct fq_codel_sched_data *q = qdisc_priv(sch);
  	int i;
  
diff --git a/target/linux/generic/patches-4.1/662-use_fq_codel_by_default.patch b/target/linux/generic/patches-4.1/662-use_fq_codel_by_default.patch
index 7e42cdd..cb80c3f 100644
--- a/target/linux/generic/patches-4.1/662-use_fq_codel_by_default.patch
+++ b/target/linux/generic/patches-4.1/662-use_fq_codel_by_default.patch
@@ -13,7 +13,7 @@
  	  device, it has to decide which ones to send first, which ones to
 --- a/net/sched/sch_fq_codel.c
 +++ b/net/sched/sch_fq_codel.c
-@@ -592,7 +592,7 @@ static const struct Qdisc_class_ops fq_c
+@@ -599,7 +599,7 @@ static const struct Qdisc_class_ops fq_c
  	.walk		=	fq_codel_walk,
  };
  
@@ -22,7 +22,7 @@
  	.cl_ops		=	&fq_codel_class_ops,
  	.id		=	"fq_codel",
  	.priv_size	=	sizeof(struct fq_codel_sched_data),
-@@ -608,6 +608,7 @@ static struct Qdisc_ops fq_codel_qdisc_o
+@@ -615,6 +615,7 @@ static struct Qdisc_ops fq_codel_qdisc_o
  	.dump_stats =	fq_codel_dump_stats,
  	.owner		=	THIS_MODULE,
  };
@@ -42,7 +42,7 @@
  struct Qdisc_class_common {
 --- a/net/sched/sch_generic.c
 +++ b/net/sched/sch_generic.c
-@@ -739,7 +739,7 @@ static void attach_one_default_qdisc(str
+@@ -742,7 +742,7 @@ static void attach_one_default_qdisc(str
  
  	if (dev->tx_queue_len) {
  		qdisc = qdisc_create_dflt(dev_queue,
diff --git a/target/linux/generic/patches-4.1/663-remove_pfifo_fast.patch b/target/linux/generic/patches-4.1/663-remove_pfifo_fast.patch
index 5b26ca3..50b90b3 100644
--- a/target/linux/generic/patches-4.1/663-remove_pfifo_fast.patch
+++ b/target/linux/generic/patches-4.1/663-remove_pfifo_fast.patch
@@ -1,6 +1,6 @@
 --- a/net/sched/sch_generic.c
 +++ b/net/sched/sch_generic.c
-@@ -442,140 +442,6 @@ static struct Qdisc noqueue_qdisc = {
+@@ -445,140 +445,6 @@ static struct Qdisc noqueue_qdisc = {
  	.busylock	=	__SPIN_LOCK_UNLOCKED(noqueue_qdisc.busylock),
  };
  
diff --git a/target/linux/generic/patches-4.1/664-codel_fix_3_12.patch b/target/linux/generic/patches-4.1/664-codel_fix_3_12.patch
index 8e156fd..d17acd0 100644
--- a/target/linux/generic/patches-4.1/664-codel_fix_3_12.patch
+++ b/target/linux/generic/patches-4.1/664-codel_fix_3_12.patch
@@ -1,6 +1,6 @@
 --- a/net/sched/sch_api.c
 +++ b/net/sched/sch_api.c
-@@ -1960,7 +1960,7 @@ static int __init pktsched_init(void)
+@@ -1962,7 +1962,7 @@ static int __init pktsched_init(void)
  		return err;
  	}
  
diff --git a/target/linux/generic/patches-4.1/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch b/target/linux/generic/patches-4.1/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
index f40fc38..b990f50 100644
--- a/target/linux/generic/patches-4.1/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
+++ b/target/linux/generic/patches-4.1/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
@@ -295,15 +295,15 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  
  		__skb_tunnel_rx(skb, t->dev, t->net);
  
-@@ -1123,6 +1260,7 @@ ip4ip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1168,6 +1305,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
  	__u32 mtu;
  	u8 tproto;
  	int err;
 +	struct __ip6_tnl_fmr *fmr;
  
  	tproto = ACCESS_ONCE(t->parms.proto);
- 	if (tproto != IPPROTO_IPIP && tproto != 0)
-@@ -1142,6 +1280,18 @@ ip4ip6_tnl_xmit(struct sk_buff *skb, str
+ 	if ((tproto != IPPROTO_IPV6 && tproto != 0) ||
+@@ -1198,6 +1336,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
  	if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)
  		fl6.flowi6_mark = skb->mark;
  
@@ -311,18 +311,18 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
 +	for (fmr = t->parms.fmrs; fmr; fmr = fmr->next) {
 +		unsigned mshift = 32 - fmr->ip4_prefix_len;
 +		if (ntohl(fmr->ip4_prefix.s_addr) >> mshift ==
-+				ntohl(iph->daddr) >> mshift)
++				ntohl(ip_hdr(skb)->daddr) >> mshift)
 +			break;
 +	}
 +
 +	/* change dstaddr according to FMR */
 +	if (fmr)
-+		ip4ip6_fmr_calc(&fl6.daddr, iph, skb_tail_pointer(skb), fmr, true);
++		ip4ip6_fmr_calc(&fl6.daddr, ip_hdr(skb), skb_tail_pointer(skb), fmr, true);
 +
  	err = ip6_tnl_xmit2(skb, dev, dsfield, &fl6, encap_limit, &mtu);
  	if (err != 0) {
- 		/* XXX: send ICMP error even if DF is not set. */
-@@ -1310,6 +1460,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
+ 		if (err == -EMSGSIZE)
+@@ -1312,6 +1462,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
  	t->parms.flowinfo = p->flowinfo;
  	t->parms.link = p->link;
  	t->parms.proto = p->proto;
@@ -337,7 +337,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  	ip6_tnl_dst_reset(t);
  	ip6_tnl_link_config(t);
  	return 0;
-@@ -1348,6 +1506,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
+@@ -1350,6 +1508,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
  	p->flowinfo = u->flowinfo;
  	p->link = u->link;
  	p->proto = u->proto;
@@ -345,7 +345,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  	memcpy(p->name, u->name, sizeof(u->name));
  }
  
-@@ -1634,6 +1793,15 @@ static int ip6_tnl_validate(struct nlatt
+@@ -1636,6 +1795,15 @@ static int ip6_tnl_validate(struct nlatt
  	return 0;
  }
  
@@ -361,7 +361,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  static void ip6_tnl_netlink_parms(struct nlattr *data[],
  				  struct __ip6_tnl_parm *parms)
  {
-@@ -1665,6 +1833,46 @@ static void ip6_tnl_netlink_parms(struct
+@@ -1667,6 +1835,46 @@ static void ip6_tnl_netlink_parms(struct
  
  	if (data[IFLA_IPTUN_PROTO])
  		parms->proto = nla_get_u8(data[IFLA_IPTUN_PROTO]);
@@ -408,7 +408,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  }
  
  static int ip6_tnl_newlink(struct net *src_net, struct net_device *dev,
-@@ -1717,6 +1925,12 @@ static void ip6_tnl_dellink(struct net_d
+@@ -1719,6 +1927,12 @@ static void ip6_tnl_dellink(struct net_d
  
  static size_t ip6_tnl_get_size(const struct net_device *dev)
  {
@@ -421,7 +421,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  	return
  		/* IFLA_IPTUN_LINK */
  		nla_total_size(4) +
-@@ -1734,6 +1948,24 @@ static size_t ip6_tnl_get_size(const str
+@@ -1736,6 +1950,24 @@ static size_t ip6_tnl_get_size(const str
  		nla_total_size(4) +
  		/* IFLA_IPTUN_PROTO */
  		nla_total_size(1) +
@@ -446,7 +446,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  		0;
  }
  
-@@ -1741,6 +1973,9 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -1743,6 +1975,9 @@ static int ip6_tnl_fill_info(struct sk_b
  {
  	struct ip6_tnl *tunnel = netdev_priv(dev);
  	struct __ip6_tnl_parm *parm = &tunnel->parms;
@@ -456,7 +456,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  
  	if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
  	    nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
-@@ -1749,8 +1984,27 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -1751,8 +1986,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) ||
@@ -485,7 +485,7 @@ Signed-off-by: Steven Barth <cyrus at openwrt.org>
  	return 0;
  
  nla_put_failure:
-@@ -1774,6 +2028,7 @@ static const struct nla_policy ip6_tnl_p
+@@ -1776,6 +2030,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/patches-4.1/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/patches-4.1/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
index a7cfa23..98abfac 100644
--- a/target/linux/generic/patches-4.1/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
+++ b/target/linux/generic/patches-4.1/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
@@ -102,7 +102,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	return 0;
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -1602,6 +1602,8 @@ struct net_device {
+@@ -1603,6 +1603,8 @@ struct net_device {
  	struct netdev_hw_addr_list	mc;
  	struct netdev_hw_addr_list	dev_addrs;
  
diff --git a/target/linux/generic/patches-4.1/721-phy_packets.patch b/target/linux/generic/patches-4.1/721-phy_packets.patch
index 3a963b5..ecf1851 100644
--- a/target/linux/generic/patches-4.1/721-phy_packets.patch
+++ b/target/linux/generic/patches-4.1/721-phy_packets.patch
@@ -1,6 +1,6 @@
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -1270,6 +1270,7 @@ enum netdev_priv_flags {
+@@ -1271,6 +1271,7 @@ enum netdev_priv_flags {
  	IFF_XMIT_DST_RELEASE_PERM	= 1<<22,
  	IFF_IPVLAN_MASTER		= 1<<23,
  	IFF_IPVLAN_SLAVE		= 1<<24,
@@ -8,7 +8,7 @@
  };
  
  #define IFF_802_1Q_VLAN			IFF_802_1Q_VLAN
-@@ -1297,6 +1298,7 @@ enum netdev_priv_flags {
+@@ -1298,6 +1299,7 @@ enum netdev_priv_flags {
  #define IFF_XMIT_DST_RELEASE_PERM	IFF_XMIT_DST_RELEASE_PERM
  #define IFF_IPVLAN_MASTER		IFF_IPVLAN_MASTER
  #define IFF_IPVLAN_SLAVE		IFF_IPVLAN_SLAVE
@@ -16,7 +16,7 @@
  
  /**
   *	struct net_device - The DEVICE structure.
-@@ -1567,6 +1569,11 @@ struct net_device {
+@@ -1568,6 +1570,11 @@ struct net_device {
  	const struct swdev_ops *swdev_ops;
  #endif
  
@@ -28,7 +28,7 @@
  	const struct header_ops *header_ops;
  
  	unsigned int		flags;
-@@ -1633,6 +1640,10 @@ struct net_device {
+@@ -1634,6 +1641,10 @@ struct net_device {
  	struct mpls_dev __rcu	*mpls_ptr;
  #endif
  
@@ -41,7 +41,7 @@
   */
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -2059,6 +2059,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -2083,6 +2083,10 @@ static inline int pskb_trim(struct sk_bu
  	return (len < skb->len) ? __pskb_trim(skb, len) : 0;
  }
  
@@ -52,7 +52,7 @@
  /**
   *	pskb_trim_unique - remove end from a paged unique (not cloned) buffer
   *	@skb: buffer to alter
-@@ -2185,16 +2189,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -2209,16 +2213,6 @@ static inline struct sk_buff *dev_alloc_
  }
  
  
diff --git a/target/linux/generic/patches-4.1/810-pci_disable_common_quirks.patch b/target/linux/generic/patches-4.1/810-pci_disable_common_quirks.patch
index 89d93e1..742618b 100644
--- a/target/linux/generic/patches-4.1/810-pci_disable_common_quirks.patch
+++ b/target/linux/generic/patches-4.1/810-pci_disable_common_quirks.patch
@@ -23,7 +23,7 @@
  /* The Mellanox Tavor device gives false positive parity errors
   * Mark this device with a broken_parity_status, to allow
   * PCI scanning code to "skip" this now blacklisted device.
-@@ -2965,6 +2966,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
+@@ -2977,6 +2978,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
  
@@ -31,7 +31,7 @@
  
  /*
   * Ivytown NTB BAR sizes are misreported by the hardware due to an erratum.  To
-@@ -3021,6 +3023,8 @@ static void fixup_debug_report(struct pc
+@@ -3033,6 +3035,8 @@ static void fixup_debug_report(struct pc
  	}
  }
  
@@ -40,7 +40,7 @@
  /*
   * Some BIOS implementations leave the Intel GPU interrupts enabled,
   * even though no one is handling them (f.e. i915 driver is never loaded).
-@@ -3055,6 +3059,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
+@@ -3067,6 +3071,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);
  
diff --git a/target/linux/generic/patches-4.1/811-pci_disable_usb_common_quirks.patch b/target/linux/generic/patches-4.1/811-pci_disable_usb_common_quirks.patch
index 6de4f6b..e078b4e 100644
--- a/target/linux/generic/patches-4.1/811-pci_disable_usb_common_quirks.patch
+++ b/target/linux/generic/patches-4.1/811-pci_disable_usb_common_quirks.patch
@@ -84,7 +84,7 @@
  #endif  /*  __LINUX_USB_PCI_QUIRKS_H  */
 --- a/include/linux/usb/hcd.h
 +++ b/include/linux/usb/hcd.h
-@@ -447,7 +447,14 @@ extern int usb_hcd_pci_probe(struct pci_
+@@ -448,7 +448,14 @@ extern int usb_hcd_pci_probe(struct pci_
  extern void usb_hcd_pci_remove(struct pci_dev *dev);
  extern void usb_hcd_pci_shutdown(struct pci_dev *dev);
  
diff --git a/target/linux/generic/patches-4.1/834-ledtrig-libata.patch b/target/linux/generic/patches-4.1/834-ledtrig-libata.patch
index 84b722d..41b7d9a 100644
--- a/target/linux/generic/patches-4.1/834-ledtrig-libata.patch
+++ b/target/linux/generic/patches-4.1/834-ledtrig-libata.patch
@@ -69,7 +69,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  /**
   *	ata_build_rw_tf - Build ATA taskfile for given read/write request
   *	@tf: Target ATA taskfile
-@@ -4773,6 +4786,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -4779,6 +4792,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
  		if (tag < 0)
  			return NULL;
  	}
@@ -79,7 +79,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  
  	qc = __ata_qc_from_tag(ap, tag);
  	qc->tag = tag;
-@@ -5670,6 +5686,9 @@ struct ata_port *ata_port_alloc(struct a
+@@ -5676,6 +5692,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 <daniel at makrotopia.org>
  	ata_sff_port_init(ap);
  
  	return ap;
-@@ -5691,6 +5710,12 @@ static void ata_host_release(struct devi
+@@ -5697,6 +5716,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 <daniel at makrotopia.org>
  		kfree(ap);
  		host->ports[i] = NULL;
  	}
-@@ -6137,7 +6162,23 @@ int ata_host_register(struct ata_host *h
+@@ -6143,7 +6168,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/patches-4.1/863-gpiommc.patch b/target/linux/generic/patches-4.1/863-gpiommc.patch
index bd3cc84..a8a8ec6 100644
--- a/target/linux/generic/patches-4.1/863-gpiommc.patch
+++ b/target/linux/generic/patches-4.1/863-gpiommc.patch
@@ -830,7 +830,7 @@
 +be done automatically.
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -4531,6 +4531,11 @@ T:	git git://linuxtv.org/anttip/media_tr
+@@ -4541,6 +4541,11 @@ T:	git git://linuxtv.org/anttip/media_tr
  S:	Maintained
  F:	drivers/media/usb/hackrf/
  
diff --git a/target/linux/generic/patches-4.1/903-debloat_direct_io.patch b/target/linux/generic/patches-4.1/903-debloat_direct_io.patch
index ca35e57..92e36f0 100644
--- a/target/linux/generic/patches-4.1/903-debloat_direct_io.patch
+++ b/target/linux/generic/patches-4.1/903-debloat_direct_io.patch
@@ -26,7 +26,7 @@
  endif
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
-@@ -2657,6 +2657,7 @@ enum {
+@@ -2659,6 +2659,7 @@ enum {
  	DIO_SKIP_DIO_COUNT = 0x08,
  };
  
@@ -34,7 +34,7 @@
  void dio_end_io(struct bio *bio, int error);
  
  ssize_t __blockdev_direct_IO(struct kiocb *iocb, struct inode *inode,
-@@ -2664,6 +2665,18 @@ ssize_t __blockdev_direct_IO(struct kioc
+@@ -2666,6 +2667,18 @@ ssize_t __blockdev_direct_IO(struct kioc
  			     loff_t offset, get_block_t get_block,
  			     dio_iodone_t end_io, dio_submit_t submit_io,
  			     int flags);
diff --git a/target/linux/generic/patches-4.1/904-debloat_dma_buf.patch b/target/linux/generic/patches-4.1/904-debloat_dma_buf.patch
index 9fffa19..8aca297 100644
--- a/target/linux/generic/patches-4.1/904-debloat_dma_buf.patch
+++ b/target/linux/generic/patches-4.1/904-debloat_dma_buf.patch
@@ -34,7 +34,7 @@
 +MODULE_LICENSE("GPL");
 --- a/kernel/sched/core.c
 +++ b/kernel/sched/core.c
-@@ -1768,6 +1768,7 @@ int wake_up_state(struct task_struct *p,
+@@ -1790,6 +1790,7 @@ int wake_up_state(struct task_struct *p,
  {
  	return try_to_wake_up(p, state, 0);
  }
diff --git a/target/linux/oxnas/patches-4.1/320-oxnas-irqchip.patch b/target/linux/oxnas/patches-4.1/320-oxnas-irqchip.patch
index d0833ea..5a2447d 100644
--- a/target/linux/oxnas/patches-4.1/320-oxnas-irqchip.patch
+++ b/target/linux/oxnas/patches-4.1/320-oxnas-irqchip.patch
@@ -24,7 +24,7 @@
  obj-$(CONFIG_ARCH_VT8500)		+= irq-vt8500.o
 --- a/drivers/irqchip/irq-gic.c
 +++ b/drivers/irqchip/irq-gic.c
-@@ -1036,6 +1036,7 @@ IRQCHIP_DECLARE(arm1176jzf_dc_gic, "arm,
+@@ -1044,6 +1044,7 @@ IRQCHIP_DECLARE(arm1176jzf_dc_gic, "arm,
  IRQCHIP_DECLARE(cortex_a15_gic, "arm,cortex-a15-gic", gic_of_init);
  IRQCHIP_DECLARE(cortex_a9_gic, "arm,cortex-a9-gic", gic_of_init);
  IRQCHIP_DECLARE(cortex_a7_gic, "arm,cortex-a7-gic", gic_of_init);
diff --git a/target/linux/oxnas/patches-4.1/800-oxnas-ehci.patch b/target/linux/oxnas/patches-4.1/800-oxnas-ehci.patch
index b283bbd..87377e7 100644
--- a/target/linux/oxnas/patches-4.1/800-oxnas-ehci.patch
+++ b/target/linux/oxnas/patches-4.1/800-oxnas-ehci.patch
@@ -16,7 +16,7 @@
  config USB_OXU210HP_HCD
 --- a/drivers/usb/host/Makefile
 +++ b/drivers/usb/host/Makefile
-@@ -42,6 +42,7 @@ obj-$(CONFIG_USB_EHCI_HCD_AT91) += ehci-
+@@ -39,6 +39,7 @@ obj-$(CONFIG_USB_EHCI_HCD_AT91) += ehci-
  obj-$(CONFIG_USB_EHCI_MSM)	+= ehci-msm.o
  obj-$(CONFIG_USB_EHCI_TEGRA)	+= ehci-tegra.o
  obj-$(CONFIG_USB_W90X900_EHCI)	+= ehci-w90x900.o
diff --git a/target/linux/oxnas/patches-4.1/996-ATAG_DTB_COMPAT_CMDLINE_MANGLE.patch b/target/linux/oxnas/patches-4.1/996-ATAG_DTB_COMPAT_CMDLINE_MANGLE.patch
index be15ec4..297fc7f 100644
--- a/target/linux/oxnas/patches-4.1/996-ATAG_DTB_COMPAT_CMDLINE_MANGLE.patch
+++ b/target/linux/oxnas/patches-4.1/996-ATAG_DTB_COMPAT_CMDLINE_MANGLE.patch
@@ -18,7 +18,7 @@ Signed-off-by: Adrian Panella <ianchi74 at outlook.com>
 
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -1928,6 +1928,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
+@@ -1894,6 +1894,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
  	  The command-line arguments provided by the boot loader will be
  	  appended to the the device tree bootargs property.
  
@@ -164,7 +164,7 @@ Signed-off-by: Adrian Panella <ianchi74 at outlook.com>
  static int kernel_init(void *);
  
  extern void init_IRQ(void);
-@@ -560,6 +564,18 @@ asmlinkage __visible void __init start_k
+@@ -555,6 +559,18 @@ asmlinkage __visible void __init start_k
  	page_alloc_init();
  
  	pr_notice("Kernel command line: %s\n", boot_command_line);
diff --git a/target/linux/oxnas/patches-4.1/999-libata-hacks.patch b/target/linux/oxnas/patches-4.1/999-libata-hacks.patch
index 7d6670b..f4574da 100644
--- a/target/linux/oxnas/patches-4.1/999-libata-hacks.patch
+++ b/target/linux/oxnas/patches-4.1/999-libata-hacks.patch
@@ -15,7 +15,7 @@
  	/* initialize internal qc */
  
  	/* XXX: Tag 0 is used for drivers with legacy EH as some
-@@ -4780,6 +4788,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
+@@ -4786,6 +4794,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
  	if (unlikely(ap->pflags & ATA_PFLAG_FROZEN))
  		return NULL;
  
@@ -25,7 +25,7 @@
  	/* libsas case */
  	if (ap->flags & ATA_FLAG_SAS_HOST) {
  		tag = ata_sas_allocate_tag(ap);
-@@ -4825,6 +4836,8 @@ void ata_qc_free(struct ata_queued_cmd *
+@@ -4831,6 +4842,8 @@ void ata_qc_free(struct ata_queued_cmd *
  		qc->tag = ATA_TAG_POISON;
  		if (ap->flags & ATA_FLAG_SAS_HOST)
  			ata_sas_free_tag(tag, ap);
diff --git a/target/linux/rb532/patches-4.1/001-cmdline_hack.patch b/target/linux/rb532/patches-4.1/001-cmdline_hack.patch
index 2429b1b..a39da9c 100644
--- a/target/linux/rb532/patches-4.1/001-cmdline_hack.patch
+++ b/target/linux/rb532/patches-4.1/001-cmdline_hack.patch
@@ -1,20 +1,20 @@
 --- a/arch/mips/rb532/prom.c
 +++ b/arch/mips/rb532/prom.c
 @@ -67,6 +67,7 @@ static inline unsigned long tag2ul(char
-	return simple_strtoul(num, 0, 10);
+ 	return simple_strtoul(num, 0, 10);
  }
-
+ 
 +extern char __image_cmdline[];
  void __init prom_setup_cmdline(void)
  {
-	static char cmd_line[COMMAND_LINE_SIZE] __initdata;
+ 	static char cmd_line[COMMAND_LINE_SIZE] __initdata;
 @@ -108,6 +109,9 @@ void __init prom_setup_cmdline(void)
-	}
-	*(cp++) = ' ';
-
+ 	}
+ 	*(cp++) = ' ';
+ 
 +	strcpy(cp,(__image_cmdline));
 +	cp += strlen(__image_cmdline);
 +
-	i = strlen(arcs_cmdline);
-	if (i > 0) {
-		*(cp++) = ' ';
+ 	i = strlen(arcs_cmdline);
+ 	if (i > 0) {
+ 		*(cp++) = ' ';
diff --git a/target/linux/rb532/patches-4.1/002-rb532_nand_fixup.patch b/target/linux/rb532/patches-4.1/002-rb532_nand_fixup.patch
index 5b1dd51..6f88599 100644
--- a/target/linux/rb532/patches-4.1/002-rb532_nand_fixup.patch
+++ b/target/linux/rb532/patches-4.1/002-rb532_nand_fixup.patch
@@ -2,7 +2,7 @@
 +++ b/arch/mips/rb532/devices.c
 @@ -140,6 +140,19 @@ static struct platform_device cf_slot0 =
  };
-
+ 
  /* Resources and device for NAND */
 +
 +/*
@@ -19,11 +19,11 @@
 +
  static int rb532_dev_ready(struct mtd_info *mtd)
  {
-	return gpio_get_value(GPIO_RDY);
+ 	return gpio_get_value(GPIO_RDY);
 @@ -254,6 +267,16 @@ static struct platform_device *rb532_dev
  /* NAND definitions */
  #define NAND_CHIP_DELAY 25
-
+ 
 +static int rb532_nand_fixup(struct mtd_info *mtd)
 +{
 +	struct nand_chip *chip = mtd->priv;
@@ -36,10 +36,12 @@
 +
  static void __init rb532_nand_setup(void)
  {
-	switch (mips_machtype) {
+ 	switch (mips_machtype) {
 @@ -272,6 +295,7 @@ static void __init rb532_nand_setup(void
-	rb532_nand_data.chip.nr_partitions = ARRAY_SIZE(rb532_partition_info);
-	rb532_nand_data.chip.partitions = rb532_partition_info;
-	rb532_nand_data.chip.chip_delay = NAND_CHIP_DELAY;
+ 	rb532_nand_data.chip.nr_partitions = ARRAY_SIZE(rb532_partition_info);
+ 	rb532_nand_data.chip.partitions = rb532_partition_info;
+ 	rb532_nand_data.chip.chip_delay = NAND_CHIP_DELAY;
 +	rb532_nand_data.chip.chip_fixup = &rb532_nand_fixup;
  }
+ 
+ 
diff --git a/target/linux/rb532/patches-4.1/004-rb532_partition_info-rename-rootfs-to-rootfs_onboard.patch b/target/linux/rb532/patches-4.1/004-rb532_partition_info-rename-rootfs-to-rootfs_onboard.patch
index 2ef9e51..ad4dfc4 100644
--- a/target/linux/rb532/patches-4.1/004-rb532_partition_info-rename-rootfs-to-rootfs_onboard.patch
+++ b/target/linux/rb532/patches-4.1/004-rb532_partition_info-rename-rootfs-to-rootfs_onboard.patch
@@ -1,11 +1,11 @@
 --- a/arch/mips/rb532/devices.c
 +++ b/arch/mips/rb532/devices.c
 @@ -202,7 +202,7 @@ static struct mtd_partition rb532_partit
-		.offset = 0,
-		.size = 4 * 1024 * 1024,
-	}, {
+ 		.offset = 0,
+ 		.size = 4 * 1024 * 1024,
+ 	}, {
 -		.name = "rootfs",
 +		.name = "rootfs_onboard",
-		.offset = MTDPART_OFS_NXTBLK,
-		.size = MTDPART_SIZ_FULL,
-	}
+ 		.offset = MTDPART_OFS_NXTBLK,
+ 		.size = MTDPART_SIZ_FULL,
+ 	}



More information about the lede-commits mailing list