kernel: bump 4.4 to 4.4.120 for 17.01
Bump the 4.4 kernel for the 17.01 release to 4.4.120. Refresh patches. Compile-tested: ar71xx, ramips/mt7621, x86/64 Run-tested: ar71xx, x86/64 Signed-off-by: Stijn Segers <foss@volatilesystems.org>
This commit is contained in:
		
				
					committed by
					
						
						Hauke Mehrtens
					
				
			
			
				
	
			
			
			
						parent
						
							571d3def6b
						
					
				
				
					commit
					2ae9ebf374
				
			@@ -3,10 +3,10 @@
 | 
				
			|||||||
LINUX_RELEASE?=1
 | 
					LINUX_RELEASE?=1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LINUX_VERSION-3.18 = .43
 | 
					LINUX_VERSION-3.18 = .43
 | 
				
			||||||
LINUX_VERSION-4.4 = .116
 | 
					LINUX_VERSION-4.4 = .120
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c
 | 
					LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c
 | 
				
			||||||
LINUX_KERNEL_HASH-4.4.116 = 566fea5814627ee65cc1e6b9c4bfe2f7642ac36b6185e2a3dcb9e8ba1e325fa3
 | 
					LINUX_KERNEL_HASH-4.4.120 = a25f07372a2661c577e3c8a395bfb4a9f277518a01d097275604eccd3689f478
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifdef KERNEL_PATCHVER
 | 
					ifdef KERNEL_PATCHVER
 | 
				
			||||||
  LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
 | 
					  LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -310,7 +310,7 @@
 | 
				
			|||||||
 	if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)
 | 
					 	if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)
 | 
				
			||||||
--- a/net/ipv6/ip6_tunnel.c
 | 
					--- a/net/ipv6/ip6_tunnel.c
 | 
				
			||||||
+++ b/net/ipv6/ip6_tunnel.c
 | 
					+++ b/net/ipv6/ip6_tunnel.c
 | 
				
			||||||
@@ -1410,7 +1410,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
 | 
					@@ -1307,7 +1307,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	dsfield = ipv6_get_dsfield(ipv6h);
 | 
					 	dsfield = ipv6_get_dsfield(ipv6h);
 | 
				
			||||||
 	if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS)
 | 
					 	if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4592,7 +4592,7 @@ dwc_otg: Remove duplicate gadget probe/unregister function
 | 
				
			|||||||
+module_exit(fsg_cleanup);
 | 
					+module_exit(fsg_cleanup);
 | 
				
			||||||
--- a/drivers/usb/host/Kconfig
 | 
					--- a/drivers/usb/host/Kconfig
 | 
				
			||||||
+++ b/drivers/usb/host/Kconfig
 | 
					+++ b/drivers/usb/host/Kconfig
 | 
				
			||||||
@@ -735,6 +735,19 @@ config USB_HWA_HCD
 | 
					@@ -737,6 +737,19 @@ config USB_HWA_HCD
 | 
				
			||||||
 	  To compile this driver a module, choose M here: the module
 | 
					 	  To compile this driver a module, choose M here: the module
 | 
				
			||||||
 	  will be called "hwa-hc".
 | 
					 	  will be called "hwa-hc".
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -390,7 +390,7 @@ Subject: [PATCH] mfd: Add Raspberry Pi Sense HAT core driver
 | 
				
			|||||||
+
 | 
					+
 | 
				
			||||||
--- a/drivers/video/fbdev/Kconfig
 | 
					--- a/drivers/video/fbdev/Kconfig
 | 
				
			||||||
+++ b/drivers/video/fbdev/Kconfig
 | 
					+++ b/drivers/video/fbdev/Kconfig
 | 
				
			||||||
@@ -2505,3 +2505,16 @@ config FB_SM712
 | 
					@@ -2506,3 +2506,16 @@ config FB_SM712
 | 
				
			||||||
 	  This driver is also available as a module. The module will be
 | 
					 	  This driver is also available as a module. The module will be
 | 
				
			||||||
 	  called sm712fb. If you want to compile it as a module, say M
 | 
					 	  called sm712fb. If you want to compile it as a module, say M
 | 
				
			||||||
 	  here and read <file:Documentation/kbuild/modules.txt>.
 | 
					 	  here and read <file:Documentation/kbuild/modules.txt>.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,7 +29,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
--- a/Makefile
 | 
					--- a/Makefile
 | 
				
			||||||
+++ b/Makefile
 | 
					+++ b/Makefile
 | 
				
			||||||
@@ -622,6 +622,8 @@ KBUILD_CFLAGS	+= $(call cc-disable-warni
 | 
					@@ -624,6 +624,8 @@ KBUILD_CFLAGS	+= $(call cc-disable-warni
 | 
				
			||||||
 KBUILD_CFLAGS	+= $(call cc-disable-warning, format-truncation)
 | 
					 KBUILD_CFLAGS	+= $(call cc-disable-warning, format-truncation)
 | 
				
			||||||
 KBUILD_CFLAGS	+= $(call cc-disable-warning, format-overflow)
 | 
					 KBUILD_CFLAGS	+= $(call cc-disable-warning, format-overflow)
 | 
				
			||||||
 KBUILD_CFLAGS	+= $(call cc-disable-warning, int-in-bool-context)
 | 
					 KBUILD_CFLAGS	+= $(call cc-disable-warning, int-in-bool-context)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,7 +38,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
--- a/Makefile
 | 
					--- a/Makefile
 | 
				
			||||||
+++ b/Makefile
 | 
					+++ b/Makefile
 | 
				
			||||||
@@ -622,8 +622,6 @@ KBUILD_CFLAGS	+= $(call cc-disable-warni
 | 
					@@ -624,8 +624,6 @@ KBUILD_CFLAGS	+= $(call cc-disable-warni
 | 
				
			||||||
 KBUILD_CFLAGS	+= $(call cc-disable-warning, format-truncation)
 | 
					 KBUILD_CFLAGS	+= $(call cc-disable-warning, format-truncation)
 | 
				
			||||||
 KBUILD_CFLAGS	+= $(call cc-disable-warning, format-overflow)
 | 
					 KBUILD_CFLAGS	+= $(call cc-disable-warning, format-overflow)
 | 
				
			||||||
 KBUILD_CFLAGS	+= $(call cc-disable-warning, int-in-bool-context)
 | 
					 KBUILD_CFLAGS	+= $(call cc-disable-warning, int-in-bool-context)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
--- a/Makefile
 | 
					--- a/Makefile
 | 
				
			||||||
+++ b/Makefile
 | 
					+++ b/Makefile
 | 
				
			||||||
@@ -624,12 +624,12 @@ KBUILD_CFLAGS	+= $(call cc-disable-warni
 | 
					@@ -626,12 +626,12 @@ KBUILD_CFLAGS	+= $(call cc-disable-warni
 | 
				
			||||||
 KBUILD_CFLAGS	+= $(call cc-disable-warning, int-in-bool-context)
 | 
					 KBUILD_CFLAGS	+= $(call cc-disable-warning, int-in-bool-context)
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
 | 
					 ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
--- a/Makefile
 | 
					--- a/Makefile
 | 
				
			||||||
+++ b/Makefile
 | 
					+++ b/Makefile
 | 
				
			||||||
@@ -403,7 +403,7 @@ KBUILD_CFLAGS_KERNEL :=
 | 
					@@ -405,7 +405,7 @@ KBUILD_CFLAGS_KERNEL :=
 | 
				
			||||||
 KBUILD_AFLAGS   := -D__ASSEMBLY__ $(call cc-option,-fno-PIE)
 | 
					 KBUILD_AFLAGS   := -D__ASSEMBLY__ $(call cc-option,-fno-PIE)
 | 
				
			||||||
 KBUILD_AFLAGS_MODULE  := -DMODULE
 | 
					 KBUILD_AFLAGS_MODULE  := -DMODULE
 | 
				
			||||||
 KBUILD_CFLAGS_MODULE  := -DMODULE
 | 
					 KBUILD_CFLAGS_MODULE  := -DMODULE
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -105,7 +105,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
				
			|||||||
 config MODULES_TREE_LOOKUP
 | 
					 config MODULES_TREE_LOOKUP
 | 
				
			||||||
--- a/kernel/module.c
 | 
					--- a/kernel/module.c
 | 
				
			||||||
+++ b/kernel/module.c
 | 
					+++ b/kernel/module.c
 | 
				
			||||||
@@ -2871,6 +2871,7 @@ static struct module *setup_load_info(st
 | 
					@@ -2880,6 +2880,7 @@ static void check_modinfo_retpoline(stru
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 static int check_modinfo(struct module *mod, struct load_info *info, int flags)
 | 
					 static int check_modinfo(struct module *mod, struct load_info *info, int flags)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
@@ -113,7 +113,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
				
			|||||||
 	const char *modmagic = get_modinfo(info, "vermagic");
 | 
					 	const char *modmagic = get_modinfo(info, "vermagic");
 | 
				
			||||||
 	int err;
 | 
					 	int err;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -2900,6 +2901,7 @@ static int check_modinfo(struct module *
 | 
					@@ -2911,6 +2912,7 @@ static int check_modinfo(struct module *
 | 
				
			||||||
 		pr_warn("%s: module is from the staging directory, the quality "
 | 
					 		pr_warn("%s: module is from the staging directory, the quality "
 | 
				
			||||||
 			"is unknown, you have been warned.\n", mod->name);
 | 
					 			"is unknown, you have been warned.\n", mod->name);
 | 
				
			||||||
 	}
 | 
					 	}
 | 
				
			||||||
@@ -143,7 +143,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
				
			|||||||
 	buf_printf(b, "\n");
 | 
					 	buf_printf(b, "\n");
 | 
				
			||||||
 	buf_printf(b, "__visible struct module __this_module\n");
 | 
					 	buf_printf(b, "__visible struct module __this_module\n");
 | 
				
			||||||
 	buf_printf(b, "__attribute__((section(\".gnu.linkonce.this_module\"))) = {\n");
 | 
					 	buf_printf(b, "__attribute__((section(\".gnu.linkonce.this_module\"))) = {\n");
 | 
				
			||||||
@@ -2125,16 +2129,20 @@ static void add_header(struct buffer *b,
 | 
					@@ -2125,8 +2129,10 @@ static void add_header(struct buffer *b,
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 static void add_intree_flag(struct buffer *b, int is_intree)
 | 
					 static void add_intree_flag(struct buffer *b, int is_intree)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
@@ -153,6 +153,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
				
			|||||||
+#endif
 | 
					+#endif
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 | 
					 /* Cannot check for assembler */
 | 
				
			||||||
 | 
					@@ -2139,10 +2145,12 @@ static void add_retpoline(struct buffer
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 static void add_staging_flag(struct buffer *b, const char *name)
 | 
					 static void add_staging_flag(struct buffer *b, const char *name)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
+#ifndef CONFIG_MODULE_STRIPPED
 | 
					+#ifndef CONFIG_MODULE_STRIPPED
 | 
				
			||||||
@@ -164,7 +167,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
				
			|||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 /* In kernel, this size is defined in linux/module.h;
 | 
					 /* In kernel, this size is defined in linux/module.h;
 | 
				
			||||||
@@ -2238,11 +2246,13 @@ static void add_depends(struct buffer *b
 | 
					@@ -2246,11 +2254,13 @@ static void add_depends(struct buffer *b
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 static void add_srcversion(struct buffer *b, struct module *mod)
 | 
					 static void add_srcversion(struct buffer *b, struct module *mod)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
@@ -178,7 +181,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
				
			|||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 static void write_if_changed(struct buffer *b, const char *fname)
 | 
					 static void write_if_changed(struct buffer *b, const char *fname)
 | 
				
			||||||
@@ -2476,7 +2486,9 @@ int main(int argc, char **argv)
 | 
					@@ -2485,7 +2495,9 @@ int main(int argc, char **argv)
 | 
				
			||||||
 		add_staging_flag(&buf, mod->name);
 | 
					 		add_staging_flag(&buf, mod->name);
 | 
				
			||||||
 		err |= add_versions(&buf, mod);
 | 
					 		err |= add_versions(&buf, mod);
 | 
				
			||||||
 		add_depends(&buf, mod, modules);
 | 
					 		add_depends(&buf, mod, modules);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,7 +16,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
--- a/include/net/ip6_tunnel.h
 | 
					--- a/include/net/ip6_tunnel.h
 | 
				
			||||||
+++ b/include/net/ip6_tunnel.h
 | 
					+++ b/include/net/ip6_tunnel.h
 | 
				
			||||||
@@ -15,6 +15,18 @@
 | 
					@@ -17,6 +17,18 @@
 | 
				
			||||||
 /* determine capability on a per-packet basis */
 | 
					 /* determine capability on a per-packet basis */
 | 
				
			||||||
 #define IP6_TNL_F_CAP_PER_PACKET 0x40000
 | 
					 #define IP6_TNL_F_CAP_PER_PACKET 0x40000
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -35,7 +35,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
 | 
				
			|||||||
 struct __ip6_tnl_parm {
 | 
					 struct __ip6_tnl_parm {
 | 
				
			||||||
 	char name[IFNAMSIZ];	/* name of tunnel device */
 | 
					 	char name[IFNAMSIZ];	/* name of tunnel device */
 | 
				
			||||||
 	int link;		/* ifindex of underlying L2 interface */
 | 
					 	int link;		/* ifindex of underlying L2 interface */
 | 
				
			||||||
@@ -25,6 +37,7 @@ struct __ip6_tnl_parm {
 | 
					@@ -27,6 +39,7 @@ struct __ip6_tnl_parm {
 | 
				
			||||||
 	__u32 flags;		/* tunnel flags */
 | 
					 	__u32 flags;		/* tunnel flags */
 | 
				
			||||||
 	struct in6_addr laddr;	/* local tunnel end-point address */
 | 
					 	struct in6_addr laddr;	/* local tunnel end-point address */
 | 
				
			||||||
 	struct in6_addr raddr;	/* remote tunnel end-point address */
 | 
					 	struct in6_addr raddr;	/* remote tunnel end-point address */
 | 
				
			||||||
@@ -94,7 +94,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
 | 
				
			|||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 static int ip6_tnl_dev_init(struct net_device *dev);
 | 
					 static int ip6_tnl_dev_init(struct net_device *dev);
 | 
				
			||||||
@@ -230,20 +230,29 @@ EXPORT_SYMBOL_GPL(ip6_tnl_dst_init);
 | 
					@@ -139,20 +139,29 @@ static struct net_device_stats *ip6_get_
 | 
				
			||||||
 static struct ip6_tnl *
 | 
					 static struct ip6_tnl *
 | 
				
			||||||
 ip6_tnl_lookup(struct net *net, const struct in6_addr *remote, const struct in6_addr *local)
 | 
					 ip6_tnl_lookup(struct net *net, const struct in6_addr *remote, const struct in6_addr *local)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
@@ -129,7 +129,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
 | 
				
			|||||||
 	for_each_ip6_tunnel_rcu(ip6n->tnls_r_l[hash]) {
 | 
					 	for_each_ip6_tunnel_rcu(ip6n->tnls_r_l[hash]) {
 | 
				
			||||||
 		if (ipv6_addr_equal(local, &t->parms.laddr) &&
 | 
					 		if (ipv6_addr_equal(local, &t->parms.laddr) &&
 | 
				
			||||||
 		    ipv6_addr_any(&t->parms.raddr) &&
 | 
					 		    ipv6_addr_any(&t->parms.raddr) &&
 | 
				
			||||||
@@ -251,7 +260,7 @@ ip6_tnl_lookup(struct net *net, const st
 | 
					@@ -160,7 +169,7 @@ ip6_tnl_lookup(struct net *net, const st
 | 
				
			||||||
 			return t;
 | 
					 			return t;
 | 
				
			||||||
 	}
 | 
					 	}
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -138,7 +138,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
 | 
				
			|||||||
 	for_each_ip6_tunnel_rcu(ip6n->tnls_r_l[hash]) {
 | 
					 	for_each_ip6_tunnel_rcu(ip6n->tnls_r_l[hash]) {
 | 
				
			||||||
 		if (ipv6_addr_equal(remote, &t->parms.raddr) &&
 | 
					 		if (ipv6_addr_equal(remote, &t->parms.raddr) &&
 | 
				
			||||||
 		    ipv6_addr_any(&t->parms.laddr) &&
 | 
					 		    ipv6_addr_any(&t->parms.laddr) &&
 | 
				
			||||||
@@ -287,7 +296,7 @@ ip6_tnl_bucket(struct ip6_tnl_net *ip6n,
 | 
					@@ -196,7 +205,7 @@ ip6_tnl_bucket(struct ip6_tnl_net *ip6n,
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	if (!ipv6_addr_any(remote) || !ipv6_addr_any(local)) {
 | 
					 	if (!ipv6_addr_any(remote) || !ipv6_addr_any(local)) {
 | 
				
			||||||
 		prio = 1;
 | 
					 		prio = 1;
 | 
				
			||||||
@@ -147,7 +147,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
 | 
				
			|||||||
 	}
 | 
					 	}
 | 
				
			||||||
 	return &ip6n->tnls[prio][h];
 | 
					 	return &ip6n->tnls[prio][h];
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
@@ -460,6 +469,12 @@ ip6_tnl_dev_uninit(struct net_device *de
 | 
					@@ -369,6 +378,12 @@ ip6_tnl_dev_uninit(struct net_device *de
 | 
				
			||||||
 	struct net *net = t->net;
 | 
					 	struct net *net = t->net;
 | 
				
			||||||
 	struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id);
 | 
					 	struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -160,7 +160,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
 | 
				
			|||||||
 	if (dev == ip6n->fb_tnl_dev)
 | 
					 	if (dev == ip6n->fb_tnl_dev)
 | 
				
			||||||
 		RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL);
 | 
					 		RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL);
 | 
				
			||||||
 	else
 | 
					 	else
 | 
				
			||||||
@@ -856,6 +871,108 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t,
 | 
					@@ -765,6 +780,108 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t,
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 EXPORT_SYMBOL_GPL(ip6_tnl_rcv_ctl);
 | 
					 EXPORT_SYMBOL_GPL(ip6_tnl_rcv_ctl);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -269,7 +269,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
 | 
				
			|||||||
 /**
 | 
					 /**
 | 
				
			||||||
  * ip6_tnl_rcv - decapsulate IPv6 packet and retransmit it locally
 | 
					  * ip6_tnl_rcv - decapsulate IPv6 packet and retransmit it locally
 | 
				
			||||||
  *   @skb: received socket buffer
 | 
					  *   @skb: received socket buffer
 | 
				
			||||||
@@ -901,6 +1018,26 @@ static int ip6_tnl_rcv(struct sk_buff *s
 | 
					@@ -810,6 +927,26 @@ static int ip6_tnl_rcv(struct sk_buff *s
 | 
				
			||||||
 		skb_reset_network_header(skb);
 | 
					 		skb_reset_network_header(skb);
 | 
				
			||||||
 		skb->protocol = htons(protocol);
 | 
					 		skb->protocol = htons(protocol);
 | 
				
			||||||
 		memset(skb->cb, 0, sizeof(struct inet6_skb_parm));
 | 
					 		memset(skb->cb, 0, sizeof(struct inet6_skb_parm));
 | 
				
			||||||
@@ -296,7 +296,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 		__skb_tunnel_rx(skb, t->dev, t->net);
 | 
					 		__skb_tunnel_rx(skb, t->dev, t->net);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -1248,6 +1385,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
 | 
					@@ -1145,6 +1282,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
 | 
				
			||||||
 	__u32 mtu;
 | 
					 	__u32 mtu;
 | 
				
			||||||
 	u8 tproto;
 | 
					 	u8 tproto;
 | 
				
			||||||
 	int err;
 | 
					 	int err;
 | 
				
			||||||
@@ -304,7 +304,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 	tproto = ACCESS_ONCE(t->parms.proto);
 | 
					 	tproto = ACCESS_ONCE(t->parms.proto);
 | 
				
			||||||
 	if ((tproto != IPPROTO_IPV6 && tproto != 0) ||
 | 
					 	if ((tproto != IPPROTO_IPV6 && tproto != 0) ||
 | 
				
			||||||
@@ -1278,6 +1416,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
 | 
					@@ -1175,6 +1313,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
 | 
				
			||||||
 	if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)
 | 
					 	if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)
 | 
				
			||||||
 		fl6.flowi6_mark = skb->mark;
 | 
					 		fl6.flowi6_mark = skb->mark;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -323,7 +323,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
 | 
				
			|||||||
 	err = ip6_tnl_xmit2(skb, dev, dsfield, &fl6, encap_limit, &mtu);
 | 
					 	err = ip6_tnl_xmit2(skb, dev, dsfield, &fl6, encap_limit, &mtu);
 | 
				
			||||||
 	if (err != 0) {
 | 
					 	if (err != 0) {
 | 
				
			||||||
 		if (err == -EMSGSIZE)
 | 
					 		if (err == -EMSGSIZE)
 | 
				
			||||||
@@ -1392,6 +1542,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
 | 
					@@ -1289,6 +1439,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
 | 
				
			||||||
 	t->parms.flowinfo = p->flowinfo;
 | 
					 	t->parms.flowinfo = p->flowinfo;
 | 
				
			||||||
 	t->parms.link = p->link;
 | 
					 	t->parms.link = p->link;
 | 
				
			||||||
 	t->parms.proto = p->proto;
 | 
					 	t->parms.proto = p->proto;
 | 
				
			||||||
@@ -335,10 +335,10 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
 | 
				
			|||||||
+	}
 | 
					+	}
 | 
				
			||||||
+	t->parms.fmrs = p->fmrs;
 | 
					+	t->parms.fmrs = p->fmrs;
 | 
				
			||||||
+
 | 
					+
 | 
				
			||||||
 	ip6_tnl_dst_reset(t);
 | 
					 	dst_cache_reset(&t->dst_cache);
 | 
				
			||||||
 	ip6_tnl_link_config(t);
 | 
					 	ip6_tnl_link_config(t);
 | 
				
			||||||
 	return 0;
 | 
					 	return 0;
 | 
				
			||||||
@@ -1430,6 +1588,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
 | 
					@@ -1327,6 +1485,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
 | 
				
			||||||
 	p->flowinfo = u->flowinfo;
 | 
					 	p->flowinfo = u->flowinfo;
 | 
				
			||||||
 	p->link = u->link;
 | 
					 	p->link = u->link;
 | 
				
			||||||
 	p->proto = u->proto;
 | 
					 	p->proto = u->proto;
 | 
				
			||||||
@@ -346,7 +346,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
 | 
				
			|||||||
 	memcpy(p->name, u->name, sizeof(u->name));
 | 
					 	memcpy(p->name, u->name, sizeof(u->name));
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -1725,6 +1884,15 @@ static int ip6_tnl_validate(struct nlatt
 | 
					@@ -1622,6 +1781,15 @@ static int ip6_tnl_validate(struct nlatt
 | 
				
			||||||
 	return 0;
 | 
					 	return 0;
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -362,7 +362,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
 | 
				
			|||||||
 static void ip6_tnl_netlink_parms(struct nlattr *data[],
 | 
					 static void ip6_tnl_netlink_parms(struct nlattr *data[],
 | 
				
			||||||
 				  struct __ip6_tnl_parm *parms)
 | 
					 				  struct __ip6_tnl_parm *parms)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
@@ -1756,6 +1924,46 @@ static void ip6_tnl_netlink_parms(struct
 | 
					@@ -1653,6 +1821,46 @@ static void ip6_tnl_netlink_parms(struct
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	if (data[IFLA_IPTUN_PROTO])
 | 
					 	if (data[IFLA_IPTUN_PROTO])
 | 
				
			||||||
 		parms->proto = nla_get_u8(data[IFLA_IPTUN_PROTO]);
 | 
					 		parms->proto = nla_get_u8(data[IFLA_IPTUN_PROTO]);
 | 
				
			||||||
@@ -409,7 +409,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
 | 
				
			|||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 static int ip6_tnl_newlink(struct net *src_net, struct net_device *dev,
 | 
					 static int ip6_tnl_newlink(struct net *src_net, struct net_device *dev,
 | 
				
			||||||
@@ -1808,6 +2016,12 @@ static void ip6_tnl_dellink(struct net_d
 | 
					@@ -1705,6 +1913,12 @@ static void ip6_tnl_dellink(struct net_d
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 static size_t ip6_tnl_get_size(const struct net_device *dev)
 | 
					 static size_t ip6_tnl_get_size(const struct net_device *dev)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
@@ -422,7 +422,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
 | 
				
			|||||||
 	return
 | 
					 	return
 | 
				
			||||||
 		/* IFLA_IPTUN_LINK */
 | 
					 		/* IFLA_IPTUN_LINK */
 | 
				
			||||||
 		nla_total_size(4) +
 | 
					 		nla_total_size(4) +
 | 
				
			||||||
@@ -1825,6 +2039,24 @@ static size_t ip6_tnl_get_size(const str
 | 
					@@ -1722,6 +1936,24 @@ static size_t ip6_tnl_get_size(const str
 | 
				
			||||||
 		nla_total_size(4) +
 | 
					 		nla_total_size(4) +
 | 
				
			||||||
 		/* IFLA_IPTUN_PROTO */
 | 
					 		/* IFLA_IPTUN_PROTO */
 | 
				
			||||||
 		nla_total_size(1) +
 | 
					 		nla_total_size(1) +
 | 
				
			||||||
@@ -447,7 +447,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
 | 
				
			|||||||
 		0;
 | 
					 		0;
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -1832,6 +2064,9 @@ static int ip6_tnl_fill_info(struct sk_b
 | 
					@@ -1729,6 +1961,9 @@ static int ip6_tnl_fill_info(struct sk_b
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
 	struct ip6_tnl *tunnel = netdev_priv(dev);
 | 
					 	struct ip6_tnl *tunnel = netdev_priv(dev);
 | 
				
			||||||
 	struct __ip6_tnl_parm *parm = &tunnel->parms;
 | 
					 	struct __ip6_tnl_parm *parm = &tunnel->parms;
 | 
				
			||||||
@@ -457,7 +457,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 	if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
 | 
					 	if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
 | 
				
			||||||
 	    nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
 | 
					 	    nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
 | 
				
			||||||
@@ -1840,8 +2075,27 @@ static int ip6_tnl_fill_info(struct sk_b
 | 
					@@ -1737,8 +1972,27 @@ static int ip6_tnl_fill_info(struct sk_b
 | 
				
			||||||
 	    nla_put_u8(skb, IFLA_IPTUN_ENCAP_LIMIT, parm->encap_limit) ||
 | 
					 	    nla_put_u8(skb, IFLA_IPTUN_ENCAP_LIMIT, parm->encap_limit) ||
 | 
				
			||||||
 	    nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
 | 
					 	    nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
 | 
				
			||||||
 	    nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
 | 
					 	    nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
 | 
				
			||||||
@@ -486,7 +486,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
 | 
				
			|||||||
 	return 0;
 | 
					 	return 0;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 nla_put_failure:
 | 
					 nla_put_failure:
 | 
				
			||||||
@@ -1865,6 +2119,7 @@ static const struct nla_policy ip6_tnl_p
 | 
					@@ -1762,6 +2016,7 @@ static const struct nla_policy ip6_tnl_p
 | 
				
			||||||
 	[IFLA_IPTUN_FLOWINFO]		= { .type = NLA_U32 },
 | 
					 	[IFLA_IPTUN_FLOWINFO]		= { .type = NLA_U32 },
 | 
				
			||||||
 	[IFLA_IPTUN_FLAGS]		= { .type = NLA_U32 },
 | 
					 	[IFLA_IPTUN_FLAGS]		= { .type = NLA_U32 },
 | 
				
			||||||
 	[IFLA_IPTUN_PROTO]		= { .type = NLA_U8 },
 | 
					 	[IFLA_IPTUN_PROTO]		= { .type = NLA_U8 },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -143,7 +143,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
 | 
				
			|||||||
 static const struct rt6_info ip6_blk_hole_entry_template = {
 | 
					 static const struct rt6_info ip6_blk_hole_entry_template = {
 | 
				
			||||||
 	.dst = {
 | 
					 	.dst = {
 | 
				
			||||||
 		.__refcnt	= ATOMIC_INIT(1),
 | 
					 		.__refcnt	= ATOMIC_INIT(1),
 | 
				
			||||||
@@ -1898,6 +1915,11 @@ static struct rt6_info *ip6_route_info_c
 | 
					@@ -1899,6 +1916,11 @@ static struct rt6_info *ip6_route_info_c
 | 
				
			||||||
 			rt->dst.output = ip6_pkt_prohibit_out;
 | 
					 			rt->dst.output = ip6_pkt_prohibit_out;
 | 
				
			||||||
 			rt->dst.input = ip6_pkt_prohibit;
 | 
					 			rt->dst.input = ip6_pkt_prohibit;
 | 
				
			||||||
 			break;
 | 
					 			break;
 | 
				
			||||||
@@ -155,7 +155,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
 | 
				
			|||||||
 		case RTN_THROW:
 | 
					 		case RTN_THROW:
 | 
				
			||||||
 		case RTN_UNREACHABLE:
 | 
					 		case RTN_UNREACHABLE:
 | 
				
			||||||
 		default:
 | 
					 		default:
 | 
				
			||||||
@@ -2501,6 +2523,17 @@ static int ip6_pkt_prohibit_out(struct n
 | 
					@@ -2502,6 +2524,17 @@ static int ip6_pkt_prohibit_out(struct n
 | 
				
			||||||
 	return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
 | 
					 	return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -173,7 +173,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
 | 
				
			|||||||
 /*
 | 
					 /*
 | 
				
			||||||
  *	Allocate a dst for local (unicast / anycast) address.
 | 
					  *	Allocate a dst for local (unicast / anycast) address.
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
@@ -2743,7 +2776,8 @@ static int rtm_to_fib6_config(struct sk_
 | 
					@@ -2744,7 +2777,8 @@ static int rtm_to_fib6_config(struct sk_
 | 
				
			||||||
 	if (rtm->rtm_type == RTN_UNREACHABLE ||
 | 
					 	if (rtm->rtm_type == RTN_UNREACHABLE ||
 | 
				
			||||||
 	    rtm->rtm_type == RTN_BLACKHOLE ||
 | 
					 	    rtm->rtm_type == RTN_BLACKHOLE ||
 | 
				
			||||||
 	    rtm->rtm_type == RTN_PROHIBIT ||
 | 
					 	    rtm->rtm_type == RTN_PROHIBIT ||
 | 
				
			||||||
@@ -183,7 +183,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
 | 
				
			|||||||
 		cfg->fc_flags |= RTF_REJECT;
 | 
					 		cfg->fc_flags |= RTF_REJECT;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	if (rtm->rtm_type == RTN_LOCAL)
 | 
					 	if (rtm->rtm_type == RTN_LOCAL)
 | 
				
			||||||
@@ -3096,6 +3130,9 @@ static int rt6_fill_node(struct net *net
 | 
					@@ -3097,6 +3131,9 @@ static int rt6_fill_node(struct net *net
 | 
				
			||||||
 		case -EACCES:
 | 
					 		case -EACCES:
 | 
				
			||||||
 			rtm->rtm_type = RTN_PROHIBIT;
 | 
					 			rtm->rtm_type = RTN_PROHIBIT;
 | 
				
			||||||
 			break;
 | 
					 			break;
 | 
				
			||||||
@@ -193,7 +193,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
 | 
				
			|||||||
 		case -EAGAIN:
 | 
					 		case -EAGAIN:
 | 
				
			||||||
 			rtm->rtm_type = RTN_THROW;
 | 
					 			rtm->rtm_type = RTN_THROW;
 | 
				
			||||||
 			break;
 | 
					 			break;
 | 
				
			||||||
@@ -3375,6 +3412,8 @@ static int ip6_route_dev_notify(struct n
 | 
					@@ -3376,6 +3413,8 @@ static int ip6_route_dev_notify(struct n
 | 
				
			||||||
 #ifdef CONFIG_IPV6_MULTIPLE_TABLES
 | 
					 #ifdef CONFIG_IPV6_MULTIPLE_TABLES
 | 
				
			||||||
 		net->ipv6.ip6_prohibit_entry->dst.dev = dev;
 | 
					 		net->ipv6.ip6_prohibit_entry->dst.dev = dev;
 | 
				
			||||||
 		net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
 | 
					 		net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
 | 
				
			||||||
@@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
 | 
				
			|||||||
 		net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
 | 
					 		net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
 | 
				
			||||||
 		net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
 | 
					 		net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
 | 
				
			||||||
 #endif
 | 
					 #endif
 | 
				
			||||||
@@ -3601,6 +3640,17 @@ static int __net_init ip6_route_net_init
 | 
					@@ -3602,6 +3641,17 @@ static int __net_init ip6_route_net_init
 | 
				
			||||||
 	net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
 | 
					 	net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
 | 
				
			||||||
 	dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
 | 
					 	dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
 | 
				
			||||||
 			 ip6_template_metrics, true);
 | 
					 			 ip6_template_metrics, true);
 | 
				
			||||||
@@ -220,7 +220,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
 | 
				
			|||||||
 #endif
 | 
					 #endif
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	net->ipv6.sysctl.flush_delay = 0;
 | 
					 	net->ipv6.sysctl.flush_delay = 0;
 | 
				
			||||||
@@ -3619,6 +3669,8 @@ out:
 | 
					@@ -3620,6 +3670,8 @@ out:
 | 
				
			||||||
 	return ret;
 | 
					 	return ret;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 #ifdef CONFIG_IPV6_MULTIPLE_TABLES
 | 
					 #ifdef CONFIG_IPV6_MULTIPLE_TABLES
 | 
				
			||||||
@@ -229,7 +229,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
 | 
				
			|||||||
 out_ip6_prohibit_entry:
 | 
					 out_ip6_prohibit_entry:
 | 
				
			||||||
 	kfree(net->ipv6.ip6_prohibit_entry);
 | 
					 	kfree(net->ipv6.ip6_prohibit_entry);
 | 
				
			||||||
 out_ip6_null_entry:
 | 
					 out_ip6_null_entry:
 | 
				
			||||||
@@ -3636,6 +3688,7 @@ static void __net_exit ip6_route_net_exi
 | 
					@@ -3637,6 +3689,7 @@ static void __net_exit ip6_route_net_exi
 | 
				
			||||||
 #ifdef CONFIG_IPV6_MULTIPLE_TABLES
 | 
					 #ifdef CONFIG_IPV6_MULTIPLE_TABLES
 | 
				
			||||||
 	kfree(net->ipv6.ip6_prohibit_entry);
 | 
					 	kfree(net->ipv6.ip6_prohibit_entry);
 | 
				
			||||||
 	kfree(net->ipv6.ip6_blk_hole_entry);
 | 
					 	kfree(net->ipv6.ip6_blk_hole_entry);
 | 
				
			||||||
@@ -237,7 +237,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
 | 
				
			|||||||
 #endif
 | 
					 #endif
 | 
				
			||||||
 	dst_entries_destroy(&net->ipv6.ip6_dst_ops);
 | 
					 	dst_entries_destroy(&net->ipv6.ip6_dst_ops);
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
@@ -3709,6 +3762,9 @@ void __init ip6_route_init_special_entri
 | 
					@@ -3710,6 +3763,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_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->dst.dev = init_net.loopback_dev;
 | 
				
			||||||
 	init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
 | 
					 	init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,7 +39,7 @@
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
--- a/net/ipv4/Kconfig
 | 
					--- a/net/ipv4/Kconfig
 | 
				
			||||||
+++ b/net/ipv4/Kconfig
 | 
					+++ b/net/ipv4/Kconfig
 | 
				
			||||||
@@ -414,6 +414,7 @@ config INET_LRO
 | 
					@@ -415,6 +415,7 @@ config INET_LRO
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 config INET_DIAG
 | 
					 config INET_DIAG
 | 
				
			||||||
 	tristate "INET: socket monitoring interface"
 | 
					 	tristate "INET: socket monitoring interface"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -161,7 +161,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
--- a/drivers/usb/dwc3/gadget.c
 | 
					--- a/drivers/usb/dwc3/gadget.c
 | 
				
			||||||
+++ b/drivers/usb/dwc3/gadget.c
 | 
					+++ b/drivers/usb/dwc3/gadget.c
 | 
				
			||||||
@@ -2569,14 +2569,14 @@ static void dwc3_process_event_entry(str
 | 
					@@ -2571,14 +2571,14 @@ static void dwc3_process_event_entry(str
 | 
				
			||||||
 	}
 | 
					 	}
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -178,7 +178,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
 | 
				
			|||||||
 	left = evt->count;
 | 
					 	left = evt->count;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	if (!(evt->flags & DWC3_EVENT_PENDING))
 | 
					 	if (!(evt->flags & DWC3_EVENT_PENDING))
 | 
				
			||||||
@@ -2601,7 +2601,7 @@ static irqreturn_t dwc3_process_event_bu
 | 
					@@ -2603,7 +2603,7 @@ static irqreturn_t dwc3_process_event_bu
 | 
				
			||||||
 		evt->lpos = (evt->lpos + 4) % DWC3_EVENT_BUFFERS_SIZE;
 | 
					 		evt->lpos = (evt->lpos + 4) % DWC3_EVENT_BUFFERS_SIZE;
 | 
				
			||||||
 		left -= 4;
 | 
					 		left -= 4;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -187,7 +187,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
 | 
				
			|||||||
 	}
 | 
					 	}
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	evt->count = 0;
 | 
					 	evt->count = 0;
 | 
				
			||||||
@@ -2609,9 +2609,9 @@ static irqreturn_t dwc3_process_event_bu
 | 
					@@ -2611,9 +2611,9 @@ static irqreturn_t dwc3_process_event_bu
 | 
				
			||||||
 	ret = IRQ_HANDLED;
 | 
					 	ret = IRQ_HANDLED;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	/* Unmask interrupt */
 | 
					 	/* Unmask interrupt */
 | 
				
			||||||
@@ -199,7 +199,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 	return ret;
 | 
					 	return ret;
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
@@ -2621,27 +2621,23 @@ static irqreturn_t dwc3_thread_interrupt
 | 
					@@ -2623,27 +2623,23 @@ static irqreturn_t dwc3_thread_interrupt
 | 
				
			||||||
 	struct dwc3 *dwc = _dwc;
 | 
					 	struct dwc3 *dwc = _dwc;
 | 
				
			||||||
 	unsigned long flags;
 | 
					 	unsigned long flags;
 | 
				
			||||||
 	irqreturn_t ret = IRQ_NONE;
 | 
					 	irqreturn_t ret = IRQ_NONE;
 | 
				
			||||||
@@ -231,7 +231,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
 | 
				
			|||||||
 	count &= DWC3_GEVNTCOUNT_MASK;
 | 
					 	count &= DWC3_GEVNTCOUNT_MASK;
 | 
				
			||||||
 	if (!count)
 | 
					 	if (!count)
 | 
				
			||||||
 		return IRQ_NONE;
 | 
					 		return IRQ_NONE;
 | 
				
			||||||
@@ -2650,9 +2646,9 @@ static irqreturn_t dwc3_check_event_buf(
 | 
					@@ -2652,9 +2648,9 @@ static irqreturn_t dwc3_check_event_buf(
 | 
				
			||||||
 	evt->flags |= DWC3_EVENT_PENDING;
 | 
					 	evt->flags |= DWC3_EVENT_PENDING;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	/* Mask interrupt */
 | 
					 	/* Mask interrupt */
 | 
				
			||||||
@@ -243,7 +243,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 	return IRQ_WAKE_THREAD;
 | 
					 	return IRQ_WAKE_THREAD;
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
@@ -2660,18 +2656,8 @@ static irqreturn_t dwc3_check_event_buf(
 | 
					@@ -2662,18 +2658,8 @@ static irqreturn_t dwc3_check_event_buf(
 | 
				
			||||||
 static irqreturn_t dwc3_interrupt(int irq, void *_dwc)
 | 
					 static irqreturn_t dwc3_interrupt(int irq, void *_dwc)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
 	struct dwc3			*dwc = _dwc;
 | 
					 	struct dwc3			*dwc = _dwc;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -76,7 +76,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
 | 
				
			|||||||
 	struct usb_gadget	gadget;
 | 
					 	struct usb_gadget	gadget;
 | 
				
			||||||
--- a/drivers/usb/dwc3/gadget.c
 | 
					--- a/drivers/usb/dwc3/gadget.c
 | 
				
			||||||
+++ b/drivers/usb/dwc3/gadget.c
 | 
					+++ b/drivers/usb/dwc3/gadget.c
 | 
				
			||||||
@@ -2576,7 +2576,7 @@ static irqreturn_t dwc3_process_event_bu
 | 
					@@ -2578,7 +2578,7 @@ static irqreturn_t dwc3_process_event_bu
 | 
				
			||||||
 	int left;
 | 
					 	int left;
 | 
				
			||||||
 	u32 reg;
 | 
					 	u32 reg;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -85,7 +85,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
 | 
				
			|||||||
 	left = evt->count;
 | 
					 	left = evt->count;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	if (!(evt->flags & DWC3_EVENT_PENDING))
 | 
					 	if (!(evt->flags & DWC3_EVENT_PENDING))
 | 
				
			||||||
@@ -2635,7 +2635,7 @@ static irqreturn_t dwc3_check_event_buf(
 | 
					@@ -2637,7 +2637,7 @@ static irqreturn_t dwc3_check_event_buf(
 | 
				
			||||||
 	u32 count;
 | 
					 	u32 count;
 | 
				
			||||||
 	u32 reg;
 | 
					 	u32 reg;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,7 +15,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
--- a/include/linux/msi.h
 | 
					--- a/include/linux/msi.h
 | 
				
			||||||
+++ b/include/linux/msi.h
 | 
					+++ b/include/linux/msi.h
 | 
				
			||||||
@@ -33,6 +33,14 @@ struct platform_msi_desc {
 | 
					@@ -39,6 +39,14 @@ struct platform_msi_desc {
 | 
				
			||||||
 };
 | 
					 };
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 /**
 | 
					 /**
 | 
				
			||||||
@@ -30,7 +30,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 | 
				
			|||||||
  * struct msi_desc - Descriptor structure for MSI based interrupts
 | 
					  * struct msi_desc - Descriptor structure for MSI based interrupts
 | 
				
			||||||
  * @list:	List head for management
 | 
					  * @list:	List head for management
 | 
				
			||||||
  * @irq:	The base interrupt number
 | 
					  * @irq:	The base interrupt number
 | 
				
			||||||
@@ -87,6 +95,7 @@ struct msi_desc {
 | 
					@@ -93,6 +101,7 @@ struct msi_desc {
 | 
				
			||||||
 		 * tree wide cleanup.
 | 
					 		 * tree wide cleanup.
 | 
				
			||||||
 		 */
 | 
					 		 */
 | 
				
			||||||
 		struct platform_msi_desc platform;
 | 
					 		struct platform_msi_desc platform;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -57,7 +57,7 @@ Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
 | 
				
			|||||||
 #include <dt-bindings/power/mt8173-power.h>
 | 
					 #include <dt-bindings/power/mt8173-power.h>
 | 
				
			||||||
 #include <dt-bindings/reset-controller/mt8173-resets.h>
 | 
					 #include <dt-bindings/reset-controller/mt8173-resets.h>
 | 
				
			||||||
 #include "mt8173-pinfunc.h"
 | 
					 #include "mt8173-pinfunc.h"
 | 
				
			||||||
@@ -510,6 +511,47 @@
 | 
					@@ -512,6 +513,47 @@
 | 
				
			||||||
 			status = "disabled";
 | 
					 			status = "disabled";
 | 
				
			||||||
 		};
 | 
					 		};
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5142,7 +5142,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 | 
				
			|||||||
 		      long long offset, long long length);
 | 
					 		      long long offset, long long length);
 | 
				
			||||||
--- a/include/linux/mtd/sh_flctl.h
 | 
					--- a/include/linux/mtd/sh_flctl.h
 | 
				
			||||||
+++ b/include/linux/mtd/sh_flctl.h
 | 
					+++ b/include/linux/mtd/sh_flctl.h
 | 
				
			||||||
@@ -143,11 +143,11 @@ enum flctl_ecc_res_t {
 | 
					@@ -143,7 +143,6 @@ enum flctl_ecc_res_t {
 | 
				
			||||||
 struct dma_chan;
 | 
					 struct dma_chan;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 struct sh_flctl {
 | 
					 struct sh_flctl {
 | 
				
			||||||
@@ -5150,12 +5150,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 | 
				
			|||||||
 	struct nand_chip	chip;
 | 
					 	struct nand_chip	chip;
 | 
				
			||||||
 	struct platform_device	*pdev;
 | 
					 	struct platform_device	*pdev;
 | 
				
			||||||
 	struct dev_pm_qos_request pm_qos;
 | 
					 	struct dev_pm_qos_request pm_qos;
 | 
				
			||||||
 	void __iomem		*reg;
 | 
					@@ -187,7 +186,7 @@ struct sh_flctl_platform_data {
 | 
				
			||||||
+	resource_size_t		fifo;
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 	uint8_t	done_buff[2048 + 64];	/* max size 2048 + 64 */
 | 
					 | 
				
			||||||
 	int	read_bytes;
 | 
					 | 
				
			||||||
@@ -186,7 +186,7 @@ struct sh_flctl_platform_data {
 | 
					 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 static inline struct sh_flctl *mtd_to_flctl(struct mtd_info *mtdinfo)
 | 
					 static inline struct sh_flctl *mtd_to_flctl(struct mtd_info *mtdinfo)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5142,7 +5142,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 | 
				
			|||||||
 		      long long offset, long long length);
 | 
					 		      long long offset, long long length);
 | 
				
			||||||
--- a/include/linux/mtd/sh_flctl.h
 | 
					--- a/include/linux/mtd/sh_flctl.h
 | 
				
			||||||
+++ b/include/linux/mtd/sh_flctl.h
 | 
					+++ b/include/linux/mtd/sh_flctl.h
 | 
				
			||||||
@@ -143,11 +143,11 @@ enum flctl_ecc_res_t {
 | 
					@@ -143,7 +143,6 @@ enum flctl_ecc_res_t {
 | 
				
			||||||
 struct dma_chan;
 | 
					 struct dma_chan;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 struct sh_flctl {
 | 
					 struct sh_flctl {
 | 
				
			||||||
@@ -5150,12 +5150,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
 | 
				
			|||||||
 	struct nand_chip	chip;
 | 
					 	struct nand_chip	chip;
 | 
				
			||||||
 	struct platform_device	*pdev;
 | 
					 	struct platform_device	*pdev;
 | 
				
			||||||
 	struct dev_pm_qos_request pm_qos;
 | 
					 	struct dev_pm_qos_request pm_qos;
 | 
				
			||||||
 	void __iomem		*reg;
 | 
					@@ -187,7 +186,7 @@ struct sh_flctl_platform_data {
 | 
				
			||||||
+	resource_size_t		fifo;
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
 	uint8_t	done_buff[2048 + 64];	/* max size 2048 + 64 */
 | 
					 | 
				
			||||||
 	int	read_bytes;
 | 
					 | 
				
			||||||
@@ -186,7 +186,7 @@ struct sh_flctl_platform_data {
 | 
					 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 static inline struct sh_flctl *mtd_to_flctl(struct mtd_info *mtdinfo)
 | 
					 static inline struct sh_flctl *mtd_to_flctl(struct mtd_info *mtdinfo)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
--- a/drivers/usb/host/Kconfig
 | 
					--- a/drivers/usb/host/Kconfig
 | 
				
			||||||
+++ b/drivers/usb/host/Kconfig
 | 
					+++ b/drivers/usb/host/Kconfig
 | 
				
			||||||
@@ -313,6 +313,13 @@ config USB_OCTEON_EHCI
 | 
					@@ -315,6 +315,13 @@ config USB_OCTEON_EHCI
 | 
				
			||||||
 	  USB 2.0 device support.  All CN6XXX based chips with USB are
 | 
					 	  USB 2.0 device support.  All CN6XXX based chips with USB are
 | 
				
			||||||
 	  supported.
 | 
					 	  supported.
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user