generic: 5.15: refresh hack patch
Use 'make target/linux/refresh' to refresh hack patches. Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
This commit is contained in:
		 Ansuel Smith
					Ansuel Smith
				
			
				
					committed by
					
						 Daniel Golle
						Daniel Golle
					
				
			
			
				
	
			
			
			 Daniel Golle
						Daniel Golle
					
				
			
						parent
						
							39a7c8d809
						
					
				
				
					commit
					49cb5e501a
				
			| @@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  |  | ||||||
| --- a/include/linux/module.h | --- a/include/linux/module.h | ||||||
| +++ b/include/linux/module.h | +++ b/include/linux/module.h | ||||||
| @@ -161,6 +161,7 @@ extern void cleanup_module(void); | @@ -164,6 +164,7 @@ extern void cleanup_module(void); | ||||||
|   |   | ||||||
|  /* Generic info of form tag = "info" */ |  /* Generic info of form tag = "info" */ | ||||||
|  #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info) |  #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info) | ||||||
| @@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|   |   | ||||||
|  /* For userspace: you can also call me... */ |  /* For userspace: you can also call me... */ | ||||||
|  #define MODULE_ALIAS(_alias) MODULE_INFO(alias, _alias) |  #define MODULE_ALIAS(_alias) MODULE_INFO(alias, _alias) | ||||||
| @@ -230,12 +231,12 @@ extern void cleanup_module(void); | @@ -233,12 +234,12 @@ extern void cleanup_module(void); | ||||||
|   * Author(s), use "Name <email>" or just "Name", for multiple |   * Author(s), use "Name <email>" or just "Name", for multiple | ||||||
|   * authors use multiple MODULE_AUTHOR() statements/lines. |   * authors use multiple MODULE_AUTHOR() statements/lines. | ||||||
|   */ |   */ | ||||||
| @@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  /* Creates an alias so file2alias.c can find device table. */ |  /* Creates an alias so file2alias.c can find device table. */ | ||||||
|  #define MODULE_DEVICE_TABLE(type, name)					\ |  #define MODULE_DEVICE_TABLE(type, name)					\ | ||||||
|  extern typeof(name) __mod_##type##__##name##_device_table		\ |  extern typeof(name) __mod_##type##__##name##_device_table		\ | ||||||
| @@ -262,7 +263,9 @@ extern typeof(name) __mod_##type##__##na | @@ -265,7 +266,9 @@ extern typeof(name) __mod_##type##__##na | ||||||
|   */ |   */ | ||||||
|   |   | ||||||
|  #if defined(MODULE) || !defined(CONFIG_SYSFS) |  #if defined(MODULE) || !defined(CONFIG_SYSFS) | ||||||
| @@ -49,7 +49,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  #else |  #else | ||||||
|  #define MODULE_VERSION(_version)					\ |  #define MODULE_VERSION(_version)					\ | ||||||
|  	MODULE_INFO(version, _version);					\ |  	MODULE_INFO(version, _version);					\ | ||||||
| @@ -285,7 +288,7 @@ extern typeof(name) __mod_##type##__##na | @@ -288,7 +291,7 @@ extern typeof(name) __mod_##type##__##na | ||||||
|  /* Optional firmware file (or files) needed by the module |  /* Optional firmware file (or files) needed by the module | ||||||
|   * format is simply firmware file name.  Multiple firmware |   * format is simply firmware file name.  Multiple firmware | ||||||
|   * files require multiple MODULE_FIRMWARE() specifiers */ |   * files require multiple MODULE_FIRMWARE() specifiers */ | ||||||
| @@ -75,9 +75,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
| +#endif | +#endif | ||||||
| + | + | ||||||
|  #define __MODULE_INFO(tag, name, info)					  \ |  #define __MODULE_INFO(tag, name, info)					  \ | ||||||
|  static const char __UNIQUE_ID(name)[]					  \ |  	static const char __UNIQUE_ID(name)[]				  \ | ||||||
|    __used __section(".modinfo") __attribute__((unused, aligned(1)))	  \ |  		__used __section(".modinfo") __aligned(1)		  \ | ||||||
| @@ -31,7 +41,7 @@ static const char __UNIQUE_ID(name)[] | @@ -31,7 +41,7 @@ | ||||||
|  /* One for each parameter, describing how to use it.  Some files do |  /* One for each parameter, describing how to use it.  Some files do | ||||||
|     multiple of these per line, so can't just use MODULE_INFO. */ |     multiple of these per line, so can't just use MODULE_INFO. */ | ||||||
|  #define MODULE_PARM_DESC(_parm, desc) \ |  #define MODULE_PARM_DESC(_parm, desc) \ | ||||||
| @@ -104,7 +104,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 | ||||||
| @@ -1285,6 +1285,7 @@ static struct module_attribute *modinfo_ | @@ -1218,6 +1218,7 @@ static struct module_attribute *modinfo_ | ||||||
|   |   | ||||||
|  static const char vermagic[] = VERMAGIC_STRING; |  static const char vermagic[] = VERMAGIC_STRING; | ||||||
|   |   | ||||||
| @@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  static int try_to_force_load(struct module *mod, const char *reason) |  static int try_to_force_load(struct module *mod, const char *reason) | ||||||
|  { |  { | ||||||
|  #ifdef CONFIG_MODULE_FORCE_LOAD |  #ifdef CONFIG_MODULE_FORCE_LOAD | ||||||
| @@ -1296,6 +1297,7 @@ static int try_to_force_load(struct modu | @@ -1229,6 +1230,7 @@ static int try_to_force_load(struct modu | ||||||
|  	return -ENOEXEC; |  	return -ENOEXEC; | ||||||
|  #endif |  #endif | ||||||
|  } |  } | ||||||
| @@ -120,7 +120,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|   |   | ||||||
|  #ifdef CONFIG_MODVERSIONS |  #ifdef CONFIG_MODVERSIONS | ||||||
|   |   | ||||||
| @@ -3247,9 +3249,11 @@ static int setup_load_info(struct load_i | @@ -3227,9 +3229,11 @@ static int setup_load_info(struct load_i | ||||||
|   |   | ||||||
|  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) | ||||||
|  { |  { | ||||||
| @@ -133,7 +133,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	if (flags & MODULE_INIT_IGNORE_VERMAGIC) |  	if (flags & MODULE_INIT_IGNORE_VERMAGIC) | ||||||
|  		modmagic = NULL; |  		modmagic = NULL; | ||||||
|   |   | ||||||
| @@ -3270,6 +3274,7 @@ static int check_modinfo(struct module * | @@ -3250,6 +3254,7 @@ static int check_modinfo(struct module * | ||||||
|  				mod->name); |  				mod->name); | ||||||
|  		add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK); |  		add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK); | ||||||
|  	} |  	} | ||||||
| @@ -143,7 +143,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|   |   | ||||||
| --- a/scripts/mod/modpost.c | --- a/scripts/mod/modpost.c | ||||||
| +++ b/scripts/mod/modpost.c | +++ b/scripts/mod/modpost.c | ||||||
| @@ -2037,7 +2037,9 @@ static void read_symbols(const char *mod | @@ -2033,7 +2033,9 @@ static void read_symbols(const char *mod | ||||||
|  		symname = remove_dot(info.strtab + sym->st_name); |  		symname = remove_dot(info.strtab + sym->st_name); | ||||||
|   |   | ||||||
|  		handle_symbol(mod, &info, sym, symname); |  		handle_symbol(mod, &info, sym, symname); | ||||||
| @@ -153,9 +153,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	} |  	} | ||||||
|   |   | ||||||
|  	for (sym = info.symtab_start; sym < info.symtab_stop; sym++) { |  	for (sym = info.symtab_start; sym < info.symtab_stop; sym++) { | ||||||
| @@ -2250,8 +2252,10 @@ static void add_header(struct buffer *b, | @@ -2212,8 +2214,10 @@ static void add_header(struct buffer *b, | ||||||
|  	buf_printf(b, "\n"); |  | ||||||
|  	buf_printf(b, "BUILD_SALT;\n"); |  	buf_printf(b, "BUILD_SALT;\n"); | ||||||
|  |  	buf_printf(b, "BUILD_LTO_INFO;\n"); | ||||||
|  	buf_printf(b, "\n"); |  	buf_printf(b, "\n"); | ||||||
| +#ifndef CONFIG_MODULE_STRIPPED | +#ifndef CONFIG_MODULE_STRIPPED | ||||||
|  	buf_printf(b, "MODULE_INFO(vermagic, VERMAGIC_STRING);\n"); |  	buf_printf(b, "MODULE_INFO(vermagic, VERMAGIC_STRING);\n"); | ||||||
| @@ -164,7 +164,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, "__section(\".gnu.linkonce.this_module\") = {\n"); |  	buf_printf(b, "__section(\".gnu.linkonce.this_module\") = {\n"); | ||||||
| @@ -2268,8 +2272,10 @@ static void add_header(struct buffer *b, | @@ -2230,8 +2234,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) | ||||||
|  { |  { | ||||||
| @@ -175,7 +175,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  } |  } | ||||||
|   |   | ||||||
|  /* Cannot check for assembler */ |  /* Cannot check for assembler */ | ||||||
| @@ -2282,8 +2288,10 @@ static void add_retpoline(struct buffer | @@ -2244,8 +2250,10 @@ 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) | ||||||
|  { |  { | ||||||
| @@ -186,7 +186,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  } |  } | ||||||
|   |   | ||||||
|  /** |  /** | ||||||
| @@ -2367,11 +2375,13 @@ static void add_depends(struct buffer *b | @@ -2325,11 +2333,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) | ||||||
|  { |  { | ||||||
| @@ -200,9 +200,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  } |  } | ||||||
|   |   | ||||||
|  static void write_buf(struct buffer *b, const char *fname) |  static void write_buf(struct buffer *b, const char *fname) | ||||||
| @@ -2630,7 +2640,9 @@ int main(int argc, char **argv) | @@ -2578,7 +2588,9 @@ int main(int argc, char **argv) | ||||||
|  		add_staging_flag(&buf, mod->name); |  		add_staging_flag(&buf, mod->name); | ||||||
|  		err |= add_versions(&buf, mod); |  		add_versions(&buf, mod); | ||||||
|  		add_depends(&buf, mod); |  		add_depends(&buf, mod); | ||||||
| +#ifndef CONFIG_MODULE_STRIPPED | +#ifndef CONFIG_MODULE_STRIPPED | ||||||
|  		add_moddevtable(&buf, mod); |  		add_moddevtable(&buf, mod); | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| --- a/scripts/kconfig/conf.c | --- a/scripts/kconfig/conf.c | ||||||
| +++ b/scripts/kconfig/conf.c | +++ b/scripts/kconfig/conf.c | ||||||
| @@ -215,6 +215,8 @@ static int conf_sym(struct menu *menu) | @@ -435,6 +435,8 @@ static int conf_sym(struct menu *menu) | ||||||
|  				break; |  				break; | ||||||
|  			continue; |  			continue; | ||||||
|  		case 0: |  		case 0: | ||||||
|   | |||||||
| @@ -68,7 +68,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
| +#endif | +#endif | ||||||
| --- a/tools/include/linux/types.h | --- a/tools/include/linux/types.h | ||||||
| +++ b/tools/include/linux/types.h | +++ b/tools/include/linux/types.h | ||||||
| @@ -7,8 +7,12 @@ | @@ -10,8 +10,12 @@ | ||||||
|  #define __SANE_USERSPACE_TYPES__	/* For PPC64, to get LL64 types */ |  #define __SANE_USERSPACE_TYPES__	/* For PPC64, to get LL64 types */ | ||||||
|  #endif |  #endif | ||||||
|   |   | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  |  | ||||||
| --- a/include/uapi/linux/spi/spidev.h | --- a/include/uapi/linux/spi/spidev.h | ||||||
| +++ b/include/uapi/linux/spi/spidev.h | +++ b/include/uapi/linux/spi/spidev.h | ||||||
| @@ -121,7 +121,7 @@ struct spi_ioc_transfer { | @@ -93,7 +93,7 @@ struct spi_ioc_transfer { | ||||||
|   |   | ||||||
|  /* not all platforms use <asm-generic/ioctl.h> or _IOC_TYPECHECK() ... */ |  /* not all platforms use <asm-generic/ioctl.h> or _IOC_TYPECHECK() ... */ | ||||||
|  #define SPI_MSGSIZE(N) \ |  #define SPI_MSGSIZE(N) \ | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org> | |||||||
| --- | --- | ||||||
| --- a/arch/arm/Kconfig | --- a/arch/arm/Kconfig | ||||||
| +++ b/arch/arm/Kconfig | +++ b/arch/arm/Kconfig | ||||||
| @@ -113,6 +113,7 @@ config ARM | @@ -117,6 +117,7 @@ config ARM | ||||||
|  	select HAVE_UID16 |  	select HAVE_UID16 | ||||||
|  	select HAVE_VIRT_CPU_ACCOUNTING_GEN |  	select HAVE_VIRT_CPU_ACCOUNTING_GEN | ||||||
|  	select IRQ_FORCED_THREADING |  	select IRQ_FORCED_THREADING | ||||||
| @@ -22,14 +22,14 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org> | |||||||
|  	select OF_EARLY_FLATTREE if OF |  	select OF_EARLY_FLATTREE if OF | ||||||
| --- a/arch/arm/boot/compressed/Makefile | --- a/arch/arm/boot/compressed/Makefile | ||||||
| +++ b/arch/arm/boot/compressed/Makefile | +++ b/arch/arm/boot/compressed/Makefile | ||||||
| @@ -98,6 +98,7 @@ $(foreach o, $(libfdt_objs) atags_to_fdt | @@ -92,6 +92,7 @@ endif | ||||||
|  ifdef building_out_of_srctree |  ifeq ($(CONFIG_USE_OF),y) | ||||||
|  $(shell rm -f $(addprefix $(obj)/, fdt_rw.c fdt_ro.c fdt_wip.c fdt.c)) |  OBJS	+= $(libfdt_objs) fdt_check_mem_start.o | ||||||
|  endif |  endif | ||||||
| +KBUILD_CFLAGS_KERNEL := $(patsubst -f%-sections,,$(KBUILD_CFLAGS_KERNEL)) | +KBUILD_CFLAGS_KERNEL := $(patsubst -f%-sections,,$(KBUILD_CFLAGS_KERNEL)) | ||||||
|   |   | ||||||
|  targets       := vmlinux vmlinux.lds piggy_data piggy.o \ |  # -fstack-protector-strong triggers protection checks in this code, | ||||||
|  		 lib1funcs.o ashldi3.o bswapsdi2.o \ |  # but it is being used too early to link to meaningful stack_chk logic. | ||||||
| --- a/arch/arm/kernel/vmlinux.lds.S | --- a/arch/arm/kernel/vmlinux.lds.S | ||||||
| +++ b/arch/arm/kernel/vmlinux.lds.S | +++ b/arch/arm/kernel/vmlinux.lds.S | ||||||
| @@ -75,7 +75,7 @@ SECTIONS | @@ -75,7 +75,7 @@ SECTIONS | ||||||
|   | |||||||
| @@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  /* Align . to a 8 byte boundary equals to maximum function alignment. */ |  /* Align . to a 8 byte boundary equals to maximum function alignment. */ | ||||||
|  #define ALIGN_FUNCTION()  . = ALIGN(8) |  #define ALIGN_FUNCTION()  . = ALIGN(8) | ||||||
|   |   | ||||||
| @@ -473,14 +483,14 @@ | @@ -484,14 +494,14 @@ | ||||||
|  	/* Kernel symbol table: Normal symbols */			\ |  	/* Kernel symbol table: Normal symbols */			\ | ||||||
|  	__ksymtab         : AT(ADDR(__ksymtab) - LOAD_OFFSET) {		\ |  	__ksymtab         : AT(ADDR(__ksymtab) - LOAD_OFFSET) {		\ | ||||||
|  		__start___ksymtab = .;					\ |  		__start___ksymtab = .;					\ | ||||||
| @@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  		__stop___ksymtab_gpl = .;				\ |  		__stop___ksymtab_gpl = .;				\ | ||||||
|  	}								\ |  	}								\ | ||||||
|  									\ |  									\ | ||||||
| @@ -542,7 +552,7 @@ | @@ -511,7 +521,7 @@ | ||||||
|  									\ |  									\ | ||||||
|  	/* Kernel symbol table: strings */				\ |  	/* Kernel symbol table: strings */				\ | ||||||
|          __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) {	\ |          __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) {	\ | ||||||
| @@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	}								\ |  	}								\ | ||||||
|  									\ |  									\ | ||||||
|  	/* __*init sections */						\ |  	/* __*init sections */						\ | ||||||
| @@ -1019,6 +1029,8 @@ | @@ -1018,6 +1028,8 @@ | ||||||
|   |   | ||||||
|  #define COMMON_DISCARDS							\ |  #define COMMON_DISCARDS							\ | ||||||
|  	SANITIZER_DISCARDS						\ |  	SANITIZER_DISCARDS						\ | ||||||
| @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	    "__kstrtabns_" #sym ":					\n"	\ |  	    "__kstrtabns_" #sym ":					\n"	\ | ||||||
| --- a/scripts/Makefile.build | --- a/scripts/Makefile.build | ||||||
| +++ b/scripts/Makefile.build | +++ b/scripts/Makefile.build | ||||||
| @@ -367,7 +367,7 @@ targets += $(lib-y) $(always-y) $(MAKECM | @@ -385,7 +385,7 @@ targets += $(real-dtb-y) $(lib-y) $(alwa | ||||||
|  # Linker scripts preprocessor (.lds.S -> .lds) |  # Linker scripts preprocessor (.lds.S -> .lds) | ||||||
|  # --------------------------------------------------------------------------- |  # --------------------------------------------------------------------------- | ||||||
|  quiet_cmd_cpp_lds_S = LDS     $@ |  quiet_cmd_cpp_lds_S = LDS     $@ | ||||||
|   | |||||||
| @@ -23,7 +23,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org> | |||||||
|  	{ {0x02, 0x21}, "lz4", unlz4 }, |  	{ {0x02, 0x21}, "lz4", unlz4 }, | ||||||
| --- a/scripts/Makefile.lib | --- a/scripts/Makefile.lib | ||||||
| +++ b/scripts/Makefile.lib | +++ b/scripts/Makefile.lib | ||||||
| @@ -370,7 +370,7 @@ quiet_cmd_bzip2 = BZIP2   $@ | @@ -413,7 +413,7 @@ quiet_cmd_bzip2 = BZIP2   $@ | ||||||
|  # --------------------------------------------------------------------------- |  # --------------------------------------------------------------------------- | ||||||
|   |   | ||||||
|  quiet_cmd_lzma = LZMA    $@ |  quiet_cmd_lzma = LZMA    $@ | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  |  | ||||||
| --- a/net/netfilter/Kconfig | --- a/net/netfilter/Kconfig | ||||||
| +++ b/net/netfilter/Kconfig | +++ b/net/netfilter/Kconfig | ||||||
| @@ -228,7 +228,6 @@ config NF_CONNTRACK_FTP | @@ -243,7 +243,6 @@ config NF_CONNTRACK_FTP | ||||||
|   |   | ||||||
|  config NF_CONNTRACK_H323 |  config NF_CONNTRACK_H323 | ||||||
|  	tristate "H.323 protocol support" |  	tristate "H.323 protocol support" | ||||||
| @@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	depends on NETFILTER_ADVANCED |  	depends on NETFILTER_ADVANCED | ||||||
|  	help |  	help | ||||||
|  	  H.323 is a VoIP signalling protocol from ITU-T. As one of the most |  	  H.323 is a VoIP signalling protocol from ITU-T. As one of the most | ||||||
| @@ -1072,7 +1071,6 @@ config NETFILTER_XT_TARGET_SECMARK | @@ -1106,7 +1105,6 @@ config NETFILTER_XT_TARGET_SECMARK | ||||||
|   |   | ||||||
|  config NETFILTER_XT_TARGET_TCPMSS |  config NETFILTER_XT_TARGET_TCPMSS | ||||||
|  	tristate '"TCPMSS" target support' |  	tristate '"TCPMSS" target support' | ||||||
|   | |||||||
| @@ -92,7 +92,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  	bool |  	bool | ||||||
| --- a/lib/Kconfig | --- a/lib/Kconfig | ||||||
| +++ b/lib/Kconfig | +++ b/lib/Kconfig | ||||||
| @@ -418,16 +418,16 @@ config BCH_CONST_T | @@ -438,16 +438,16 @@ config BCH_CONST_T | ||||||
|  # Textsearch support is select'ed if needed |  # Textsearch support is select'ed if needed | ||||||
|  # |  # | ||||||
|  config TEXTSEARCH |  config TEXTSEARCH | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ | |||||||
|  	  that can be interpreted by the ASN.1 stream decoder and used to |  	  that can be interpreted by the ASN.1 stream decoder and used to | ||||||
| --- a/lib/Kconfig | --- a/lib/Kconfig | ||||||
| +++ b/lib/Kconfig | +++ b/lib/Kconfig | ||||||
| @@ -589,7 +589,7 @@ config LIBFDT | @@ -609,7 +609,7 @@ config LIBFDT | ||||||
|  	bool |  	bool | ||||||
|   |   | ||||||
|  config OID_REGISTRY |  config OID_REGISTRY | ||||||
|   | |||||||
| @@ -94,7 +94,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
| +	select REGMAP | +	select REGMAP | ||||||
|  	tristate |  	tristate | ||||||
|  	depends on SPI |  	depends on SPI | ||||||
|  |  | ||||||
| --- a/drivers/base/regmap/Makefile | --- a/drivers/base/regmap/Makefile | ||||||
| +++ b/drivers/base/regmap/Makefile | +++ b/drivers/base/regmap/Makefile | ||||||
| @@ -2,10 +2,14 @@ | @@ -2,10 +2,14 @@ | ||||||
| @@ -126,7 +125,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  #include <linux/mutex.h> |  #include <linux/mutex.h> | ||||||
|  #include <linux/err.h> |  #include <linux/err.h> | ||||||
|  #include <linux/property.h> |  #include <linux/property.h> | ||||||
| @@ -3298,3 +3299,5 @@ static int __init regmap_initcall(void) | @@ -3341,3 +3342,5 @@ static int __init regmap_initcall(void) | ||||||
|  	return 0; |  	return 0; | ||||||
|  } |  } | ||||||
|  postcore_initcall(regmap_initcall); |  postcore_initcall(regmap_initcall); | ||||||
| @@ -134,7 +133,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
| +MODULE_LICENSE("GPL"); | +MODULE_LICENSE("GPL"); | ||||||
| --- a/include/linux/regmap.h | --- a/include/linux/regmap.h | ||||||
| +++ b/include/linux/regmap.h | +++ b/include/linux/regmap.h | ||||||
| @@ -179,7 +179,7 @@ struct reg_sequence { | @@ -180,7 +180,7 @@ struct reg_sequence { | ||||||
|  	__ret ?: __tmp; \ |  	__ret ?: __tmp; \ | ||||||
|  }) |  }) | ||||||
|   |   | ||||||
|   | |||||||
| @@ -37,7 +37,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	tristate "Userspace cryptographic algorithm configuration" |  	tristate "Userspace cryptographic algorithm configuration" | ||||||
| --- a/crypto/algboss.c | --- a/crypto/algboss.c | ||||||
| +++ b/crypto/algboss.c | +++ b/crypto/algboss.c | ||||||
| @@ -230,8 +230,12 @@ static int cryptomgr_schedule_test(struc | @@ -211,8 +211,12 @@ static int cryptomgr_schedule_test(struc | ||||||
|  	type = alg->cra_flags; |  	type = alg->cra_flags; | ||||||
|   |   | ||||||
|  	/* Do not test internal algorithms. */ |  	/* Do not test internal algorithms. */ | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|   * @name: name of the struct -- the string is not copied internally |   * @name: name of the struct -- the string is not copied internally | ||||||
| --- a/net/Makefile | --- a/net/Makefile | ||||||
| +++ b/net/Makefile | +++ b/net/Makefile | ||||||
| @@ -53,7 +53,7 @@ obj-$(CONFIG_TIPC)		+= tipc/ | @@ -52,7 +52,7 @@ obj-$(CONFIG_TIPC)		+= tipc/ | ||||||
|  obj-$(CONFIG_NETLABEL)		+= netlabel/ |  obj-$(CONFIG_NETLABEL)		+= netlabel/ | ||||||
|  obj-$(CONFIG_IUCV)		+= iucv/ |  obj-$(CONFIG_IUCV)		+= iucv/ | ||||||
|  obj-$(CONFIG_SMC)		+= smc/ |  obj-$(CONFIG_SMC)		+= smc/ | ||||||
| @@ -34,7 +34,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
| +obj-$(CONFIG_RFKILL_FULL)	+= rfkill/ | +obj-$(CONFIG_RFKILL_FULL)	+= rfkill/ | ||||||
|  obj-$(CONFIG_NET_9P)		+= 9p/ |  obj-$(CONFIG_NET_9P)		+= 9p/ | ||||||
|  obj-$(CONFIG_CAIF)		+= caif/ |  obj-$(CONFIG_CAIF)		+= caif/ | ||||||
|  ifneq ($(CONFIG_DCB),) |  obj-$(CONFIG_DCB)		+= dcb/ | ||||||
| --- a/net/rfkill/Kconfig | --- a/net/rfkill/Kconfig | ||||||
| +++ b/net/rfkill/Kconfig | +++ b/net/rfkill/Kconfig | ||||||
| @@ -2,7 +2,11 @@ | @@ -2,7 +2,11 @@ | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
| --- | --- | ||||||
| --- a/arch/mips/include/asm/r4kcache.h | --- a/arch/mips/include/asm/r4kcache.h | ||||||
| +++ b/arch/mips/include/asm/r4kcache.h | +++ b/arch/mips/include/asm/r4kcache.h | ||||||
| @@ -296,14 +296,46 @@ static inline void prot##extra##blast_## | @@ -286,14 +286,46 @@ static inline void prot##extra##blast_## | ||||||
|  						    unsigned long end)	\ |  						    unsigned long end)	\ | ||||||
|  {									\ |  {									\ | ||||||
|  	unsigned long lsize = cpu_##desc##_line_size();			\ |  	unsigned long lsize = cpu_##desc##_line_size();			\ | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org> | |||||||
|  |  | ||||||
| --- a/arch/mips/Kconfig | --- a/arch/mips/Kconfig | ||||||
| +++ b/arch/mips/Kconfig | +++ b/arch/mips/Kconfig | ||||||
| @@ -1170,6 +1170,10 @@ config MIPS_MSC | @@ -1180,6 +1180,10 @@ config MIPS_MSC | ||||||
|  config SYNC_R4K |  config SYNC_R4K | ||||||
|  	bool |  	bool | ||||||
|   |   | ||||||
|   | |||||||
| @@ -77,7 +77,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> | |||||||
|   |   | ||||||
|  #include "mtdcore.h" |  #include "mtdcore.h" | ||||||
|   |   | ||||||
| @@ -1000,6 +1001,8 @@ int mtd_device_parse_register(struct mtd | @@ -1002,6 +1003,8 @@ int mtd_device_parse_register(struct mtd | ||||||
|   |   | ||||||
|  	ret = mtd_otp_nvmem_add(mtd); |  	ret = mtd_otp_nvmem_add(mtd); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| --- a/block/blk.h | --- a/block/blk.h | ||||||
| +++ b/block/blk.h | +++ b/block/blk.h | ||||||
| @@ -361,6 +361,8 @@ char *disk_name(struct gendisk *hd, int | @@ -354,6 +354,8 @@ void blk_free_ext_minor(unsigned int min | ||||||
|  #define ADDPART_FLAG_NONE	0 |  #define ADDPART_FLAG_NONE	0 | ||||||
|  #define ADDPART_FLAG_RAID	1 |  #define ADDPART_FLAG_RAID	1 | ||||||
|  #define ADDPART_FLAG_WHOLEDISK	2 |  #define ADDPART_FLAG_WHOLEDISK	2 | ||||||
| @@ -53,7 +53,7 @@ | |||||||
| +int parse_fit_partitions(struct parsed_partitions *state, u64 start_sector, u64 nr_sectors, int *slot, int add_remain); | +int parse_fit_partitions(struct parsed_partitions *state, u64 start_sector, u64 nr_sectors, int *slot, int add_remain); | ||||||
| --- a/block/partitions/core.c | --- a/block/partitions/core.c | ||||||
| +++ b/block/partitions/core.c | +++ b/block/partitions/core.c | ||||||
| @@ -10,6 +10,10 @@ | @@ -12,6 +12,10 @@ | ||||||
|  #include <linux/vmalloc.h> |  #include <linux/vmalloc.h> | ||||||
|  #include <linux/blktrace_api.h> |  #include <linux/blktrace_api.h> | ||||||
|  #include <linux/raid/detect.h> |  #include <linux/raid/detect.h> | ||||||
| @@ -64,7 +64,7 @@ | |||||||
|  #include "check.h" |  #include "check.h" | ||||||
|   |   | ||||||
|  static int (*check_part[])(struct parsed_partitions *) = { |  static int (*check_part[])(struct parsed_partitions *) = { | ||||||
| @@ -46,6 +50,9 @@ static int (*check_part[])(struct parsed | @@ -48,6 +52,9 @@ static int (*check_part[])(struct parsed | ||||||
|  #ifdef CONFIG_EFI_PARTITION |  #ifdef CONFIG_EFI_PARTITION | ||||||
|  	efi_partition,		/* this must come before msdos */ |  	efi_partition,		/* this must come before msdos */ | ||||||
|  #endif |  #endif | ||||||
| @@ -74,9 +74,9 @@ | |||||||
|  #ifdef CONFIG_SGI_PARTITION |  #ifdef CONFIG_SGI_PARTITION | ||||||
|  	sgi_partition, |  	sgi_partition, | ||||||
|  #endif |  #endif | ||||||
| @@ -694,6 +701,14 @@ static bool blk_add_partition(struct gen | @@ -598,6 +605,14 @@ static bool blk_add_partition(struct gen | ||||||
|  	    (state->parts[p].flags & ADDPART_FLAG_RAID)) |  	    (state->parts[p].flags & ADDPART_FLAG_RAID)) | ||||||
|  		md_autodetect_dev(part_to_dev(part)->devt); |  		md_autodetect_dev(part->bd_dev); | ||||||
|   |   | ||||||
| +#ifdef CONFIG_FIT_PARTITION | +#ifdef CONFIG_FIT_PARTITION | ||||||
| +	if ((state->parts[p].flags & ADDPART_FLAG_ROOTDEV) && ROOT_DEV == 0) | +	if ((state->parts[p].flags & ADDPART_FLAG_ROOTDEV) && ROOT_DEV == 0) | ||||||
| @@ -91,7 +91,7 @@ | |||||||
|   |   | ||||||
| --- a/drivers/mtd/ubi/block.c | --- a/drivers/mtd/ubi/block.c | ||||||
| +++ b/drivers/mtd/ubi/block.c | +++ b/drivers/mtd/ubi/block.c | ||||||
| @@ -413,6 +417,9 @@ int ubiblock_create(struct ubi_volume_in | @@ -428,6 +428,9 @@ int ubiblock_create(struct ubi_volume_in | ||||||
|  		goto out_cleanup_disk; |  		goto out_cleanup_disk; | ||||||
|  	} |  	} | ||||||
|  	gd->private_data = dev; |  	gd->private_data = dev; | ||||||
| @@ -103,7 +103,7 @@ | |||||||
|  	dev->gd = gd; |  	dev->gd = gd; | ||||||
| --- a/drivers/mtd/mtd_blkdevs.c | --- a/drivers/mtd/mtd_blkdevs.c | ||||||
| +++ b/drivers/mtd/mtd_blkdevs.c | +++ b/drivers/mtd/mtd_blkdevs.c | ||||||
| @@ -345,6 +345,9 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new) | @@ -345,6 +345,9 @@ int add_mtd_blktrans_dev(struct mtd_blkt | ||||||
|  	gd->first_minor = (new->devnum) << tr->part_bits; |  	gd->first_minor = (new->devnum) << tr->part_bits; | ||||||
|  	gd->minors = 1 << tr->part_bits; |  	gd->minors = 1 << tr->part_bits; | ||||||
|  	gd->fops = &mtd_block_ops; |  	gd->fops = &mtd_block_ops; | ||||||
| @@ -115,7 +115,7 @@ | |||||||
|  		if (new->devnum < 26) |  		if (new->devnum < 26) | ||||||
| --- a/block/partitions/efi.c | --- a/block/partitions/efi.c | ||||||
| +++ b/block/partitions/efi.c | +++ b/block/partitions/efi.c | ||||||
| @@ -706,6 +706,9 @@ int efi_partition(struct parsed_partitio | @@ -716,6 +716,9 @@ int efi_partition(struct parsed_partitio | ||||||
|  	gpt_entry *ptes = NULL; |  	gpt_entry *ptes = NULL; | ||||||
|  	u32 i; |  	u32 i; | ||||||
|  	unsigned ssz = queue_logical_block_size(state->disk->queue) / 512; |  	unsigned ssz = queue_logical_block_size(state->disk->queue) / 512; | ||||||
| @@ -125,7 +125,7 @@ | |||||||
|   |   | ||||||
|  	if (!find_valid_gpt(state, &gpt, &ptes) || !gpt || !ptes) { |  	if (!find_valid_gpt(state, &gpt, &ptes) || !gpt || !ptes) { | ||||||
|  		kfree(gpt); |  		kfree(gpt); | ||||||
| @@ -739,6 +742,11 @@ int efi_partition(struct parsed_partitio | @@ -749,6 +752,11 @@ int efi_partition(struct parsed_partitio | ||||||
|  				ARRAY_SIZE(ptes[i].partition_name)); |  				ARRAY_SIZE(ptes[i].partition_name)); | ||||||
|  		utf16_le_to_7bit(ptes[i].partition_name, label_max, info->volname); |  		utf16_le_to_7bit(ptes[i].partition_name, label_max, info->volname); | ||||||
|  		state->parts[i + 1].has_info = true; |  		state->parts[i + 1].has_info = true; | ||||||
| @@ -151,7 +151,7 @@ | |||||||
|  	__le64 signature; |  	__le64 signature; | ||||||
| --- a/block/partitions/msdos.c | --- a/block/partitions/msdos.c | ||||||
| +++ b/block/partitions/msdos.c | +++ b/block/partitions/msdos.c | ||||||
| @@ -563,6 +563,15 @@ static void parse_minix(struct parsed_pa | @@ -564,6 +564,15 @@ static void parse_minix(struct parsed_pa | ||||||
|  #endif /* CONFIG_MINIX_SUBPARTITION */ |  #endif /* CONFIG_MINIX_SUBPARTITION */ | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -167,7 +167,7 @@ | |||||||
|  static struct { |  static struct { | ||||||
|  	unsigned char id; |  	unsigned char id; | ||||||
|  	void (*parse)(struct parsed_partitions *, sector_t, sector_t, int); |  	void (*parse)(struct parsed_partitions *, sector_t, sector_t, int); | ||||||
| @@ -574,6 +583,7 @@ static struct { | @@ -575,6 +584,7 @@ static struct { | ||||||
|  	{UNIXWARE_PARTITION, parse_unixware}, |  	{UNIXWARE_PARTITION, parse_unixware}, | ||||||
|  	{SOLARIS_X86_PARTITION, parse_solaris_x86}, |  	{SOLARIS_X86_PARTITION, parse_solaris_x86}, | ||||||
|  	{NEW_SOLARIS_X86_PARTITION, parse_solaris_x86}, |  	{NEW_SOLARIS_X86_PARTITION, parse_solaris_x86}, | ||||||
|   | |||||||
| @@ -20,7 +20,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org> | |||||||
|  #include <linux/nvmem-provider.h> |  #include <linux/nvmem-provider.h> | ||||||
|   |   | ||||||
|  #include <linux/mtd/mtd.h> |  #include <linux/mtd/mtd.h> | ||||||
| @@ -694,6 +695,16 @@ int add_mtd_device(struct mtd_info *mtd) | @@ -697,6 +698,16 @@ int add_mtd_device(struct mtd_info *mtd) | ||||||
|  	   of this try_ nonsense, and no bitching about it |  	   of this try_ nonsense, and no bitching about it | ||||||
|  	   either. :) */ |  	   either. :) */ | ||||||
|  	__module_get(THIS_MODULE); |  	__module_get(THIS_MODULE); | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| --- a/drivers/mtd/nand/Kconfig | --- a/drivers/mtd/nand/Kconfig | ||||||
| +++ b/drivers/mtd/nand/Kconfig | +++ b/drivers/mtd/nand/Kconfig | ||||||
| @@ -15,6 +15,10 @@ config MTD_NAND_ECC | @@ -46,6 +46,10 @@ config MTD_NAND_ECC_SW_BCH | ||||||
|         bool |  	  ECC codes. They are used with NAND devices requiring more than 1 bit | ||||||
|         depends on MTD_NAND_CORE |  	  of error correction. | ||||||
|   |   | ||||||
| +config MTD_NAND_MTK_BMT | +config MTD_NAND_MTK_BMT | ||||||
| +	bool "Support MediaTek NAND Bad-block Management Table" | +	bool "Support MediaTek NAND Bad-block Management Table" | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| --- a/include/linux/if_bridge.h | --- a/include/linux/if_bridge.h | ||||||
| +++ b/include/linux/if_bridge.h | +++ b/include/linux/if_bridge.h | ||||||
| @@ -57,6 +57,7 @@ struct br_ip_list { | @@ -59,6 +59,7 @@ struct br_ip_list { | ||||||
|  #define BR_MRP_LOST_IN_CONT	BIT(19) |  #define BR_MRP_LOST_IN_CONT	BIT(19) | ||||||
|  #define BR_TX_FWD_OFFLOAD	BIT(20) |  #define BR_TX_FWD_OFFLOAD	BIT(20) | ||||||
|  #define BR_BPDU_FILTER		BIT(21) |  #define BR_BPDU_FILTER		BIT(21) | ||||||
| @@ -29,7 +29,7 @@ | |||||||
|   |   | ||||||
|  /* |  /* | ||||||
|   * Handle changes in state of network devices enslaved to a bridge. |   * Handle changes in state of network devices enslaved to a bridge. | ||||||
| @@ -332,6 +333,10 @@ static int __init br_init(void) | @@ -381,6 +382,10 @@ static int __init br_init(void) | ||||||
|  	if (err) |  	if (err) | ||||||
|  		goto err_out; |  		goto err_out; | ||||||
|   |   | ||||||
| @@ -40,7 +40,7 @@ | |||||||
|  	err = register_pernet_subsys(&br_net_ops); |  	err = register_pernet_subsys(&br_net_ops); | ||||||
|  	if (err) |  	if (err) | ||||||
|  		goto err_out1; |  		goto err_out1; | ||||||
| @@ -375,6 +380,8 @@ err_out3: | @@ -430,6 +435,8 @@ err_out3: | ||||||
|  err_out2: |  err_out2: | ||||||
|  	unregister_pernet_subsys(&br_net_ops); |  	unregister_pernet_subsys(&br_net_ops); | ||||||
|  err_out1: |  err_out1: | ||||||
| @@ -49,7 +49,7 @@ | |||||||
|  	br_fdb_fini(); |  	br_fdb_fini(); | ||||||
|  err_out: |  err_out: | ||||||
|  	stp_proto_unregister(&br_stp_proto); |  	stp_proto_unregister(&br_stp_proto); | ||||||
| @@ -396,6 +403,7 @@ static void __exit br_deinit(void) | @@ -452,6 +459,7 @@ static void __exit br_deinit(void) | ||||||
|  #if IS_ENABLED(CONFIG_ATM_LANE) |  #if IS_ENABLED(CONFIG_ATM_LANE) | ||||||
|  	br_fdb_test_addr_hook = NULL; |  	br_fdb_test_addr_hook = NULL; | ||||||
|  #endif |  #endif | ||||||
| @@ -59,7 +59,7 @@ | |||||||
|   |   | ||||||
| --- a/net/bridge/br_device.c | --- a/net/bridge/br_device.c | ||||||
| +++ b/net/bridge/br_device.c | +++ b/net/bridge/br_device.c | ||||||
| @@ -529,6 +529,8 @@ void br_dev_setup(struct net_device *dev | @@ -524,6 +524,8 @@ void br_dev_setup(struct net_device *dev | ||||||
|  	br->bridge_hello_time = br->hello_time = 2 * HZ; |  	br->bridge_hello_time = br->hello_time = 2 * HZ; | ||||||
|  	br->bridge_forward_delay = br->forward_delay = 15 * HZ; |  	br->bridge_forward_delay = br->forward_delay = 15 * HZ; | ||||||
|  	br->bridge_ageing_time = br->ageing_time = BR_DEFAULT_AGEING_TIME; |  	br->bridge_ageing_time = br->ageing_time = BR_DEFAULT_AGEING_TIME; | ||||||
| @@ -78,7 +78,7 @@ | |||||||
|   |   | ||||||
|  static const struct rhashtable_params br_fdb_rht_params = { |  static const struct rhashtable_params br_fdb_rht_params = { | ||||||
|  	.head_offset = offsetof(struct net_bridge_fdb_entry, rhnode), |  	.head_offset = offsetof(struct net_bridge_fdb_entry, rhnode), | ||||||
| @@ -513,6 +514,8 @@ static struct net_bridge_fdb_entry *fdb_ | @@ -518,6 +519,8 @@ static struct net_bridge_fdb_entry *fdb_ | ||||||
|  		fdb->key.vlan_id = vid; |  		fdb->key.vlan_id = vid; | ||||||
|  		fdb->flags = flags; |  		fdb->flags = flags; | ||||||
|  		fdb->updated = fdb->used = jiffies; |  		fdb->updated = fdb->used = jiffies; | ||||||
| @@ -87,7 +87,7 @@ | |||||||
|  		if (rhashtable_lookup_insert_fast(&br->fdb_hash_tbl, |  		if (rhashtable_lookup_insert_fast(&br->fdb_hash_tbl, | ||||||
|  						  &fdb->rhnode, |  						  &fdb->rhnode, | ||||||
|  						  br_fdb_rht_params)) { |  						  br_fdb_rht_params)) { | ||||||
| @@ -734,6 +737,8 @@ static void fdb_notify(struct net_bridge | @@ -794,6 +797,8 @@ static void fdb_notify(struct net_bridge | ||||||
|  	struct sk_buff *skb; |  	struct sk_buff *skb; | ||||||
|  	int err = -ENOBUFS; |  	int err = -ENOBUFS; | ||||||
|   |   | ||||||
| @@ -125,7 +125,7 @@ | |||||||
|   |   | ||||||
|  /* |  /* | ||||||
|   * Determine initial path cost based on speed. |   * Determine initial path cost based on speed. | ||||||
| @@ -427,7 +428,7 @@ static struct net_bridge_port *new_nbp(s | @@ -428,7 +429,7 @@ static struct net_bridge_port *new_nbp(s | ||||||
|  	p->path_cost = port_cost(dev); |  	p->path_cost = port_cost(dev); | ||||||
|  	p->priority = 0x8000 >> BR_PORT_BITS; |  	p->priority = 0x8000 >> BR_PORT_BITS; | ||||||
|  	p->port_no = index; |  	p->port_no = index; | ||||||
| @@ -134,7 +134,7 @@ | |||||||
|  	br_init_port(p); |  	br_init_port(p); | ||||||
|  	br_set_state(p, BR_STATE_DISABLED); |  	br_set_state(p, BR_STATE_DISABLED); | ||||||
|  	br_stp_port_timer_init(p); |  	br_stp_port_timer_init(p); | ||||||
| @@ -777,6 +778,9 @@ void br_port_flags_change(struct net_bri | @@ -771,6 +772,9 @@ void br_port_flags_change(struct net_bri | ||||||
|   |   | ||||||
|  	if (mask & BR_NEIGH_SUPPRESS) |  	if (mask & BR_NEIGH_SUPPRESS) | ||||||
|  		br_recalculate_neigh_suppress_enabled(br); |  		br_recalculate_neigh_suppress_enabled(br); | ||||||
| @@ -154,7 +154,7 @@ | |||||||
|   |   | ||||||
|  static int |  static int | ||||||
|  br_netif_receive_skb(struct net *net, struct sock *sk, struct sk_buff *skb) |  br_netif_receive_skb(struct net *net, struct sock *sk, struct sk_buff *skb) | ||||||
| @@ -162,6 +163,7 @@ int br_handle_frame_finish(struct net *n | @@ -164,6 +165,7 @@ int br_handle_frame_finish(struct net *n | ||||||
|  			dst->used = now; |  			dst->used = now; | ||||||
|  		br_forward(dst->dst, skb, local_rcv, false); |  		br_forward(dst->dst, skb, local_rcv, false); | ||||||
|  	} else { |  	} else { | ||||||
| @@ -162,7 +162,7 @@ | |||||||
|  		if (!mcast_hit) |  		if (!mcast_hit) | ||||||
|  			br_flood(br, skb, pkt_type, local_rcv, false); |  			br_flood(br, skb, pkt_type, local_rcv, false); | ||||||
|  		else |  		else | ||||||
| @@ -280,6 +282,9 @@ static rx_handler_result_t br_handle_fra | @@ -297,6 +299,9 @@ static rx_handler_result_t br_handle_fra | ||||||
|  	memset(skb->cb, 0, sizeof(struct br_input_skb_cb)); |  	memset(skb->cb, 0, sizeof(struct br_input_skb_cb)); | ||||||
|   |   | ||||||
|  	p = br_port_get_rcu(skb->dev); |  	p = br_port_get_rcu(skb->dev); | ||||||
| @@ -170,7 +170,7 @@ | |||||||
| +		return RX_HANDLER_CONSUMED; | +		return RX_HANDLER_CONSUMED; | ||||||
| + | + | ||||||
|  	if (p->flags & BR_VLAN_TUNNEL) |  	if (p->flags & BR_VLAN_TUNNEL) | ||||||
|  		br_handle_ingress_vlan_tunnel(skb, p, nbp_vlan_group_rcu(p)) |  		br_handle_ingress_vlan_tunnel(skb, p, nbp_vlan_group_rcu(p)); | ||||||
|   |   | ||||||
| --- /dev/null | --- /dev/null | ||||||
| +++ b/net/bridge/br_offload.c | +++ b/net/bridge/br_offload.c | ||||||
| @@ -615,7 +615,7 @@ | |||||||
| +} | +} | ||||||
| --- a/net/bridge/br_private.h | --- a/net/bridge/br_private.h | ||||||
| +++ b/net/bridge/br_private.h | +++ b/net/bridge/br_private.h | ||||||
| @@ -207,7 +207,13 @@ struct net_bridge_fdb_entry { | @@ -268,7 +268,13 @@ struct net_bridge_fdb_entry { | ||||||
|  	unsigned long			updated ____cacheline_aligned_in_smp; |  	unsigned long			updated ____cacheline_aligned_in_smp; | ||||||
|  	unsigned long			used; |  	unsigned long			used; | ||||||
|   |   | ||||||
| @@ -630,7 +630,7 @@ | |||||||
|  }; |  }; | ||||||
|   |   | ||||||
|  #define MDB_PG_FLAGS_PERMANENT	BIT(0) |  #define MDB_PG_FLAGS_PERMANENT	BIT(0) | ||||||
| @@ -280,6 +286,12 @@ struct net_bridge_mdb_entry { | @@ -343,6 +349,12 @@ struct net_bridge_mdb_entry { | ||||||
|  	struct rcu_head			rcu; |  	struct rcu_head			rcu; | ||||||
|  }; |  }; | ||||||
|   |   | ||||||
| @@ -643,7 +643,7 @@ | |||||||
|  struct net_bridge_port { |  struct net_bridge_port { | ||||||
|  	struct net_bridge		*br; |  	struct net_bridge		*br; | ||||||
|  	struct net_device		*dev; |  	struct net_device		*dev; | ||||||
| @@ -337,6 +349,7 @@ struct net_bridge_port { | @@ -403,6 +415,7 @@ struct net_bridge_port { | ||||||
|  	u16				backup_redirected_cnt; |  	u16				backup_redirected_cnt; | ||||||
|   |   | ||||||
|  	struct bridge_stp_xstats	stp_xstats; |  	struct bridge_stp_xstats	stp_xstats; | ||||||
| @@ -651,7 +651,7 @@ | |||||||
|  }; |  }; | ||||||
|   |   | ||||||
|  #define kobj_to_brport(obj)	container_of(obj, struct net_bridge_port, kobj) |  #define kobj_to_brport(obj)	container_of(obj, struct net_bridge_port, kobj) | ||||||
| @@ -475,6 +488,9 @@ struct net_bridge { | @@ -519,6 +532,9 @@ struct net_bridge { | ||||||
|  	struct kobject			*ifobj; |  	struct kobject			*ifobj; | ||||||
|  	u32				auto_cnt; |  	u32				auto_cnt; | ||||||
|   |   | ||||||
| @@ -661,7 +661,7 @@ | |||||||
|  #ifdef CONFIG_NET_SWITCHDEV |  #ifdef CONFIG_NET_SWITCHDEV | ||||||
|  	/* Counter used to make sure that hardware domains get unique |  	/* Counter used to make sure that hardware domains get unique | ||||||
|  	 * identifiers in case a bridge spans multiple switchdev instances. |  	 * identifiers in case a bridge spans multiple switchdev instances. | ||||||
| @@ -501,6 +517,10 @@ struct br_input_skb_cb { | @@ -553,6 +569,10 @@ struct br_input_skb_cb { | ||||||
|  #ifdef CONFIG_NETFILTER_FAMILY_BRIDGE |  #ifdef CONFIG_NETFILTER_FAMILY_BRIDGE | ||||||
|  	u8 br_netfilter_broute:1; |  	u8 br_netfilter_broute:1; | ||||||
|  #endif |  #endif | ||||||
| @@ -725,9 +725,9 @@ | |||||||
|  #include "br_private.h" |  #include "br_private.h" | ||||||
| +#include "br_private_offload.h" | +#include "br_private_offload.h" | ||||||
|   |   | ||||||
|  #define to_bridge(cd)	((struct net_bridge *)netdev_priv(to_net_dev(cd))) |  /* IMPORTANT: new bridge options must be added with netlink support only | ||||||
|   |   *            please do not add new sysfs entries | ||||||
| @@ -842,6 +843,38 @@ static ssize_t vlan_stats_per_port_store | @@ -930,6 +931,38 @@ static ssize_t vlan_stats_per_port_store | ||||||
|  static DEVICE_ATTR_RW(vlan_stats_per_port); |  static DEVICE_ATTR_RW(vlan_stats_per_port); | ||||||
|  #endif |  #endif | ||||||
|   |   | ||||||
| @@ -766,7 +766,7 @@ | |||||||
|  static struct attribute *bridge_attrs[] = { |  static struct attribute *bridge_attrs[] = { | ||||||
|  	&dev_attr_forward_delay.attr, |  	&dev_attr_forward_delay.attr, | ||||||
|  	&dev_attr_hello_time.attr, |  	&dev_attr_hello_time.attr, | ||||||
| @@ -896,6 +929,8 @@ static struct attribute *bridge_attrs[] | @@ -984,6 +1017,8 @@ static struct attribute *bridge_attrs[] | ||||||
|  	&dev_attr_vlan_stats_enabled.attr, |  	&dev_attr_vlan_stats_enabled.attr, | ||||||
|  	&dev_attr_vlan_stats_per_port.attr, |  	&dev_attr_vlan_stats_per_port.attr, | ||||||
|  #endif |  #endif | ||||||
| @@ -777,7 +777,7 @@ | |||||||
|   |   | ||||||
| --- a/net/bridge/br_sysfs_if.c | --- a/net/bridge/br_sysfs_if.c | ||||||
| +++ b/net/bridge/br_sysfs_if.c | +++ b/net/bridge/br_sysfs_if.c | ||||||
| @@ -234,6 +234,7 @@ BRPORT_ATTR_FLAG(broadcast_flood, BR_BCA | @@ -241,6 +241,7 @@ BRPORT_ATTR_FLAG(broadcast_flood, BR_BCA | ||||||
|  BRPORT_ATTR_FLAG(neigh_suppress, BR_NEIGH_SUPPRESS); |  BRPORT_ATTR_FLAG(neigh_suppress, BR_NEIGH_SUPPRESS); | ||||||
|  BRPORT_ATTR_FLAG(isolated, BR_ISOLATED); |  BRPORT_ATTR_FLAG(isolated, BR_ISOLATED); | ||||||
|  BRPORT_ATTR_FLAG(bpdu_filter, BR_BPDU_FILTER); |  BRPORT_ATTR_FLAG(bpdu_filter, BR_BPDU_FILTER); | ||||||
| @@ -785,7 +785,7 @@ | |||||||
|   |   | ||||||
|  #ifdef CONFIG_BRIDGE_IGMP_SNOOPING |  #ifdef CONFIG_BRIDGE_IGMP_SNOOPING | ||||||
|  static ssize_t show_multicast_router(struct net_bridge_port *p, char *buf) |  static ssize_t show_multicast_router(struct net_bridge_port *p, char *buf) | ||||||
| @@ -288,6 +289,7 @@ static const struct brport_attribute *br | @@ -295,6 +296,7 @@ static const struct brport_attribute *br | ||||||
|  	&brport_attr_isolated, |  	&brport_attr_isolated, | ||||||
|  	&brport_attr_bpdu_filter, |  	&brport_attr_bpdu_filter, | ||||||
|  	&brport_attr_backup_port, |  	&brport_attr_backup_port, | ||||||
| @@ -803,7 +803,7 @@ | |||||||
|   |   | ||||||
|  static inline int br_vlan_tunid_cmp(struct rhashtable_compare_arg *arg, |  static inline int br_vlan_tunid_cmp(struct rhashtable_compare_arg *arg, | ||||||
|  				    const void *ptr) |  				    const void *ptr) | ||||||
| @@ -180,6 +181,7 @@ int br_handle_ingress_vlan_tunnel(struct | @@ -180,6 +181,7 @@ void br_handle_ingress_vlan_tunnel(struc | ||||||
|  	skb_dst_drop(skb); |  	skb_dst_drop(skb); | ||||||
|   |   | ||||||
|  	__vlan_hwaccel_put_tag(skb, p->br->vlan_proto, vlan->vid); |  	__vlan_hwaccel_put_tag(skb, p->br->vlan_proto, vlan->vid); | ||||||
| @@ -811,7 +811,7 @@ | |||||||
|  } |  } | ||||||
|   |   | ||||||
|  int br_handle_egress_vlan_tunnel(struct sk_buff *skb, |  int br_handle_egress_vlan_tunnel(struct sk_buff *skb, | ||||||
| @@ -203,6 +205,7 @@ int br_handle_egress_vlan_tunnel(struct | @@ -201,6 +203,7 @@ int br_handle_egress_vlan_tunnel(struct | ||||||
|  	if (err) |  	if (err) | ||||||
|  		return err; |  		return err; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	depends on !NF_CONNTRACK || NF_CONNTRACK |  	depends on !NF_CONNTRACK || NF_CONNTRACK | ||||||
| --- a/net/netfilter/Kconfig | --- a/net/netfilter/Kconfig | ||||||
| +++ b/net/netfilter/Kconfig | +++ b/net/netfilter/Kconfig | ||||||
| @@ -683,8 +683,6 @@ config NFT_FIB_NETDEV | @@ -708,8 +708,6 @@ config NFT_REJECT_NETDEV | ||||||
|   |   | ||||||
|  endif # NF_TABLES_NETDEV |  endif # NF_TABLES_NETDEV | ||||||
|   |   | ||||||
| @@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  config NF_FLOW_TABLE_INET |  config NF_FLOW_TABLE_INET | ||||||
|  	tristate "Netfilter flow table mixed IPv4/IPv6 module" |  	tristate "Netfilter flow table mixed IPv4/IPv6 module" | ||||||
|  	depends on NF_FLOW_TABLE |  	depends on NF_FLOW_TABLE | ||||||
| @@ -693,11 +691,12 @@ config NF_FLOW_TABLE_INET | @@ -718,11 +716,12 @@ config NF_FLOW_TABLE_INET | ||||||
|   |   | ||||||
|  	  To compile it as a module, choose M here. |  	  To compile it as a module, choose M here. | ||||||
|   |   | ||||||
| @@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	help |  	help | ||||||
|  	  This option adds the flow table core infrastructure. |  	  This option adds the flow table core infrastructure. | ||||||
|   |   | ||||||
| @@ -977,6 +976,15 @@ config NETFILTER_XT_TARGET_NOTRACK | @@ -1011,6 +1010,15 @@ config NETFILTER_XT_TARGET_NOTRACK | ||||||
|  	depends on NETFILTER_ADVANCED |  	depends on NETFILTER_ADVANCED | ||||||
|  	select NETFILTER_XT_TARGET_CT |  	select NETFILTER_XT_TARGET_CT | ||||||
|   |   | ||||||
| @@ -88,7 +88,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	depends on NETFILTER_ADVANCED |  	depends on NETFILTER_ADVANCED | ||||||
| --- a/net/netfilter/Makefile | --- a/net/netfilter/Makefile | ||||||
| +++ b/net/netfilter/Makefile | +++ b/net/netfilter/Makefile | ||||||
| @@ -145,6 +145,7 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_CLASSIF | @@ -143,6 +143,7 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_CLASSIF | ||||||
|  obj-$(CONFIG_NETFILTER_XT_TARGET_CONNSECMARK) += xt_CONNSECMARK.o |  obj-$(CONFIG_NETFILTER_XT_TARGET_CONNSECMARK) += xt_CONNSECMARK.o | ||||||
|  obj-$(CONFIG_NETFILTER_XT_TARGET_CT) += xt_CT.o |  obj-$(CONFIG_NETFILTER_XT_TARGET_CT) += xt_CT.o | ||||||
|  obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o |  obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o | ||||||
| @@ -766,7 +766,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  #include <net/netfilter/nf_flow_table.h> |  #include <net/netfilter/nf_flow_table.h> | ||||||
|  #include <net/netfilter/nf_conntrack.h> |  #include <net/netfilter/nf_conntrack.h> | ||||||
|  #include <net/netfilter/nf_conntrack_core.h> |  #include <net/netfilter/nf_conntrack_core.h> | ||||||
| @@ -395,8 +394,7 @@ flow_offload_lookup(struct nf_flowtable | @@ -397,8 +396,7 @@ flow_offload_lookup(struct nf_flowtable | ||||||
|  } |  } | ||||||
|  EXPORT_SYMBOL_GPL(flow_offload_lookup); |  EXPORT_SYMBOL_GPL(flow_offload_lookup); | ||||||
|   |   | ||||||
| @@ -776,7 +776,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  		      void (*iter)(struct flow_offload *flow, void *data), |  		      void (*iter)(struct flow_offload *flow, void *data), | ||||||
|  		      void *data) |  		      void *data) | ||||||
|  { |  { | ||||||
| @@ -428,6 +426,7 @@ nf_flow_table_iterate(struct nf_flowtabl | @@ -430,6 +428,7 @@ nf_flow_table_iterate(struct nf_flowtabl | ||||||
|   |   | ||||||
|  	return err; |  	return err; | ||||||
|  } |  } | ||||||
| @@ -806,7 +806,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
| +#endif /* _XT_FLOWOFFLOAD_H */ | +#endif /* _XT_FLOWOFFLOAD_H */ | ||||||
| --- a/include/net/netfilter/nf_flow_table.h | --- a/include/net/netfilter/nf_flow_table.h | ||||||
| +++ b/include/net/netfilter/nf_flow_table.h | +++ b/include/net/netfilter/nf_flow_table.h | ||||||
| @@ -270,6 +270,10 @@ void nf_flow_table_free(struct nf_flowta | @@ -273,6 +273,10 @@ void nf_flow_table_free(struct nf_flowta | ||||||
|   |   | ||||||
|  void flow_offload_teardown(struct flow_offload *flow); |  void flow_offload_teardown(struct flow_offload *flow); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org> | |||||||
|  |  | ||||||
| --- a/include/linux/netdevice.h | --- a/include/linux/netdevice.h | ||||||
| +++ b/include/linux/netdevice.h | +++ b/include/linux/netdevice.h | ||||||
| @@ -144,8 +144,8 @@ static inline bool dev_xmit_complete(int | @@ -145,8 +145,8 @@ static inline bool dev_xmit_complete(int | ||||||
|   |   | ||||||
|  #if defined(CONFIG_HYPERV_NET) |  #if defined(CONFIG_HYPERV_NET) | ||||||
|  # define LL_MAX_HEADER 128 |  # define LL_MAX_HEADER 128 | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  |  | ||||||
| --- a/net/sched/sch_fq_codel.c | --- a/net/sched/sch_fq_codel.c | ||||||
| +++ b/net/sched/sch_fq_codel.c | +++ b/net/sched/sch_fq_codel.c | ||||||
| @@ -461,7 +461,11 @@ static int fq_codel_init(struct Qdisc *s | @@ -469,7 +469,11 @@ static int fq_codel_init(struct Qdisc *s | ||||||
|   |   | ||||||
|  	sch->limit = 10*1024; |  	sch->limit = 10*1024; | ||||||
|  	q->flows_cnt = 1024; |  	q->flows_cnt = 1024; | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| --- a/drivers/net/dsa/mv88e6xxx/chip.c | --- a/drivers/net/dsa/mv88e6xxx/chip.c | ||||||
| +++ b/drivers/net/dsa/mv88e6xxx/chip.c | +++ b/drivers/net/dsa/mv88e6xxx/chip.c | ||||||
| @@ -2088,6 +2088,7 @@ static int mv88e6xxx_port_fdb_add(struct | @@ -2321,6 +2321,7 @@ static int mv88e6xxx_port_fdb_add(struct | ||||||
|  	struct mv88e6xxx_chip *chip = ds->priv; |  	struct mv88e6xxx_chip *chip = ds->priv; | ||||||
|  	int err; |  	int err; | ||||||
|   |   | ||||||
| @@ -8,7 +8,7 @@ | |||||||
|  	mv88e6xxx_reg_lock(chip); |  	mv88e6xxx_reg_lock(chip); | ||||||
|  	err = mv88e6xxx_port_db_load_purge(chip, port, addr, vid, |  	err = mv88e6xxx_port_db_load_purge(chip, port, addr, vid, | ||||||
|  					   MV88E6XXX_G1_ATU_DATA_STATE_UC_STATIC); |  					   MV88E6XXX_G1_ATU_DATA_STATE_UC_STATIC); | ||||||
| @@ -2102,6 +2103,7 @@ static int mv88e6xxx_port_fdb_del(struct | @@ -2335,6 +2336,7 @@ static int mv88e6xxx_port_fdb_del(struct | ||||||
|  	struct mv88e6xxx_chip *chip = ds->priv; |  	struct mv88e6xxx_chip *chip = ds->priv; | ||||||
|  	int err; |  	int err; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| --- a/drivers/net/dsa/mv88e6xxx/chip.c | --- a/drivers/net/dsa/mv88e6xxx/chip.c | ||||||
| +++ b/drivers/net/dsa/mv88e6xxx/chip.c | +++ b/drivers/net/dsa/mv88e6xxx/chip.c | ||||||
| @@ -2650,6 +2650,9 @@ static int mv88e6xxx_setup_port(struct m | @@ -2983,6 +2983,9 @@ static int mv88e6xxx_setup_port(struct m | ||||||
|  	if (dsa_is_cpu_port(ds, port)) |  	else | ||||||
|  		reg = 0; |  		reg = 1 << port; | ||||||
|   |   | ||||||
| +	/* Disable ATU member violation interrupt */ | +	/* Disable ATU member violation interrupt */ | ||||||
| +	reg |= MV88E6XXX_PORT_ASSOC_VECTOR_IGNORE_WRONG; | +	reg |= MV88E6XXX_PORT_ASSOC_VECTOR_IGNORE_WRONG; | ||||||
|   | |||||||
| @@ -20,7 +20,7 @@ Signed-off-by: Birger Koblitz <git@birger-koblitz.de> | |||||||
|   |   | ||||||
|  #define MDIO_PHYXS_VEND_IF_STATUS		0xe812 |  #define MDIO_PHYXS_VEND_IF_STATUS		0xe812 | ||||||
|  #define MDIO_PHYXS_VEND_IF_STATUS_TYPE_MASK	GENMASK(7, 3) |  #define MDIO_PHYXS_VEND_IF_STATUS_TYPE_MASK	GENMASK(7, 3) | ||||||
| @@ -330,6 +332,49 @@ static int aqr107_read_rate(struct phy_d | @@ -359,6 +361,49 @@ static int aqr107_read_rate(struct phy_d | ||||||
|  	return 0; |  	return 0; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -70,7 +70,7 @@ Signed-off-by: Birger Koblitz <git@birger-koblitz.de> | |||||||
|  static int aqr107_read_status(struct phy_device *phydev) |  static int aqr107_read_status(struct phy_device *phydev) | ||||||
|  { |  { | ||||||
|  	int val, ret; |  	int val, ret; | ||||||
| @@ -460,7 +505,7 @@ static void aqr107_chip_info(struct phy_ | @@ -489,7 +534,7 @@ static void aqr107_chip_info(struct phy_ | ||||||
|  	build_id = FIELD_GET(VEND1_GLOBAL_RSVD_STAT1_FW_BUILD_ID, val); |  	build_id = FIELD_GET(VEND1_GLOBAL_RSVD_STAT1_FW_BUILD_ID, val); | ||||||
|  	prov_id = FIELD_GET(VEND1_GLOBAL_RSVD_STAT1_PROV_ID, val); |  	prov_id = FIELD_GET(VEND1_GLOBAL_RSVD_STAT1_PROV_ID, val); | ||||||
|   |   | ||||||
| @@ -79,7 +79,7 @@ Signed-off-by: Birger Koblitz <git@birger-koblitz.de> | |||||||
|  		   fw_major, fw_minor, build_id, prov_id); |  		   fw_major, fw_minor, build_id, prov_id); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -632,6 +677,24 @@ static struct phy_driver aqr_driver[] = | @@ -661,6 +706,24 @@ static struct phy_driver aqr_driver[] = | ||||||
|  	.link_change_notify = aqr107_link_change_notify, |  	.link_change_notify = aqr107_link_change_notify, | ||||||
|  }, |  }, | ||||||
|  { |  { | ||||||
| @@ -104,8 +104,8 @@ Signed-off-by: Birger Koblitz <git@birger-koblitz.de> | |||||||
|  	PHY_ID_MATCH_MODEL(PHY_ID_AQCS109), |  	PHY_ID_MATCH_MODEL(PHY_ID_AQCS109), | ||||||
|  	.name		= "Aquantia AQCS109", |  	.name		= "Aquantia AQCS109", | ||||||
|  	.probe		= aqr107_probe, |  	.probe		= aqr107_probe, | ||||||
| @@ -657,6 +720,24 @@ static struct phy_driver aqr_driver[] = | @@ -686,6 +749,24 @@ static struct phy_driver aqr_driver[] = | ||||||
|  	.ack_interrupt	= aqr_ack_interrupt, |  	.handle_interrupt = aqr_handle_interrupt, | ||||||
|  	.read_status	= aqr_read_status, |  	.read_status	= aqr_read_status, | ||||||
|  }, |  }, | ||||||
| +{ | +{ | ||||||
| @@ -129,7 +129,7 @@ Signed-off-by: Birger Koblitz <git@birger-koblitz.de> | |||||||
|  }; |  }; | ||||||
|   |   | ||||||
|  module_phy_driver(aqr_driver); |  module_phy_driver(aqr_driver); | ||||||
| @@ -667,8 +748,10 @@ static struct mdio_device_id __maybe_unu | @@ -696,8 +777,10 @@ static struct mdio_device_id __maybe_unu | ||||||
|  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR105) }, |  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR105) }, | ||||||
|  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR106) }, |  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR106) }, | ||||||
|  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR107) }, |  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR107) }, | ||||||
|   | |||||||
| @@ -19,18 +19,18 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  |  | ||||||
| --- a/include/linux/netdevice.h | --- a/include/linux/netdevice.h | ||||||
| +++ b/include/linux/netdevice.h | +++ b/include/linux/netdevice.h | ||||||
| @@ -1618,6 +1618,10 @@ enum netdev_priv_flags { | @@ -1648,6 +1648,10 @@ enum netdev_priv_flags { | ||||||
|  	IFF_LIVE_RENAME_OK		= 1<<30, |  | ||||||
|  	IFF_TX_SKB_NO_LINEAR		= 1<<31, |  	IFF_TX_SKB_NO_LINEAR		= 1<<31, | ||||||
|  }; |  }; | ||||||
| + |   | ||||||
| +enum netdev_extra_priv_flags { | +enum netdev_extra_priv_flags { | ||||||
| +	IFF_NO_IP_ALIGN			= 1<<0, | +	IFF_NO_IP_ALIGN			= 1<<0, | ||||||
| +}; | +}; | ||||||
|   | + | ||||||
|  #define IFF_802_1Q_VLAN			IFF_802_1Q_VLAN |  #define IFF_802_1Q_VLAN			IFF_802_1Q_VLAN | ||||||
|  #define IFF_EBRIDGE			IFF_EBRIDGE |  #define IFF_EBRIDGE			IFF_EBRIDGE | ||||||
| @@ -1650,6 +1651,7 @@ enum netdev_priv_flags { |  #define IFF_BONDING			IFF_BONDING | ||||||
|  | @@ -1680,6 +1684,7 @@ enum netdev_priv_flags { | ||||||
|  #define IFF_L3MDEV_RX_HANDLER		IFF_L3MDEV_RX_HANDLER |  #define IFF_L3MDEV_RX_HANDLER		IFF_L3MDEV_RX_HANDLER | ||||||
|  #define IFF_LIVE_RENAME_OK		IFF_LIVE_RENAME_OK |  #define IFF_LIVE_RENAME_OK		IFF_LIVE_RENAME_OK | ||||||
|  #define IFF_TX_SKB_NO_LINEAR		IFF_TX_SKB_NO_LINEAR |  #define IFF_TX_SKB_NO_LINEAR		IFF_TX_SKB_NO_LINEAR | ||||||
| @@ -38,15 +38,15 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|   |   | ||||||
|  /* Specifies the type of the struct net_device::ml_priv pointer */ |  /* Specifies the type of the struct net_device::ml_priv pointer */ | ||||||
|  enum netdev_ml_priv_type { |  enum netdev_ml_priv_type { | ||||||
| @@ -1987,6 +1987,7 @@ enum netdev_priv_flags { | @@ -1981,6 +1986,7 @@ struct net_device { | ||||||
|  /* Read-mostly cache-line for fast-path access */ |  	/* Read-mostly cache-line for fast-path access */ | ||||||
|  	unsigned int		flags; |  	unsigned int		flags; | ||||||
|  	unsigned int		priv_flags; |  	unsigned int		priv_flags; | ||||||
| +	unsigned int		extra_priv_flags; | +	unsigned int		extra_priv_flags; | ||||||
|  	const struct net_device_ops *netdev_ops; |  	const struct net_device_ops *netdev_ops; | ||||||
|  	int			ifindex; |  	int			ifindex; | ||||||
|  	unsigned short		gflags; |  	unsigned short		gflags; | ||||||
| @@ -1990,6 +1992,11 @@ struct net_device { | @@ -2041,6 +2047,11 @@ struct net_device { | ||||||
|  	const struct tlsdev_ops *tlsdev_ops; |  	const struct tlsdev_ops *tlsdev_ops; | ||||||
|  #endif |  #endif | ||||||
|   |   | ||||||
| @@ -57,9 +57,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
| + | + | ||||||
|  	const struct header_ops *header_ops; |  	const struct header_ops *header_ops; | ||||||
|   |   | ||||||
|  	unsigned int		flags; |  	unsigned char		operstate; | ||||||
| @@ -2080,6 +2087,10 @@ struct net_device { | @@ -2115,6 +2126,10 @@ struct net_device { | ||||||
|  	struct mpls_dev __rcu	*mpls_ptr; |  	struct mctp_dev __rcu	*mctp_ptr; | ||||||
|  #endif |  #endif | ||||||
|   |   | ||||||
| +#ifdef CONFIG_ETHERNET_PACKET_MANGLE | +#ifdef CONFIG_ETHERNET_PACKET_MANGLE | ||||||
| @@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|   */ |   */ | ||||||
| --- a/include/linux/skbuff.h | --- a/include/linux/skbuff.h | ||||||
| +++ b/include/linux/skbuff.h | +++ b/include/linux/skbuff.h | ||||||
| @@ -2710,6 +2710,10 @@ static inline int pskb_trim(struct sk_bu | @@ -2761,6 +2761,10 @@ static inline int pskb_trim(struct sk_bu | ||||||
|  	return (len < skb->len) ? __pskb_trim(skb, len) : 0; |  	return (len < skb->len) ? __pskb_trim(skb, len) : 0; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -82,7 +82,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  /** |  /** | ||||||
|   *	pskb_trim_unique - remove end from a paged unique (not cloned) buffer |   *	pskb_trim_unique - remove end from a paged unique (not cloned) buffer | ||||||
|   *	@skb: buffer to alter |   *	@skb: buffer to alter | ||||||
| @@ -2841,16 +2845,6 @@ static inline struct sk_buff *dev_alloc_ | @@ -2911,16 +2915,6 @@ static inline struct sk_buff *dev_alloc_ | ||||||
|  } |  } | ||||||
|   |   | ||||||
|   |   | ||||||
| @@ -116,7 +116,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	help |  	help | ||||||
| --- a/net/core/dev.c | --- a/net/core/dev.c | ||||||
| +++ b/net/core/dev.c | +++ b/net/core/dev.c | ||||||
| @@ -3646,6 +3646,11 @@ static int xmit_one(struct sk_buff *skb, | @@ -3578,6 +3578,11 @@ static int xmit_one(struct sk_buff *skb, | ||||||
|  	if (dev_nit_active(dev)) |  	if (dev_nit_active(dev)) | ||||||
|  		dev_queue_xmit_nit(skb, dev); |  		dev_queue_xmit_nit(skb, dev); | ||||||
|   |   | ||||||
| @@ -130,7 +130,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	trace_net_dev_start_xmit(skb, dev); |  	trace_net_dev_start_xmit(skb, dev); | ||||||
| --- a/net/core/skbuff.c | --- a/net/core/skbuff.c | ||||||
| +++ b/net/core/skbuff.c | +++ b/net/core/skbuff.c | ||||||
| @@ -60,6 +60,7 @@ | @@ -61,6 +61,7 @@ | ||||||
|  #include <linux/if_vlan.h> |  #include <linux/if_vlan.h> | ||||||
|  #include <linux/mpls.h> |  #include <linux/mpls.h> | ||||||
|  #include <linux/kcov.h> |  #include <linux/kcov.h> | ||||||
| @@ -138,7 +138,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|   |   | ||||||
|  #include <net/protocol.h> |  #include <net/protocol.h> | ||||||
|  #include <net/dst.h> |  #include <net/dst.h> | ||||||
| @@ -553,6 +554,22 @@ skb_fail: | @@ -602,6 +603,22 @@ skb_fail: | ||||||
|  } |  } | ||||||
|  EXPORT_SYMBOL(__napi_alloc_skb); |  EXPORT_SYMBOL(__napi_alloc_skb); | ||||||
|   |   | ||||||
| @@ -163,7 +163,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  { |  { | ||||||
| --- a/net/ethernet/eth.c | --- a/net/ethernet/eth.c | ||||||
| +++ b/net/ethernet/eth.c | +++ b/net/ethernet/eth.c | ||||||
| @@ -171,6 +171,12 @@ __be16 eth_type_trans(struct sk_buff *sk | @@ -170,6 +170,12 @@ __be16 eth_type_trans(struct sk_buff *sk | ||||||
|  	const struct ethhdr *eth; |  	const struct ethhdr *eth; | ||||||
|   |   | ||||||
|  	skb->dev = dev; |  	skb->dev = dev; | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com> | |||||||
|  #define PHY_ID_AQR813	0x31c31cb2 |  #define PHY_ID_AQR813	0x31c31cb2 | ||||||
|   |   | ||||||
|  #define MDIO_PHYXS_VEND_IF_STATUS		0xe812 |  #define MDIO_PHYXS_VEND_IF_STATUS		0xe812 | ||||||
| @@ -123,6 +125,29 @@ | @@ -124,6 +126,29 @@ | ||||||
|  #define VEND1_GLOBAL_INT_VEND_MASK_GLOBAL2	BIT(1) |  #define VEND1_GLOBAL_INT_VEND_MASK_GLOBAL2	BIT(1) | ||||||
|  #define VEND1_GLOBAL_INT_VEND_MASK_GLOBAL3	BIT(0) |  #define VEND1_GLOBAL_INT_VEND_MASK_GLOBAL3	BIT(0) | ||||||
|   |   | ||||||
| @@ -57,7 +57,7 @@ Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com> | |||||||
|  struct aqr107_hw_stat { |  struct aqr107_hw_stat { | ||||||
|  	const char *name; |  	const char *name; | ||||||
|  	int reg; |  	int reg; | ||||||
| @@ -243,6 +268,51 @@ static int aqr_config_aneg(struct phy_de | @@ -244,6 +269,51 @@ static int aqr_config_aneg(struct phy_de | ||||||
|  	return genphy_c45_check_and_restart_aneg(phydev, changed); |  	return genphy_c45_check_and_restart_aneg(phydev, changed); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -109,7 +109,7 @@ Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com> | |||||||
|  static int aqr_config_intr(struct phy_device *phydev) |  static int aqr_config_intr(struct phy_device *phydev) | ||||||
|  { |  { | ||||||
|  	bool en = phydev->interrupts == PHY_INTERRUPT_ENABLED; |  	bool en = phydev->interrupts == PHY_INTERRUPT_ENABLED; | ||||||
| @@ -738,6 +808,30 @@ static struct phy_driver aqr_driver[] = | @@ -767,6 +837,30 @@ static struct phy_driver aqr_driver[] = | ||||||
|  	.get_stats	= aqr107_get_stats, |  	.get_stats	= aqr107_get_stats, | ||||||
|  	.link_change_notify = aqr107_link_change_notify, |  	.link_change_notify = aqr107_link_change_notify, | ||||||
|  }, |  }, | ||||||
| @@ -140,7 +140,7 @@ Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com> | |||||||
|  }; |  }; | ||||||
|   |   | ||||||
|  module_phy_driver(aqr_driver); |  module_phy_driver(aqr_driver); | ||||||
| @@ -748,9 +842,11 @@ static struct mdio_device_id __maybe_unu | @@ -777,9 +871,11 @@ static struct mdio_device_id __maybe_unu | ||||||
|  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR105) }, |  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR105) }, | ||||||
|  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR106) }, |  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR106) }, | ||||||
|  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR107) }, |  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR107) }, | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com> | |||||||
|  |  | ||||||
| --- a/drivers/net/phy/aquantia_main.c | --- a/drivers/net/phy/aquantia_main.c | ||||||
| +++ b/drivers/net/phy/aquantia_main.c | +++ b/drivers/net/phy/aquantia_main.c | ||||||
| @@ -301,10 +301,16 @@ static int aqr_config_aneg_set_prot(stru | @@ -302,10 +302,16 @@ static int aqr_config_aneg_set_prot(stru | ||||||
|  	phy_write_mmd(phydev, MDIO_MMD_VEND1, AQUANTIA_VND1_GSTART_RATE, |  	phy_write_mmd(phydev, MDIO_MMD_VEND1, AQUANTIA_VND1_GSTART_RATE, | ||||||
|  		      aquantia_syscfg[if_type].start_rate); |  		      aquantia_syscfg[if_type].start_rate); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ Add a new entry for AQR113 PHY_ID | |||||||
|  #define PHY_ID_AQR113C	0x31c31c12 |  #define PHY_ID_AQR113C	0x31c31c12 | ||||||
|  #define PHY_ID_AQCS109	0x03a1b5c2 |  #define PHY_ID_AQCS109	0x03a1b5c2 | ||||||
|  #define PHY_ID_AQR405	0x03a1b4b0 |  #define PHY_ID_AQR405	0x03a1b4b0 | ||||||
| @@ -827,6 +828,14 @@ static struct phy_driver aqr_driver[] = | @@ -856,6 +857,14 @@ static struct phy_driver aqr_driver[] = | ||||||
|  	.get_stats	= aqr107_get_stats, |  	.get_stats	= aqr107_get_stats, | ||||||
|  }, |  }, | ||||||
|  { |  { | ||||||
| @@ -33,7 +33,7 @@ Add a new entry for AQR113 PHY_ID | |||||||
|  	PHY_ID_MATCH_MODEL(PHY_ID_AQR412), |  	PHY_ID_MATCH_MODEL(PHY_ID_AQR412), | ||||||
|  	.name		= "Aquantia AQR412", |  	.name		= "Aquantia AQR412", | ||||||
|  	.probe		= aqr107_probe, |  	.probe		= aqr107_probe, | ||||||
| @@ -849,6 +858,7 @@ static struct mdio_device_id __maybe_unu | @@ -878,6 +887,7 @@ static struct mdio_device_id __maybe_unu | ||||||
|  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR106) }, |  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR106) }, | ||||||
|  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR107) }, |  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR107) }, | ||||||
|  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR112) }, |  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR112) }, | ||||||
|   | |||||||
| @@ -21,7 +21,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> | |||||||
|  #define PHY_ID_AQR113	0x31c31c40 |  #define PHY_ID_AQR113	0x31c31c40 | ||||||
|  #define PHY_ID_AQR113C	0x31c31c12 |  #define PHY_ID_AQR113C	0x31c31c12 | ||||||
|  #define PHY_ID_AQCS109	0x03a1b5c2 |  #define PHY_ID_AQCS109	0x03a1b5c2 | ||||||
| @@ -828,6 +830,30 @@ static struct phy_driver aqr_driver[] = | @@ -857,6 +859,30 @@ static struct phy_driver aqr_driver[] = | ||||||
|  	.get_stats	= aqr107_get_stats, |  	.get_stats	= aqr107_get_stats, | ||||||
|  }, |  }, | ||||||
|  { |  { | ||||||
| @@ -52,7 +52,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org> | |||||||
|  	PHY_ID_MATCH_MODEL(PHY_ID_AQR113), |  	PHY_ID_MATCH_MODEL(PHY_ID_AQR113), | ||||||
|  	.name		= "Aquantia AQR113", |  	.name		= "Aquantia AQR113", | ||||||
|  	.config_aneg	= aqr_config_aneg, |  	.config_aneg	= aqr_config_aneg, | ||||||
| @@ -858,6 +884,8 @@ static struct mdio_device_id __maybe_unu | @@ -887,6 +913,8 @@ static struct mdio_device_id __maybe_unu | ||||||
|  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR106) }, |  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR106) }, | ||||||
|  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR107) }, |  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR107) }, | ||||||
|  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR112) }, |  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR112) }, | ||||||
|   | |||||||
| @@ -22,7 +22,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net> | |||||||
|  #include <linux/crc32.h> |  #include <linux/crc32.h> | ||||||
|  #include <linux/if_vlan.h> |  #include <linux/if_vlan.h> | ||||||
|  #include <linux/uaccess.h> |  #include <linux/uaccess.h> | ||||||
| @@ -5301,6 +5302,22 @@ static void rtl_tally_reset(struct r8152 | @@ -6852,6 +6853,22 @@ static void rtl_tally_reset(struct r8152 | ||||||
|  	ocp_write_word(tp, MCU_TYPE_PLA, PLA_RSTTALLY, ocp_data); |  	ocp_write_word(tp, MCU_TYPE_PLA, PLA_RSTTALLY, ocp_data); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @@ -45,7 +45,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net> | |||||||
|  static void r8152b_init(struct r8152 *tp) |  static void r8152b_init(struct r8152 *tp) | ||||||
|  { |  { | ||||||
|  	u32 ocp_data; |  	u32 ocp_data; | ||||||
| @@ -5342,6 +5359,8 @@ static void r8152b_init(struct r8152 *tp | @@ -6893,6 +6910,8 @@ static void r8152b_init(struct r8152 *tp | ||||||
|  	ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL); |  	ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL); | ||||||
|  	ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN); |  	ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN); | ||||||
|  	ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data); |  	ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data); | ||||||
| @@ -54,7 +54,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net> | |||||||
|  } |  } | ||||||
|   |   | ||||||
|  static void r8153_init(struct r8152 *tp) |  static void r8153_init(struct r8152 *tp) | ||||||
| @@ -5487,6 +5506,8 @@ static void r8153_init(struct r8152 *tp) | @@ -7033,6 +7052,8 @@ static void r8153_init(struct r8152 *tp) | ||||||
|  		tp->coalesce = COALESCE_SLOW; |  		tp->coalesce = COALESCE_SLOW; | ||||||
|  		break; |  		break; | ||||||
|  	} |  	} | ||||||
| @@ -63,7 +63,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net> | |||||||
|  } |  } | ||||||
|   |   | ||||||
|  static void r8153b_init(struct r8152 *tp) |  static void r8153b_init(struct r8152 *tp) | ||||||
| @@ -5573,6 +5594,8 @@ static void r8153b_init(struct r8152 *tp | @@ -7115,6 +7136,8 @@ static void r8153b_init(struct r8152 *tp | ||||||
|  	rtl_tally_reset(tp); |  	rtl_tally_reset(tp); | ||||||
|   |   | ||||||
|  	tp->coalesce = 15000;	/* 15 us */ |  	tp->coalesce = 15000;	/* 15 us */ | ||||||
| @@ -71,4 +71,4 @@ Signed-off-by: David Bauer <mail@david-bauer.net> | |||||||
| +	r8152_led_configuration(tp); | +	r8152_led_configuration(tp); | ||||||
|  } |  } | ||||||
|   |   | ||||||
|  static int rtl8152_pre_reset(struct usb_interface *intf) |  static void r8153c_init(struct r8152 *tp) | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> | |||||||
|  |  | ||||||
| --- a/drivers/net/ethernet/broadcom/bgmac-bcma.c | --- a/drivers/net/ethernet/broadcom/bgmac-bcma.c | ||||||
| +++ b/drivers/net/ethernet/broadcom/bgmac-bcma.c | +++ b/drivers/net/ethernet/broadcom/bgmac-bcma.c | ||||||
| @@ -266,6 +266,7 @@ static int bgmac_probe(struct bcma_devic | @@ -280,6 +280,7 @@ static int bgmac_probe(struct bcma_devic | ||||||
|  		bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST; |  		bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST; | ||||||
|  		bgmac->feature_flags |= BGMAC_FEAT_NO_RESET; |  		bgmac->feature_flags |= BGMAC_FEAT_NO_RESET; | ||||||
|  		bgmac->feature_flags |= BGMAC_FEAT_FORCE_SPEED_2500; |  		bgmac->feature_flags |= BGMAC_FEAT_FORCE_SPEED_2500; | ||||||
| @@ -78,7 +78,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> | |||||||
|  	netif_napi_del(&bgmac->napi); |  	netif_napi_del(&bgmac->napi); | ||||||
| --- a/drivers/net/ethernet/broadcom/bgmac.h | --- a/drivers/net/ethernet/broadcom/bgmac.h | ||||||
| +++ b/drivers/net/ethernet/broadcom/bgmac.h | +++ b/drivers/net/ethernet/broadcom/bgmac.h | ||||||
| @@ -428,6 +428,7 @@ | @@ -390,6 +390,7 @@ | ||||||
|  #define BGMAC_FEAT_CC4_IF_SW_TYPE_RGMII	BIT(18) |  #define BGMAC_FEAT_CC4_IF_SW_TYPE_RGMII	BIT(18) | ||||||
|  #define BGMAC_FEAT_CC7_IF_TYPE_RGMII	BIT(19) |  #define BGMAC_FEAT_CC7_IF_TYPE_RGMII	BIT(19) | ||||||
|  #define BGMAC_FEAT_IDM_MASK		BIT(20) |  #define BGMAC_FEAT_IDM_MASK		BIT(20) | ||||||
| @@ -86,7 +86,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> | |||||||
|   |   | ||||||
|  struct bgmac_slot_info { |  struct bgmac_slot_info { | ||||||
|  	union { |  	union { | ||||||
| @@ -533,6 +534,9 @@ struct bgmac { | @@ -495,6 +496,9 @@ struct bgmac { | ||||||
|  	void (*cmn_maskset32)(struct bgmac *bgmac, u16 offset, u32 mask, |  	void (*cmn_maskset32)(struct bgmac *bgmac, u16 offset, u32 mask, | ||||||
|  			      u32 set); |  			      u32 set); | ||||||
|  	int (*phy_connect)(struct bgmac *bgmac); |  	int (*phy_connect)(struct bgmac *bgmac); | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| --- a/drivers/net/usb/qmi_wwan.c | --- a/drivers/net/usb/qmi_wwan.c | ||||||
| +++ b/drivers/net/usb/qmi_wwan.c | +++ b/drivers/net/usb/qmi_wwan.c | ||||||
| @@ -1024,6 +1024,7 @@ static const struct usb_device_id produc | @@ -1085,6 +1085,7 @@ static const struct usb_device_id produc | ||||||
|  	{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0512)},	/* Quectel EG12/EM12 */ |  	{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0512)},	/* Quectel EG12/EM12 */ | ||||||
|  	{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0620)},	/* Quectel EM160R-GL */ |  	{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0620)},	/* Quectel EM160R-GL */ | ||||||
|  	{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0800)},	/* Quectel RM500Q-GL */ |  	{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0800)},	/* Quectel RM500Q-GL */ | ||||||
|   | |||||||
| @@ -15,9 +15,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org> | |||||||
|   |   | ||||||
|  #include "gpiolib.h" |  #include "gpiolib.h" | ||||||
|  #include "gpiolib-of.h" |  #include "gpiolib-of.h" | ||||||
| @@ -1039,3 +1041,72 @@ void of_gpiochip_remove(struct gpio_chip | @@ -1052,3 +1054,72 @@ void of_gpio_dev_init(struct gpio_chip * | ||||||
|  { |  	else | ||||||
|  	of_node_put(chip->of_node); |  		gc->of_node = gdev->dev.of_node; | ||||||
|  } |  } | ||||||
| + | + | ||||||
| +#ifdef CONFIG_GPIO_SYSFS | +#ifdef CONFIG_GPIO_SYSFS | ||||||
| @@ -129,7 +129,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> | |||||||
|  { |  { | ||||||
| --- a/drivers/gpio/gpiolib-sysfs.c | --- a/drivers/gpio/gpiolib-sysfs.c | ||||||
| +++ b/drivers/gpio/gpiolib-sysfs.c | +++ b/drivers/gpio/gpiolib-sysfs.c | ||||||
| @@ -572,7 +572,7 @@ static struct class gpio_class = { | @@ -561,7 +561,7 @@ static struct class gpio_class = { | ||||||
|   * |   * | ||||||
|   * Returns zero on success, else an error. |   * Returns zero on success, else an error. | ||||||
|   */ |   */ | ||||||
| @@ -138,7 +138,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> | |||||||
|  { |  { | ||||||
|  	struct gpio_chip	*chip; |  	struct gpio_chip	*chip; | ||||||
|  	struct gpio_device	*gdev; |  	struct gpio_device	*gdev; | ||||||
| @@ -634,6 +634,8 @@ int gpiod_export(struct gpio_desc *desc, | @@ -623,6 +623,8 @@ int gpiod_export(struct gpio_desc *desc, | ||||||
|  	offset = gpio_chip_hwgpio(desc); |  	offset = gpio_chip_hwgpio(desc); | ||||||
|  	if (chip->names && chip->names[offset]) |  	if (chip->names && chip->names[offset]) | ||||||
|  		ioname = chip->names[offset]; |  		ioname = chip->names[offset]; | ||||||
| @@ -147,7 +147,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> | |||||||
|   |   | ||||||
|  	dev = device_create_with_groups(&gpio_class, &gdev->dev, |  	dev = device_create_with_groups(&gpio_class, &gdev->dev, | ||||||
|  					MKDEV(0, 0), data, gpio_groups, |  					MKDEV(0, 0), data, gpio_groups, | ||||||
| @@ -655,6 +657,12 @@ err_unlock: | @@ -644,6 +646,12 @@ err_unlock: | ||||||
|  	gpiod_dbg(desc, "%s: status %d\n", __func__, status); |  	gpiod_dbg(desc, "%s: status %d\n", __func__, status); | ||||||
|  	return status; |  	return status; | ||||||
|  } |  } | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  |  | ||||||
| --- a/net/Kconfig | --- a/net/Kconfig | ||||||
| +++ b/net/Kconfig | +++ b/net/Kconfig | ||||||
| @@ -98,6 +98,9 @@ source "net/mptcp/Kconfig" | @@ -104,6 +104,9 @@ source "net/mptcp/Kconfig" | ||||||
|   |   | ||||||
|  endif # if INET |  endif # if INET | ||||||
|   |   | ||||||
| @@ -50,7 +50,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|   |   | ||||||
|  #include <linux/uaccess.h> |  #include <linux/uaccess.h> | ||||||
|   |   | ||||||
| @@ -141,6 +142,7 @@ | @@ -143,6 +144,7 @@ | ||||||
|   |   | ||||||
|  static DEFINE_MUTEX(proto_list_mutex); |  static DEFINE_MUTEX(proto_list_mutex); | ||||||
|  static LIST_HEAD(proto_list); |  static LIST_HEAD(proto_list); | ||||||
| @@ -58,7 +58,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|   |   | ||||||
|  static void sock_inuse_add(struct net *net, int val); |  static void sock_inuse_add(struct net *net, int val); | ||||||
|   |   | ||||||
| @@ -526,6 +528,18 @@ discard_and_relse: | @@ -545,6 +547,18 @@ discard_and_relse: | ||||||
|  } |  } | ||||||
|  EXPORT_SYMBOL(__sk_receive_skb); |  EXPORT_SYMBOL(__sk_receive_skb); | ||||||
|   |   | ||||||
| @@ -77,7 +77,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  INDIRECT_CALLABLE_DECLARE(struct dst_entry *ip6_dst_check(struct dst_entry *, |  INDIRECT_CALLABLE_DECLARE(struct dst_entry *ip6_dst_check(struct dst_entry *, | ||||||
|  							  u32)); |  							  u32)); | ||||||
|  INDIRECT_CALLABLE_DECLARE(struct dst_entry *ipv4_dst_check(struct dst_entry *, |  INDIRECT_CALLABLE_DECLARE(struct dst_entry *ipv4_dst_check(struct dst_entry *, | ||||||
| @@ -1816,9 +1830,11 @@ static void __sk_free(struct sock *sk) | @@ -1983,9 +1997,11 @@ static void __sk_free(struct sock *sk) | ||||||
|  	if (likely(sk->sk_net_refcnt)) |  	if (likely(sk->sk_net_refcnt)) | ||||||
|  		sock_inuse_add(sock_net(sk), -1); |  		sock_inuse_add(sock_net(sk), -1); | ||||||
|   |   | ||||||
| @@ -152,7 +152,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	  Support for PF_PACKET sockets monitoring interface used by the ss tool. |  	  Support for PF_PACKET sockets monitoring interface used by the ss tool. | ||||||
| --- a/net/unix/Kconfig | --- a/net/unix/Kconfig | ||||||
| +++ b/net/unix/Kconfig | +++ b/net/unix/Kconfig | ||||||
| @@ -28,6 +28,7 @@ config UNIX_SCM | @@ -33,6 +33,7 @@ config	AF_UNIX_OOB | ||||||
|  config UNIX_DIAG |  config UNIX_DIAG | ||||||
|  	tristate "UNIX: socket monitoring interface" |  	tristate "UNIX: socket monitoring interface" | ||||||
|  	depends on UNIX |  	depends on UNIX | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  |  | ||||||
| --- a/fs/locks.c | --- a/fs/locks.c | ||||||
| +++ b/fs/locks.c | +++ b/fs/locks.c | ||||||
| @@ -2993,6 +2993,8 @@ static const struct seq_operations locks | @@ -2929,6 +2929,8 @@ static const struct seq_operations locks | ||||||
|   |   | ||||||
|  static int __init proc_locks_init(void) |  static int __init proc_locks_init(void) | ||||||
|  { |  { | ||||||
| @@ -147,7 +147,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  				IPC_MSG_IDS, sysvipc_msg_proc_show); |  				IPC_MSG_IDS, sysvipc_msg_proc_show); | ||||||
| --- a/ipc/sem.c | --- a/ipc/sem.c | ||||||
| +++ b/ipc/sem.c | +++ b/ipc/sem.c | ||||||
| @@ -266,6 +266,8 @@ void sem_exit_ns(struct ipc_namespace *n | @@ -268,6 +268,8 @@ void sem_exit_ns(struct ipc_namespace *n | ||||||
|  void __init sem_init(void) |  void __init sem_init(void) | ||||||
|  { |  { | ||||||
|  	sem_init_ns(&init_ipc_ns); |  	sem_init_ns(&init_ipc_ns); | ||||||
| @@ -169,7 +169,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  				"       key      shmid perms       size  cpid  lpid nattch   uid   gid  cuid  cgid      atime      dtime      ctime        rss       swap\n", |  				"       key      shmid perms       size  cpid  lpid nattch   uid   gid  cuid  cgid      atime      dtime      ctime        rss       swap\n", | ||||||
| --- a/ipc/util.c | --- a/ipc/util.c | ||||||
| +++ b/ipc/util.c | +++ b/ipc/util.c | ||||||
| @@ -140,6 +140,9 @@ void __init ipc_init_proc_interface(cons | @@ -141,6 +141,9 @@ void __init ipc_init_proc_interface(cons | ||||||
|  	struct proc_dir_entry *pde; |  	struct proc_dir_entry *pde; | ||||||
|  	struct ipc_proc_iface *iface; |  	struct ipc_proc_iface *iface; | ||||||
|   |   | ||||||
| @@ -224,7 +224,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	if (!root_irq_dir) |  	if (!root_irq_dir) | ||||||
| --- a/kernel/time/timer_list.c | --- a/kernel/time/timer_list.c | ||||||
| +++ b/kernel/time/timer_list.c | +++ b/kernel/time/timer_list.c | ||||||
| @@ -370,6 +370,8 @@ static int __init init_timer_list_procfs | @@ -350,6 +350,8 @@ static int __init init_timer_list_procfs | ||||||
|  { |  { | ||||||
|  	struct proc_dir_entry *pe; |  	struct proc_dir_entry *pe; | ||||||
|   |   | ||||||
| @@ -235,7 +235,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	if (!pe) |  	if (!pe) | ||||||
| --- a/mm/vmalloc.c | --- a/mm/vmalloc.c | ||||||
| +++ b/mm/vmalloc.c | +++ b/mm/vmalloc.c | ||||||
| @@ -3572,6 +3572,8 @@ static const struct seq_operations vmall | @@ -3962,6 +3962,8 @@ static const struct seq_operations vmall | ||||||
|   |   | ||||||
|  static int __init proc_vmalloc_init(void) |  static int __init proc_vmalloc_init(void) | ||||||
|  { |  { | ||||||
| @@ -246,7 +246,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  				&vmalloc_op, |  				&vmalloc_op, | ||||||
| --- a/mm/vmstat.c | --- a/mm/vmstat.c | ||||||
| +++ b/mm/vmstat.c | +++ b/mm/vmstat.c | ||||||
| @@ -2044,10 +2044,12 @@ void __init init_mm_internals(void) | @@ -2083,10 +2083,12 @@ void __init init_mm_internals(void) | ||||||
|  	start_shepherd_timer(); |  	start_shepherd_timer(); | ||||||
|  #endif |  #endif | ||||||
|  #ifdef CONFIG_PROC_FS |  #ifdef CONFIG_PROC_FS | ||||||
| @@ -286,7 +286,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  		goto err; |  		goto err; | ||||||
| --- a/net/core/net-procfs.c | --- a/net/core/net-procfs.c | ||||||
| +++ b/net/core/net-procfs.c | +++ b/net/core/net-procfs.c | ||||||
| @@ -320,10 +320,12 @@ static int __net_init dev_proc_net_init( | @@ -317,10 +317,12 @@ static int __net_init dev_proc_net_init( | ||||||
|  	if (!proc_create_net("dev", 0444, net->proc_net, &dev_seq_ops, |  	if (!proc_create_net("dev", 0444, net->proc_net, &dev_seq_ops, | ||||||
|  			sizeof(struct seq_net_private))) |  			sizeof(struct seq_net_private))) | ||||||
|  		goto out; |  		goto out; | ||||||
| @@ -301,7 +301,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  			sizeof(struct seq_net_private))) |  			sizeof(struct seq_net_private))) | ||||||
|  		goto out_softnet; |  		goto out_softnet; | ||||||
|   |   | ||||||
| @@ -333,9 +335,11 @@ static int __net_init dev_proc_net_init( | @@ -330,9 +332,11 @@ static int __net_init dev_proc_net_init( | ||||||
|  out: |  out: | ||||||
|  	return rc; |  	return rc; | ||||||
|  out_ptype: |  out_ptype: | ||||||
| @@ -315,7 +315,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  out_dev: |  out_dev: | ||||||
|  	remove_proc_entry("dev", net->proc_net); |  	remove_proc_entry("dev", net->proc_net); | ||||||
|  	goto out; |  	goto out; | ||||||
| @@ -345,8 +349,10 @@ static void __net_exit dev_proc_net_exit | @@ -342,8 +346,10 @@ static void __net_exit dev_proc_net_exit | ||||||
|  { |  { | ||||||
|  	wext_proc_exit(net); |  	wext_proc_exit(net); | ||||||
|   |   | ||||||
| @@ -330,7 +330,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|   |   | ||||||
| --- a/net/core/sock.c | --- a/net/core/sock.c | ||||||
| +++ b/net/core/sock.c | +++ b/net/core/sock.c | ||||||
| @@ -3699,6 +3699,8 @@ static __net_initdata struct pernet_oper | @@ -3855,6 +3855,8 @@ static __net_initdata struct pernet_oper | ||||||
|   |   | ||||||
|  static int __init proto_init(void) |  static int __init proto_init(void) | ||||||
|  { |  { | ||||||
| @@ -341,7 +341,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|   |   | ||||||
| --- a/net/ipv4/fib_trie.c | --- a/net/ipv4/fib_trie.c | ||||||
| +++ b/net/ipv4/fib_trie.c | +++ b/net/ipv4/fib_trie.c | ||||||
| @@ -2986,11 +2986,13 @@ static const struct seq_operations fib_r | @@ -3019,11 +3019,13 @@ static const struct seq_operations fib_r | ||||||
|   |   | ||||||
|  int __net_init fib_proc_init(struct net *net) |  int __net_init fib_proc_init(struct net *net) | ||||||
|  { |  { | ||||||
| @@ -357,7 +357,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  			fib_triestat_seq_show, NULL)) |  			fib_triestat_seq_show, NULL)) | ||||||
|  		goto out2; |  		goto out2; | ||||||
|   |   | ||||||
| @@ -3001,17 +3003,21 @@ int __net_init fib_proc_init(struct net | @@ -3034,17 +3036,21 @@ int __net_init fib_proc_init(struct net | ||||||
|  	return 0; |  	return 0; | ||||||
|   |   | ||||||
|  out3: |  out3: | ||||||
| @@ -385,7 +385,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|   |   | ||||||
| --- a/net/ipv4/proc.c | --- a/net/ipv4/proc.c | ||||||
| +++ b/net/ipv4/proc.c | +++ b/net/ipv4/proc.c | ||||||
| @@ -528,5 +528,8 @@ static __net_initdata struct pernet_oper | @@ -553,5 +553,8 @@ static __net_initdata struct pernet_oper | ||||||
|   |   | ||||||
|  int __init ip_misc_proc_init(void) |  int __init ip_misc_proc_init(void) | ||||||
|  { |  { | ||||||
| @@ -396,7 +396,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  } |  } | ||||||
| --- a/net/ipv4/route.c | --- a/net/ipv4/route.c | ||||||
| +++ b/net/ipv4/route.c | +++ b/net/ipv4/route.c | ||||||
| @@ -410,6 +410,9 @@ static struct pernet_operations ip_rt_pr | @@ -387,6 +387,9 @@ static struct pernet_operations ip_rt_pr | ||||||
|   |   | ||||||
|  static int __init ip_rt_proc_init(void) |  static int __init ip_rt_proc_init(void) | ||||||
|  { |  { | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  |  | ||||||
| --- a/drivers/base/Kconfig | --- a/drivers/base/Kconfig | ||||||
| +++ b/drivers/base/Kconfig | +++ b/drivers/base/Kconfig | ||||||
| @@ -184,7 +184,7 @@ config SOC_BUS | @@ -187,7 +187,7 @@ config SOC_BUS | ||||||
|  source "drivers/base/regmap/Kconfig" |  source "drivers/base/regmap/Kconfig" | ||||||
|   |   | ||||||
|  config DMA_SHARED_BUFFER |  config DMA_SHARED_BUFFER | ||||||
| @@ -63,16 +63,16 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
| +dma-shared-buffer-objs :=  $(dma-buf-objs-y) | +dma-shared-buffer-objs :=  $(dma-buf-objs-y) | ||||||
| --- a/drivers/dma-buf/dma-buf.c | --- a/drivers/dma-buf/dma-buf.c | ||||||
| +++ b/drivers/dma-buf/dma-buf.c | +++ b/drivers/dma-buf/dma-buf.c | ||||||
| @@ -1419,4 +1419,5 @@ static void __exit dma_buf_deinit(void) | @@ -1498,4 +1498,5 @@ static void __exit dma_buf_deinit(void) | ||||||
|  	dma_buf_uninit_debugfs(); |  | ||||||
|  	kern_unmount(dma_buf_mnt); |  	kern_unmount(dma_buf_mnt); | ||||||
|  |  	dma_buf_uninit_sysfs_statistics(); | ||||||
|  } |  } | ||||||
| -__exitcall(dma_buf_deinit); | -__exitcall(dma_buf_deinit); | ||||||
| +module_exit(dma_buf_deinit); | +module_exit(dma_buf_deinit); | ||||||
| +MODULE_LICENSE("GPL"); | +MODULE_LICENSE("GPL"); | ||||||
| --- a/kernel/sched/core.c | --- a/kernel/sched/core.c | ||||||
| +++ b/kernel/sched/core.c | +++ b/kernel/sched/core.c | ||||||
| @@ -3065,6 +3065,7 @@ int wake_up_state(struct task_struct *p, | @@ -4174,6 +4174,7 @@ int wake_up_state(struct task_struct *p, | ||||||
|  { |  { | ||||||
|  	return try_to_wake_up(p, state, 0); |  	return try_to_wake_up(p, state, 0); | ||||||
|  } |  } | ||||||
| @@ -82,7 +82,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|   * Perform scheduler related setup for a newly forked process p. |   * Perform scheduler related setup for a newly forked process p. | ||||||
| --- a/fs/d_path.c | --- a/fs/d_path.c | ||||||
| +++ b/fs/d_path.c | +++ b/fs/d_path.c | ||||||
| @@ -311,6 +311,7 @@ char *dynamic_dname(struct dentry *dentr | @@ -316,6 +316,7 @@ char *dynamic_dname(struct dentry *dentr | ||||||
|  	buffer += buflen - sz; |  	buffer += buflen - sz; | ||||||
|  	return memcpy(buffer, temp, sz); |  	return memcpy(buffer, temp, sz); | ||||||
|  } |  } | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| --- a/drivers/of/fdt.c | --- a/drivers/of/fdt.c | ||||||
| +++ b/drivers/of/fdt.c | +++ b/drivers/of/fdt.c | ||||||
| @@ -1055,6 +1055,9 @@ int __init early_init_dt_scan_chosen(uns | @@ -1158,6 +1158,9 @@ int __init early_init_dt_scan_chosen(uns | ||||||
|  	p = of_get_flat_dt_prop(node, "bootargs", &l); |  	p = of_get_flat_dt_prop(node, "bootargs", &l); | ||||||
|  	if (p != NULL && l > 0) |  	if (p != NULL && l > 0) | ||||||
|  		strlcpy(data, p, min(l, COMMAND_LINE_SIZE)); |  		strlcpy(data, p, min(l, COMMAND_LINE_SIZE)); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user