[openwrt/openwrt] generic: 5.15: refresh hack patch

LEDE Commits lede-commits at lists.infradead.org
Sat Mar 26 21:19:55 PDT 2022


dangole pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/49cb5e501a8d6eb8ff5cad63f13282de7b84e7ef

commit 49cb5e501a8d6eb8ff5cad63f13282de7b84e7ef
Author: Ansuel Smith <ansuelsmth at gmail.com>
AuthorDate: Mon Mar 21 15:21:45 2022 +0100

    generic: 5.15: refresh hack patch
    
    Use 'make target/linux/refresh' to refresh hack patches.
    
    Signed-off-by: Ansuel Smith <ansuelsmth at gmail.com>
---
 .../linux/generic/hack-5.15/204-module_strip.patch | 38 ++++++++--------
 .../linux/generic/hack-5.15/205-kconfig-exit.patch |  2 +-
 .../generic/hack-5.15/212-tools_portability.patch  |  2 +-
 .../hack-5.15/214-spidev_h_portability.patch       |  2 +-
 .../generic/hack-5.15/220-arm-gc_sections.patch    | 12 +++---
 .../generic/hack-5.15/221-module_exports.patch     |  8 ++--
 .../hack-5.15/230-openwrt_lzma_options.patch       |  2 +-
 .../generic/hack-5.15/250-netfilter_depends.patch  |  4 +-
 target/linux/generic/hack-5.15/251-kconfig.patch   |  2 +-
 .../linux/generic/hack-5.15/253-ksmbd-config.patch |  2 +-
 .../generic/hack-5.15/259-regmap_dynamic.patch     |  5 +--
 .../hack-5.15/260-crypto_test_dependencies.patch   |  2 +-
 .../linux/generic/hack-5.15/280-rfkill-stubs.patch |  4 +-
 ...-r4k_cache-use-more-efficient-cache-blast.patch |  2 +-
 .../hack-5.15/301-mips_image_cmdline_hack.patch    |  2 +-
 ...-blktrans-call-add-disks-after-mtd-device.patch |  2 +-
 .../hack-5.15/410-block-fit-partition-parser.patch | 22 +++++-----
 .../420-mtd-set-rootfs-to-be-root-dev.patch        |  2 +-
 .../generic/hack-5.15/430-mtk-bmt-support.patch    |  6 +--
 .../generic/hack-5.15/600-bridge_offload.patch     | 50 +++++++++++-----------
 .../650-netfilter-add-xt_FLOWOFFLOAD-target.patch  | 14 +++---
 .../hack-5.15/651-wireless_mesh_header.patch       |  2 +-
 .../generic/hack-5.15/660-fq_codel_defaults.patch  |  2 +-
 .../710-net-dsa-mv88e6xxx-default-VID-1.patch      |  4 +-
 ...1-net-dsa-mv88e6xxx-disable-ATU-violation.patch |  6 +--
 .../hack-5.15/720-net-phy-add-aqr-phys.patch       | 12 +++---
 .../hack-5.15/721-net-add-packet-mangeling.patch   | 34 +++++++--------
 ...net-phy-aquantia-enable-AQR112-and-AQR412.patch |  8 ++--
 ...-phy-aquantia-fix-system-side-protocol-mi.patch |  2 +-
 ...et-phy-aquantia-Add-AQR113-driver-support.patch |  4 +-
 ...-aquantia-add-PHY_IDs-for-AQR112-variants.patch |  4 +-
 ...t-usb-r8152-add-LED-configuration-from-OF.patch | 10 ++---
 .../hack-5.15/773-bgmac-add-srab-switch.patch      |  6 +--
 .../780-usb-net-MeigLink_modem_support.patch       |  2 +-
 .../800-GPIO-add-named-gpio-exports.patch          | 12 +++---
 .../generic/hack-5.15/901-debloat_sock_diag.patch  | 10 ++---
 .../linux/generic/hack-5.15/902-debloat_proc.patch | 28 ++++++------
 .../generic/hack-5.15/904-debloat_dma_buf.patch    | 10 ++---
 .../hack-5.15/920-device_tree_cmdline.patch        |  2 +-
 39 files changed, 171 insertions(+), 172 deletions(-)

diff --git a/target/linux/generic/hack-5.15/204-module_strip.patch b/target/linux/generic/hack-5.15/204-module_strip.patch
index 645074821f..0968d6a135 100644
--- a/target/linux/generic/hack-5.15/204-module_strip.patch
+++ b/target/linux/generic/hack-5.15/204-module_strip.patch
@@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/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" */
  #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info)
@@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  /* For userspace: you can also call me... */
  #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
   * authors use multiple MODULE_AUTHOR() statements/lines.
   */
@@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  /* Creates an alias so file2alias.c can find device table. */
  #define MODULE_DEVICE_TABLE(type, name)					\
  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)
@@ -49,7 +49,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #else
  #define MODULE_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
   * format is simply firmware file name.  Multiple firmware
   * files require multiple MODULE_FIRMWARE() specifiers */
@@ -75,9 +75,9 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 +#endif
 +
  #define __MODULE_INFO(tag, name, info)					  \
- static const char __UNIQUE_ID(name)[]					  \
-   __used __section(".modinfo") __attribute__((unused, aligned(1)))	  \
-@@ -31,7 +41,7 @@ static const char __UNIQUE_ID(name)[]
+ 	static const char __UNIQUE_ID(name)[]				  \
+ 		__used __section(".modinfo") __aligned(1)		  \
+@@ -31,7 +41,7 @@
  /* One for each parameter, describing how to use it.  Some files do
     multiple of these per line, so can't just use MODULE_INFO. */
  #define MODULE_PARM_DESC(_parm, desc) \
@@ -104,7 +104,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  config MODULES_TREE_LOOKUP
 --- a/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;
  
@@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  static int try_to_force_load(struct module *mod, const char *reason)
  {
  #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;
  #endif
  }
@@ -120,7 +120,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  #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)
  {
@@ -133,7 +133,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	if (flags & MODULE_INIT_IGNORE_VERMAGIC)
  		modmagic = NULL;
  
-@@ -3270,6 +3274,7 @@ static int check_modinfo(struct module *
+@@ -3250,6 +3254,7 @@ static int check_modinfo(struct module *
  				mod->name);
  		add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK);
  	}
@@ -143,7 +143,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
 --- a/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);
  
  		handle_symbol(mod, &info, sym, symname);
@@ -153,9 +153,9 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	}
  
  	for (sym = info.symtab_start; sym < info.symtab_stop; sym++) {
-@@ -2250,8 +2252,10 @@ static void add_header(struct buffer *b,
- 	buf_printf(b, "\n");
+@@ -2212,8 +2214,10 @@ static void add_header(struct buffer *b,
  	buf_printf(b, "BUILD_SALT;\n");
+ 	buf_printf(b, "BUILD_LTO_INFO;\n");
  	buf_printf(b, "\n");
 +#ifndef CONFIG_MODULE_STRIPPED
  	buf_printf(b, "MODULE_INFO(vermagic, VERMAGIC_STRING);\n");
@@ -164,7 +164,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	buf_printf(b, "\n");
  	buf_printf(b, "__visible struct module __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)
  {
@@ -175,7 +175,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  }
  
  /* 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)
  {
@@ -186,7 +186,7 @@ Signed-off-by: Felix Fietkau <nbd at 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)
  {
@@ -200,9 +200,9 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  }
  
  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);
- 		err |= add_versions(&buf, mod);
+ 		add_versions(&buf, mod);
  		add_depends(&buf, mod);
 +#ifndef CONFIG_MODULE_STRIPPED
  		add_moddevtable(&buf, mod);
diff --git a/target/linux/generic/hack-5.15/205-kconfig-exit.patch b/target/linux/generic/hack-5.15/205-kconfig-exit.patch
index c3fb7a1f99..e61c3ffdd9 100644
--- a/target/linux/generic/hack-5.15/205-kconfig-exit.patch
+++ b/target/linux/generic/hack-5.15/205-kconfig-exit.patch
@@ -1,6 +1,6 @@
 --- a/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;
  			continue;
  		case 0:
diff --git a/target/linux/generic/hack-5.15/212-tools_portability.patch b/target/linux/generic/hack-5.15/212-tools_portability.patch
index 54ac048417..b488155f94 100644
--- a/target/linux/generic/hack-5.15/212-tools_portability.patch
+++ b/target/linux/generic/hack-5.15/212-tools_portability.patch
@@ -68,7 +68,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 +#endif
 --- a/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 */
  #endif
  
diff --git a/target/linux/generic/hack-5.15/214-spidev_h_portability.patch b/target/linux/generic/hack-5.15/214-spidev_h_portability.patch
index 506d50ad4d..db754a2903 100644
--- a/target/linux/generic/hack-5.15/214-spidev_h_portability.patch
+++ b/target/linux/generic/hack-5.15/214-spidev_h_portability.patch
@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/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() ... */
  #define SPI_MSGSIZE(N) \
diff --git a/target/linux/generic/hack-5.15/220-arm-gc_sections.patch b/target/linux/generic/hack-5.15/220-arm-gc_sections.patch
index 331368b9fb..0aa3eb840c 100644
--- a/target/linux/generic/hack-5.15/220-arm-gc_sections.patch
+++ b/target/linux/generic/hack-5.15/220-arm-gc_sections.patch
@@ -12,7 +12,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
 ---
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -113,6 +113,7 @@ config ARM
+@@ -117,6 +117,7 @@ config ARM
  	select HAVE_UID16
  	select HAVE_VIRT_CPU_ACCOUNTING_GEN
  	select IRQ_FORCED_THREADING
@@ -22,14 +22,14 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
  	select OF_EARLY_FLATTREE if OF
 --- a/arch/arm/boot/compressed/Makefile
 +++ b/arch/arm/boot/compressed/Makefile
-@@ -98,6 +98,7 @@ $(foreach o, $(libfdt_objs) atags_to_fdt
- ifdef building_out_of_srctree
- $(shell rm -f $(addprefix $(obj)/, fdt_rw.c fdt_ro.c fdt_wip.c fdt.c))
+@@ -92,6 +92,7 @@ endif
+ ifeq ($(CONFIG_USE_OF),y)
+ OBJS	+= $(libfdt_objs) fdt_check_mem_start.o
  endif
 +KBUILD_CFLAGS_KERNEL := $(patsubst -f%-sections,,$(KBUILD_CFLAGS_KERNEL))
  
- targets       := vmlinux vmlinux.lds piggy_data piggy.o \
- 		 lib1funcs.o ashldi3.o bswapsdi2.o \
+ # -fstack-protector-strong triggers protection checks in this code,
+ # but it is being used too early to link to meaningful stack_chk logic.
 --- a/arch/arm/kernel/vmlinux.lds.S
 +++ b/arch/arm/kernel/vmlinux.lds.S
 @@ -75,7 +75,7 @@ SECTIONS
diff --git a/target/linux/generic/hack-5.15/221-module_exports.patch b/target/linux/generic/hack-5.15/221-module_exports.patch
index cd38125f28..65cee1a541 100644
--- a/target/linux/generic/hack-5.15/221-module_exports.patch
+++ b/target/linux/generic/hack-5.15/221-module_exports.patch
@@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  /* Align . to a 8 byte boundary equals to maximum function alignment. */
  #define ALIGN_FUNCTION()  . = ALIGN(8)
  
-@@ -473,14 +483,14 @@
+@@ -484,14 +494,14 @@
  	/* Kernel symbol table: Normal symbols */			\
  	__ksymtab         : AT(ADDR(__ksymtab) - LOAD_OFFSET) {		\
  		__start___ksymtab = .;					\
@@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		__stop___ksymtab_gpl = .;				\
  	}								\
  									\
-@@ -542,7 +552,7 @@
+@@ -511,7 +521,7 @@
  									\
  	/* Kernel symbol table: strings */				\
          __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) {	\
@@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	}								\
  									\
  	/* __*init sections */						\
-@@ -1019,6 +1029,8 @@
+@@ -1018,6 +1028,8 @@
  
  #define COMMON_DISCARDS							\
  	SANITIZER_DISCARDS						\
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	    "__kstrtabns_" #sym ":					\n"	\
 --- a/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)
  # ---------------------------------------------------------------------------
  quiet_cmd_cpp_lds_S = LDS     $@
diff --git a/target/linux/generic/hack-5.15/230-openwrt_lzma_options.patch b/target/linux/generic/hack-5.15/230-openwrt_lzma_options.patch
index 906527faf9..8aa5b7c579 100644
--- a/target/linux/generic/hack-5.15/230-openwrt_lzma_options.patch
+++ b/target/linux/generic/hack-5.15/230-openwrt_lzma_options.patch
@@ -23,7 +23,7 @@ Signed-off-by: Imre Kaloz <kaloz at openwrt.org>
  	{ {0x02, 0x21}, "lz4", unlz4 },
 --- a/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    $@
diff --git a/target/linux/generic/hack-5.15/250-netfilter_depends.patch b/target/linux/generic/hack-5.15/250-netfilter_depends.patch
index b27b440157..495c73ffa8 100644
--- a/target/linux/generic/hack-5.15/250-netfilter_depends.patch
+++ b/target/linux/generic/hack-5.15/250-netfilter_depends.patch
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/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
  	tristate "H.323 protocol support"
@@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	depends on NETFILTER_ADVANCED
  	help
  	  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
  	tristate '"TCPMSS" target support'
diff --git a/target/linux/generic/hack-5.15/251-kconfig.patch b/target/linux/generic/hack-5.15/251-kconfig.patch
index 34a63eaa7c..3304e9543a 100644
--- a/target/linux/generic/hack-5.15/251-kconfig.patch
+++ b/target/linux/generic/hack-5.15/251-kconfig.patch
@@ -92,7 +92,7 @@ Signed-off-by: John Crispin <john at phrozen.org>
  	bool
 --- a/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
  #
  config TEXTSEARCH
diff --git a/target/linux/generic/hack-5.15/253-ksmbd-config.patch b/target/linux/generic/hack-5.15/253-ksmbd-config.patch
index c2b2a96b9c..89be6f6c47 100644
--- a/target/linux/generic/hack-5.15/253-ksmbd-config.patch
+++ b/target/linux/generic/hack-5.15/253-ksmbd-config.patch
@@ -11,7 +11,7 @@
  	  that can be interpreted by the ASN.1 stream decoder and used to
 --- a/lib/Kconfig
 +++ b/lib/Kconfig
-@@ -589,7 +589,7 @@ config LIBFDT
+@@ -609,7 +609,7 @@ config LIBFDT
  	bool
  
  config OID_REGISTRY
diff --git a/target/linux/generic/hack-5.15/259-regmap_dynamic.patch b/target/linux/generic/hack-5.15/259-regmap_dynamic.patch
index 1d9e862620..6be5875177 100644
--- a/target/linux/generic/hack-5.15/259-regmap_dynamic.patch
+++ b/target/linux/generic/hack-5.15/259-regmap_dynamic.patch
@@ -94,7 +94,6 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 +	select REGMAP
  	tristate
  	depends on SPI
-
 --- a/drivers/base/regmap/Makefile
 +++ b/drivers/base/regmap/Makefile
 @@ -2,10 +2,14 @@
@@ -126,7 +125,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #include <linux/mutex.h>
  #include <linux/err.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;
  }
  postcore_initcall(regmap_initcall);
@@ -134,7 +133,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 +MODULE_LICENSE("GPL");
 --- a/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; \
  })
  
diff --git a/target/linux/generic/hack-5.15/260-crypto_test_dependencies.patch b/target/linux/generic/hack-5.15/260-crypto_test_dependencies.patch
index 1eab709c46..c73a1f1f64 100644
--- a/target/linux/generic/hack-5.15/260-crypto_test_dependencies.patch
+++ b/target/linux/generic/hack-5.15/260-crypto_test_dependencies.patch
@@ -37,7 +37,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	tristate "Userspace cryptographic algorithm configuration"
 --- a/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;
  
  	/* Do not test internal algorithms. */
diff --git a/target/linux/generic/hack-5.15/280-rfkill-stubs.patch b/target/linux/generic/hack-5.15/280-rfkill-stubs.patch
index 2e48aea1cf..7a650d132e 100644
--- a/target/linux/generic/hack-5.15/280-rfkill-stubs.patch
+++ b/target/linux/generic/hack-5.15/280-rfkill-stubs.patch
@@ -26,7 +26,7 @@ Signed-off-by: John Crispin <john at phrozen.org>
   * @name: name of the struct -- the string is not copied internally
 --- a/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_IUCV)		+= iucv/
  obj-$(CONFIG_SMC)		+= smc/
@@ -34,7 +34,7 @@ Signed-off-by: John Crispin <john at phrozen.org>
 +obj-$(CONFIG_RFKILL_FULL)	+= rfkill/
  obj-$(CONFIG_NET_9P)		+= 9p/
  obj-$(CONFIG_CAIF)		+= caif/
- ifneq ($(CONFIG_DCB),)
+ obj-$(CONFIG_DCB)		+= dcb/
 --- a/net/rfkill/Kconfig
 +++ b/net/rfkill/Kconfig
 @@ -2,7 +2,11 @@
diff --git a/target/linux/generic/hack-5.15/300-MIPS-r4k_cache-use-more-efficient-cache-blast.patch b/target/linux/generic/hack-5.15/300-MIPS-r4k_cache-use-more-efficient-cache-blast.patch
index fe89de7e08..f21f200136 100644
--- a/target/linux/generic/hack-5.15/300-MIPS-r4k_cache-use-more-efficient-cache-blast.patch
+++ b/target/linux/generic/hack-5.15/300-MIPS-r4k_cache-use-more-efficient-cache-blast.patch
@@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 ---
 --- a/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 lsize = cpu_##desc##_line_size();			\
diff --git a/target/linux/generic/hack-5.15/301-mips_image_cmdline_hack.patch b/target/linux/generic/hack-5.15/301-mips_image_cmdline_hack.patch
index 4edf527246..15e233aceb 100644
--- a/target/linux/generic/hack-5.15/301-mips_image_cmdline_hack.patch
+++ b/target/linux/generic/hack-5.15/301-mips_image_cmdline_hack.patch
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
 
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -1170,6 +1170,10 @@ config MIPS_MSC
+@@ -1180,6 +1180,10 @@ config MIPS_MSC
  config SYNC_R4K
  	bool
  
diff --git a/target/linux/generic/hack-5.15/402-mtd-blktrans-call-add-disks-after-mtd-device.patch b/target/linux/generic/hack-5.15/402-mtd-blktrans-call-add-disks-after-mtd-device.patch
index c9821b57eb..d0f81c485b 100644
--- a/target/linux/generic/hack-5.15/402-mtd-blktrans-call-add-disks-after-mtd-device.patch
+++ b/target/linux/generic/hack-5.15/402-mtd-blktrans-call-add-disks-after-mtd-device.patch
@@ -77,7 +77,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  
  #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);
  
diff --git a/target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch b/target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch
index 65438807de..560196ac72 100644
--- a/target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch
+++ b/target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch
@@ -1,6 +1,6 @@
 --- a/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_RAID	1
  #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);
 --- a/block/partitions/core.c
 +++ b/block/partitions/core.c
-@@ -10,6 +10,10 @@
+@@ -12,6 +12,10 @@
  #include <linux/vmalloc.h>
  #include <linux/blktrace_api.h>
  #include <linux/raid/detect.h>
@@ -64,7 +64,7 @@
  #include "check.h"
  
  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
  	efi_partition,		/* this must come before msdos */
  #endif
@@ -74,9 +74,9 @@
  #ifdef CONFIG_SGI_PARTITION
  	sgi_partition,
  #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))
- 		md_autodetect_dev(part_to_dev(part)->devt);
+ 		md_autodetect_dev(part->bd_dev);
  
 +#ifdef CONFIG_FIT_PARTITION
 +	if ((state->parts[p].flags & ADDPART_FLAG_ROOTDEV) && ROOT_DEV == 0)
@@ -91,7 +91,7 @@
  
 --- a/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;
  	}
  	gd->private_data = dev;
@@ -103,7 +103,7 @@
  	dev->gd = gd;
 --- a/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->minors = 1 << tr->part_bits;
  	gd->fops = &mtd_block_ops;
@@ -115,7 +115,7 @@
  		if (new->devnum < 26)
 --- a/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;
  	u32 i;
  	unsigned ssz = queue_logical_block_size(state->disk->queue) / 512;
@@ -125,7 +125,7 @@
  
  	if (!find_valid_gpt(state, &gpt, &ptes) || !gpt || !ptes) {
  		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));
  		utf16_le_to_7bit(ptes[i].partition_name, label_max, info->volname);
  		state->parts[i + 1].has_info = true;
@@ -151,7 +151,7 @@
  	__le64 signature;
 --- a/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 */
  }
  
@@ -167,7 +167,7 @@
  static struct {
  	unsigned char id;
  	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},
  	{SOLARIS_X86_PARTITION, parse_solaris_x86},
  	{NEW_SOLARIS_X86_PARTITION, parse_solaris_x86},
diff --git a/target/linux/generic/hack-5.15/420-mtd-set-rootfs-to-be-root-dev.patch b/target/linux/generic/hack-5.15/420-mtd-set-rootfs-to-be-root-dev.patch
index 80122277e9..8ac1dca238 100644
--- a/target/linux/generic/hack-5.15/420-mtd-set-rootfs-to-be-root-dev.patch
+++ b/target/linux/generic/hack-5.15/420-mtd-set-rootfs-to-be-root-dev.patch
@@ -20,7 +20,7 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
  #include <linux/nvmem-provider.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
  	   either. :) */
  	__module_get(THIS_MODULE);
diff --git a/target/linux/generic/hack-5.15/430-mtk-bmt-support.patch b/target/linux/generic/hack-5.15/430-mtk-bmt-support.patch
index 62ddd66bf2..2a98fe6f81 100644
--- a/target/linux/generic/hack-5.15/430-mtk-bmt-support.patch
+++ b/target/linux/generic/hack-5.15/430-mtk-bmt-support.patch
@@ -1,8 +1,8 @@
 --- a/drivers/mtd/nand/Kconfig
 +++ b/drivers/mtd/nand/Kconfig
-@@ -15,6 +15,10 @@ config MTD_NAND_ECC
-        bool
-        depends on MTD_NAND_CORE
+@@ -46,6 +46,10 @@ config MTD_NAND_ECC_SW_BCH
+ 	  ECC codes. They are used with NAND devices requiring more than 1 bit
+ 	  of error correction.
  
 +config MTD_NAND_MTK_BMT
 +	bool "Support MediaTek NAND Bad-block Management Table"
diff --git a/target/linux/generic/hack-5.15/600-bridge_offload.patch b/target/linux/generic/hack-5.15/600-bridge_offload.patch
index 9206722d73..c7942a0aef 100644
--- a/target/linux/generic/hack-5.15/600-bridge_offload.patch
+++ b/target/linux/generic/hack-5.15/600-bridge_offload.patch
@@ -1,6 +1,6 @@
 --- a/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_TX_FWD_OFFLOAD	BIT(20)
  #define BR_BPDU_FILTER		BIT(21)
@@ -29,7 +29,7 @@
  
  /*
   * 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)
  		goto err_out;
  
@@ -40,7 +40,7 @@
  	err = register_pernet_subsys(&br_net_ops);
  	if (err)
  		goto err_out1;
-@@ -375,6 +380,8 @@ err_out3:
+@@ -430,6 +435,8 @@ err_out3:
  err_out2:
  	unregister_pernet_subsys(&br_net_ops);
  err_out1:
@@ -49,7 +49,7 @@
  	br_fdb_fini();
  err_out:
  	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)
  	br_fdb_test_addr_hook = NULL;
  #endif
@@ -59,7 +59,7 @@
  
 --- a/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_forward_delay = br->forward_delay = 15 * HZ;
  	br->bridge_ageing_time = br->ageing_time = BR_DEFAULT_AGEING_TIME;
@@ -78,7 +78,7 @@
  
  static const struct rhashtable_params br_fdb_rht_params = {
  	.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->flags = flags;
  		fdb->updated = fdb->used = jiffies;
@@ -87,7 +87,7 @@
  		if (rhashtable_lookup_insert_fast(&br->fdb_hash_tbl,
  						  &fdb->rhnode,
  						  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;
  	int err = -ENOBUFS;
  
@@ -125,7 +125,7 @@
  
  /*
   * 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->priority = 0x8000 >> BR_PORT_BITS;
  	p->port_no = index;
@@ -134,7 +134,7 @@
  	br_init_port(p);
  	br_set_state(p, BR_STATE_DISABLED);
  	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)
  		br_recalculate_neigh_suppress_enabled(br);
@@ -154,7 +154,7 @@
  
  static int
  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;
  		br_forward(dst->dst, skb, local_rcv, false);
  	} else {
@@ -162,7 +162,7 @@
  		if (!mcast_hit)
  			br_flood(br, skb, pkt_type, local_rcv, false);
  		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));
  
  	p = br_port_get_rcu(skb->dev);
@@ -170,7 +170,7 @@
 +		return RX_HANDLER_CONSUMED;
 +
  	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
 +++ b/net/bridge/br_offload.c
@@ -615,7 +615,7 @@
 +}
 --- a/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			used;
  
@@ -630,7 +630,7 @@
  };
  
  #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;
  };
  
@@ -643,7 +643,7 @@
  struct net_bridge_port {
  	struct net_bridge		*br;
  	struct net_device		*dev;
-@@ -337,6 +349,7 @@ struct net_bridge_port {
+@@ -403,6 +415,7 @@ struct net_bridge_port {
  	u16				backup_redirected_cnt;
  
  	struct bridge_stp_xstats	stp_xstats;
@@ -651,7 +651,7 @@
  };
  
  #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;
  	u32				auto_cnt;
  
@@ -661,7 +661,7 @@
  #ifdef CONFIG_NET_SWITCHDEV
  	/* Counter used to make sure that hardware domains get unique
  	 * 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
  	u8 br_netfilter_broute:1;
  #endif
@@ -725,9 +725,9 @@
  #include "br_private.h"
 +#include "br_private_offload.h"
  
- #define to_bridge(cd)	((struct net_bridge *)netdev_priv(to_net_dev(cd)))
- 
-@@ -842,6 +843,38 @@ static ssize_t vlan_stats_per_port_store
+ /* IMPORTANT: new bridge options must be added with netlink support only
+  *            please do not add new sysfs entries
+@@ -930,6 +931,38 @@ static ssize_t vlan_stats_per_port_store
  static DEVICE_ATTR_RW(vlan_stats_per_port);
  #endif
  
@@ -766,7 +766,7 @@
  static struct attribute *bridge_attrs[] = {
  	&dev_attr_forward_delay.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_per_port.attr,
  #endif
@@ -777,7 +777,7 @@
  
 --- a/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(isolated, BR_ISOLATED);
  BRPORT_ATTR_FLAG(bpdu_filter, BR_BPDU_FILTER);
@@ -785,7 +785,7 @@
  
  #ifdef CONFIG_BRIDGE_IGMP_SNOOPING
  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_bpdu_filter,
  	&brport_attr_backup_port,
@@ -803,7 +803,7 @@
  
  static inline int br_vlan_tunid_cmp(struct rhashtable_compare_arg *arg,
  				    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);
  
  	__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,
-@@ -203,6 +205,7 @@ int br_handle_egress_vlan_tunnel(struct
+@@ -201,6 +203,7 @@ int br_handle_egress_vlan_tunnel(struct
  	if (err)
  		return err;
  
diff --git a/target/linux/generic/hack-5.15/650-netfilter-add-xt_FLOWOFFLOAD-target.patch b/target/linux/generic/hack-5.15/650-netfilter-add-xt_FLOWOFFLOAD-target.patch
index 23332534bb..c873d606f3 100644
--- a/target/linux/generic/hack-5.15/650-netfilter-add-xt_FLOWOFFLOAD-target.patch
+++ b/target/linux/generic/hack-5.15/650-netfilter-add-xt_FLOWOFFLOAD-target.patch
@@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	depends on !NF_CONNTRACK || NF_CONNTRACK
 --- a/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
  
@@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  config NF_FLOW_TABLE_INET
  	tristate "Netfilter flow table mixed IPv4/IPv6 module"
  	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.
  
@@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	help
  	  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
  	select NETFILTER_XT_TARGET_CT
  
@@ -88,7 +88,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	depends on NETFILTER_ADVANCED
 --- a/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_CT) += xt_CT.o
  obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o
@@ -766,7 +766,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  #include <net/netfilter/nf_flow_table.h>
  #include <net/netfilter/nf_conntrack.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);
  
@@ -776,7 +776,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		      void (*iter)(struct flow_offload *flow, 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;
  }
@@ -806,7 +806,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 +#endif /* _XT_FLOWOFFLOAD_H */
 --- a/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);
  
diff --git a/target/linux/generic/hack-5.15/651-wireless_mesh_header.patch b/target/linux/generic/hack-5.15/651-wireless_mesh_header.patch
index 0639ad4e48..12a031ec84 100644
--- a/target/linux/generic/hack-5.15/651-wireless_mesh_header.patch
+++ b/target/linux/generic/hack-5.15/651-wireless_mesh_header.patch
@@ -11,7 +11,7 @@ Signed-off-by: Imre Kaloz <kaloz at openwrt.org>
 
 --- a/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)
  # define LL_MAX_HEADER 128
diff --git a/target/linux/generic/hack-5.15/660-fq_codel_defaults.patch b/target/linux/generic/hack-5.15/660-fq_codel_defaults.patch
index 6794349e26..5541c0bc89 100644
--- a/target/linux/generic/hack-5.15/660-fq_codel_defaults.patch
+++ b/target/linux/generic/hack-5.15/660-fq_codel_defaults.patch
@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/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;
  	q->flows_cnt = 1024;
diff --git a/target/linux/generic/hack-5.15/710-net-dsa-mv88e6xxx-default-VID-1.patch b/target/linux/generic/hack-5.15/710-net-dsa-mv88e6xxx-default-VID-1.patch
index f301cc1e2d..f85b558fef 100644
--- a/target/linux/generic/hack-5.15/710-net-dsa-mv88e6xxx-default-VID-1.patch
+++ b/target/linux/generic/hack-5.15/710-net-dsa-mv88e6xxx-default-VID-1.patch
@@ -1,6 +1,6 @@
 --- a/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;
  	int err;
  
@@ -8,7 +8,7 @@
  	mv88e6xxx_reg_lock(chip);
  	err = mv88e6xxx_port_db_load_purge(chip, port, addr, vid,
  					   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;
  	int err;
  
diff --git a/target/linux/generic/hack-5.15/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch b/target/linux/generic/hack-5.15/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch
index 46a1ba1d96..4e0654f8f3 100644
--- a/target/linux/generic/hack-5.15/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch
+++ b/target/linux/generic/hack-5.15/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch
@@ -1,8 +1,8 @@
 --- a/drivers/net/dsa/mv88e6xxx/chip.c
 +++ b/drivers/net/dsa/mv88e6xxx/chip.c
-@@ -2650,6 +2650,9 @@ static int mv88e6xxx_setup_port(struct m
- 	if (dsa_is_cpu_port(ds, port))
- 		reg = 0;
+@@ -2983,6 +2983,9 @@ static int mv88e6xxx_setup_port(struct m
+ 	else
+ 		reg = 1 << port;
  
 +	/* Disable ATU member violation interrupt */
 +	reg |= MV88E6XXX_PORT_ASSOC_VECTOR_IGNORE_WRONG;
diff --git a/target/linux/generic/hack-5.15/720-net-phy-add-aqr-phys.patch b/target/linux/generic/hack-5.15/720-net-phy-add-aqr-phys.patch
index 979308a908..59124990c3 100644
--- a/target/linux/generic/hack-5.15/720-net-phy-add-aqr-phys.patch
+++ b/target/linux/generic/hack-5.15/720-net-phy-add-aqr-phys.patch
@@ -20,7 +20,7 @@ Signed-off-by: Birger Koblitz <git at birger-koblitz.de>
  
  #define MDIO_PHYXS_VEND_IF_STATUS		0xe812
  #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;
  }
  
@@ -70,7 +70,7 @@ Signed-off-by: Birger Koblitz <git at birger-koblitz.de>
  static int aqr107_read_status(struct phy_device *phydev)
  {
  	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);
  	prov_id = FIELD_GET(VEND1_GLOBAL_RSVD_STAT1_PROV_ID, val);
  
@@ -79,7 +79,7 @@ Signed-off-by: Birger Koblitz <git at birger-koblitz.de>
  		   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,
  },
  {
@@ -104,8 +104,8 @@ Signed-off-by: Birger Koblitz <git at birger-koblitz.de>
  	PHY_ID_MATCH_MODEL(PHY_ID_AQCS109),
  	.name		= "Aquantia AQCS109",
  	.probe		= aqr107_probe,
-@@ -657,6 +720,24 @@ static struct phy_driver aqr_driver[] =
- 	.ack_interrupt	= aqr_ack_interrupt,
+@@ -686,6 +749,24 @@ static struct phy_driver aqr_driver[] =
+ 	.handle_interrupt = aqr_handle_interrupt,
  	.read_status	= aqr_read_status,
  },
 +{
@@ -129,7 +129,7 @@ Signed-off-by: Birger Koblitz <git at birger-koblitz.de>
  };
  
  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_AQR106) },
  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR107) },
diff --git a/target/linux/generic/hack-5.15/721-net-add-packet-mangeling.patch b/target/linux/generic/hack-5.15/721-net-add-packet-mangeling.patch
index e36d829ac5..abc0735e36 100644
--- a/target/linux/generic/hack-5.15/721-net-add-packet-mangeling.patch
+++ b/target/linux/generic/hack-5.15/721-net-add-packet-mangeling.patch
@@ -19,18 +19,18 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -1618,6 +1618,10 @@ enum netdev_priv_flags {
- 	IFF_LIVE_RENAME_OK		= 1<<30,
+@@ -1648,6 +1648,10 @@ enum netdev_priv_flags {
  	IFF_TX_SKB_NO_LINEAR		= 1<<31,
  };
-+
+ 
 +enum netdev_extra_priv_flags {
 +	IFF_NO_IP_ALIGN			= 1<<0,
 +};
- 
++
  #define IFF_802_1Q_VLAN			IFF_802_1Q_VLAN
  #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_LIVE_RENAME_OK		IFF_LIVE_RENAME_OK
  #define IFF_TX_SKB_NO_LINEAR		IFF_TX_SKB_NO_LINEAR
@@ -38,15 +38,15 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  /* Specifies the type of the struct net_device::ml_priv pointer */
  enum netdev_ml_priv_type {
-@@ -1987,6 +1987,7 @@ enum netdev_priv_flags {
- /* Read-mostly cache-line for fast-path access */
+@@ -1981,6 +1986,7 @@ struct net_device {
+ 	/* Read-mostly cache-line for fast-path access */
  	unsigned int		flags;
  	unsigned int		priv_flags;
 +	unsigned int		extra_priv_flags;
  	const struct net_device_ops *netdev_ops;
  	int			ifindex;
  	unsigned short		gflags;
-@@ -1990,6 +1992,11 @@ struct net_device {
+@@ -2041,6 +2047,11 @@ struct net_device {
  	const struct tlsdev_ops *tlsdev_ops;
  #endif
  
@@ -57,9 +57,9 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 +
  	const struct header_ops *header_ops;
  
- 	unsigned int		flags;
-@@ -2080,6 +2087,10 @@ struct net_device {
- 	struct mpls_dev __rcu	*mpls_ptr;
+ 	unsigned char		operstate;
+@@ -2115,6 +2126,10 @@ struct net_device {
+ 	struct mctp_dev __rcu	*mctp_ptr;
  #endif
  
 +#ifdef CONFIG_ETHERNET_PACKET_MANGLE
@@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
   */
 --- a/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;
  }
  
@@ -82,7 +82,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  /**
   *	pskb_trim_unique - remove end from a paged unique (not cloned) buffer
   *	@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 at nbd.name>
  	help
 --- a/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))
  		dev_queue_xmit_nit(skb, dev);
  
@@ -130,7 +130,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	trace_net_dev_start_xmit(skb, dev);
 --- a/net/core/skbuff.c
 +++ b/net/core/skbuff.c
-@@ -60,6 +60,7 @@
+@@ -61,6 +61,7 @@
  #include <linux/if_vlan.h>
  #include <linux/mpls.h>
  #include <linux/kcov.h>
@@ -138,7 +138,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  #include <net/protocol.h>
  #include <net/dst.h>
-@@ -553,6 +554,22 @@ skb_fail:
+@@ -602,6 +603,22 @@ skb_fail:
  }
  EXPORT_SYMBOL(__napi_alloc_skb);
  
@@ -163,7 +163,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  {
 --- a/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;
  
  	skb->dev = dev;
diff --git a/target/linux/generic/hack-5.15/722-net-phy-aquantia-enable-AQR112-and-AQR412.patch b/target/linux/generic/hack-5.15/722-net-phy-aquantia-enable-AQR112-and-AQR412.patch
index 6ab7bc7569..37724f6895 100644
--- a/target/linux/generic/hack-5.15/722-net-phy-aquantia-enable-AQR112-and-AQR412.patch
+++ b/target/linux/generic/hack-5.15/722-net-phy-aquantia-enable-AQR112-and-AQR412.patch
@@ -27,7 +27,7 @@ Signed-off-by: Alex Marginean <alexandru.marginean at nxp.com>
  #define PHY_ID_AQR813	0x31c31cb2
  
  #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_GLOBAL3	BIT(0)
  
@@ -57,7 +57,7 @@ Signed-off-by: Alex Marginean <alexandru.marginean at nxp.com>
  struct aqr107_hw_stat {
  	const char *name;
  	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);
  }
  
@@ -109,7 +109,7 @@ Signed-off-by: Alex Marginean <alexandru.marginean at nxp.com>
  static int aqr_config_intr(struct phy_device *phydev)
  {
  	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,
  	.link_change_notify = aqr107_link_change_notify,
  },
@@ -140,7 +140,7 @@ Signed-off-by: Alex Marginean <alexandru.marginean at nxp.com>
  };
  
  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_AQR106) },
  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR107) },
diff --git a/target/linux/generic/hack-5.15/723-net-phy-aquantia-fix-system-side-protocol-mi.patch b/target/linux/generic/hack-5.15/723-net-phy-aquantia-fix-system-side-protocol-mi.patch
index 9c5df905bb..30ee41d122 100644
--- a/target/linux/generic/hack-5.15/723-net-phy-aquantia-fix-system-side-protocol-mi.patch
+++ b/target/linux/generic/hack-5.15/723-net-phy-aquantia-fix-system-side-protocol-mi.patch
@@ -14,7 +14,7 @@ Signed-off-by: Alex Marginean <alexandru.marginean at nxp.com>
 
 --- a/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,
  		      aquantia_syscfg[if_type].start_rate);
  
diff --git a/target/linux/generic/hack-5.15/724-net-phy-aquantia-Add-AQR113-driver-support.patch b/target/linux/generic/hack-5.15/724-net-phy-aquantia-Add-AQR113-driver-support.patch
index 1fc7658ff3..27b09c5fbd 100644
--- a/target/linux/generic/hack-5.15/724-net-phy-aquantia-Add-AQR113-driver-support.patch
+++ b/target/linux/generic/hack-5.15/724-net-phy-aquantia-Add-AQR113-driver-support.patch
@@ -18,7 +18,7 @@ Add a new entry for AQR113 PHY_ID
  #define PHY_ID_AQR113C	0x31c31c12
  #define PHY_ID_AQCS109	0x03a1b5c2
  #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,
  },
  {
@@ -33,7 +33,7 @@ Add a new entry for AQR113 PHY_ID
  	PHY_ID_MATCH_MODEL(PHY_ID_AQR412),
  	.name		= "Aquantia AQR412",
  	.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_AQR107) },
  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR112) },
diff --git a/target/linux/generic/hack-5.15/725-net-phy-aquantia-add-PHY_IDs-for-AQR112-variants.patch b/target/linux/generic/hack-5.15/725-net-phy-aquantia-add-PHY_IDs-for-AQR112-variants.patch
index ba9f3ee120..e27178f8a1 100644
--- a/target/linux/generic/hack-5.15/725-net-phy-aquantia-add-PHY_IDs-for-AQR112-variants.patch
+++ b/target/linux/generic/hack-5.15/725-net-phy-aquantia-add-PHY_IDs-for-AQR112-variants.patch
@@ -21,7 +21,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  #define PHY_ID_AQR113	0x31c31c40
  #define PHY_ID_AQR113C	0x31c31c12
  #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,
  },
  {
@@ -52,7 +52,7 @@ Signed-off-by: Daniel Golle <daniel at makrotopia.org>
  	PHY_ID_MATCH_MODEL(PHY_ID_AQR113),
  	.name		= "Aquantia AQR113",
  	.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_AQR107) },
  	{ PHY_ID_MATCH_MODEL(PHY_ID_AQR112) },
diff --git a/target/linux/generic/hack-5.15/760-net-usb-r8152-add-LED-configuration-from-OF.patch b/target/linux/generic/hack-5.15/760-net-usb-r8152-add-LED-configuration-from-OF.patch
index f94d16c0ff..b71e1df06f 100644
--- a/target/linux/generic/hack-5.15/760-net-usb-r8152-add-LED-configuration-from-OF.patch
+++ b/target/linux/generic/hack-5.15/760-net-usb-r8152-add-LED-configuration-from-OF.patch
@@ -22,7 +22,7 @@ Signed-off-by: David Bauer <mail at david-bauer.net>
  #include <linux/crc32.h>
  #include <linux/if_vlan.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);
  }
  
@@ -45,7 +45,7 @@ Signed-off-by: David Bauer <mail at david-bauer.net>
  static void r8152b_init(struct r8152 *tp)
  {
  	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 &= ~(RX_AGG_DISABLE | RX_ZERO_EN);
  	ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data);
@@ -54,7 +54,7 @@ Signed-off-by: David Bauer <mail at david-bauer.net>
  }
  
  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;
  		break;
  	}
@@ -63,7 +63,7 @@ Signed-off-by: David Bauer <mail at david-bauer.net>
  }
  
  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);
  
  	tp->coalesce = 15000;	/* 15 us */
@@ -71,4 +71,4 @@ Signed-off-by: David Bauer <mail at david-bauer.net>
 +	r8152_led_configuration(tp);
  }
  
- static int rtl8152_pre_reset(struct usb_interface *intf)
+ static void r8153c_init(struct r8152 *tp)
diff --git a/target/linux/generic/hack-5.15/773-bgmac-add-srab-switch.patch b/target/linux/generic/hack-5.15/773-bgmac-add-srab-switch.patch
index 5a7e38516c..1e4fc446ce 100644
--- a/target/linux/generic/hack-5.15/773-bgmac-add-srab-switch.patch
+++ b/target/linux/generic/hack-5.15/773-bgmac-add-srab-switch.patch
@@ -14,7 +14,7 @@ Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
 
 --- a/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_NO_RESET;
  		bgmac->feature_flags |= BGMAC_FEAT_FORCE_SPEED_2500;
@@ -78,7 +78,7 @@ Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
  	netif_napi_del(&bgmac->napi);
 --- a/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_CC7_IF_TYPE_RGMII	BIT(19)
  #define BGMAC_FEAT_IDM_MASK		BIT(20)
@@ -86,7 +86,7 @@ Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
  
  struct bgmac_slot_info {
  	union {
-@@ -533,6 +534,9 @@ struct bgmac {
+@@ -495,6 +496,9 @@ struct bgmac {
  	void (*cmn_maskset32)(struct bgmac *bgmac, u16 offset, u32 mask,
  			      u32 set);
  	int (*phy_connect)(struct bgmac *bgmac);
diff --git a/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch b/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch
index cb6f46760b..85dc3db98d 100644
--- a/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch
+++ b/target/linux/generic/hack-5.15/780-usb-net-MeigLink_modem_support.patch
@@ -1,6 +1,6 @@
 --- a/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, 0x0620)},	/* Quectel EM160R-GL */
  	{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0800)},	/* Quectel RM500Q-GL */
diff --git a/target/linux/generic/hack-5.15/800-GPIO-add-named-gpio-exports.patch b/target/linux/generic/hack-5.15/800-GPIO-add-named-gpio-exports.patch
index 76f89acdcd..f24fe9d192 100644
--- a/target/linux/generic/hack-5.15/800-GPIO-add-named-gpio-exports.patch
+++ b/target/linux/generic/hack-5.15/800-GPIO-add-named-gpio-exports.patch
@@ -15,9 +15,9 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  
  #include "gpiolib.h"
  #include "gpiolib-of.h"
-@@ -1039,3 +1041,72 @@ void of_gpiochip_remove(struct gpio_chip
- {
- 	of_node_put(chip->of_node);
+@@ -1052,3 +1054,72 @@ void of_gpio_dev_init(struct gpio_chip *
+ 	else
+ 		gc->of_node = gdev->dev.of_node;
  }
 +
 +#ifdef CONFIG_GPIO_SYSFS
@@ -129,7 +129,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  {
 --- a/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.
   */
@@ -138,7 +138,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  {
  	struct gpio_chip	*chip;
  	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);
  	if (chip->names && chip->names[offset])
  		ioname = chip->names[offset];
@@ -147,7 +147,7 @@ Signed-off-by: John Crispin <blogic at openwrt.org>
  
  	dev = device_create_with_groups(&gpio_class, &gdev->dev,
  					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);
  	return status;
  }
diff --git a/target/linux/generic/hack-5.15/901-debloat_sock_diag.patch b/target/linux/generic/hack-5.15/901-debloat_sock_diag.patch
index b0e1661019..ab629d598f 100644
--- a/target/linux/generic/hack-5.15/901-debloat_sock_diag.patch
+++ b/target/linux/generic/hack-5.15/901-debloat_sock_diag.patch
@@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/net/Kconfig
 +++ b/net/Kconfig
-@@ -98,6 +98,9 @@ source "net/mptcp/Kconfig"
+@@ -104,6 +104,9 @@ source "net/mptcp/Kconfig"
  
  endif # if INET
  
@@ -50,7 +50,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  #include <linux/uaccess.h>
  
-@@ -141,6 +142,7 @@
+@@ -143,6 +144,7 @@
  
  static DEFINE_MUTEX(proto_list_mutex);
  static LIST_HEAD(proto_list);
@@ -58,7 +58,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
  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);
  
@@ -77,7 +77,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  INDIRECT_CALLABLE_DECLARE(struct dst_entry *ip6_dst_check(struct dst_entry *,
  							  u32));
  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))
  		sock_inuse_add(sock_net(sk), -1);
  
@@ -152,7 +152,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	  Support for PF_PACKET sockets monitoring interface used by the ss tool.
 --- a/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
  	tristate "UNIX: socket monitoring interface"
  	depends on UNIX
diff --git a/target/linux/generic/hack-5.15/902-debloat_proc.patch b/target/linux/generic/hack-5.15/902-debloat_proc.patch
index 33a3e3c5d5..fef28464bc 100644
--- a/target/linux/generic/hack-5.15/902-debloat_proc.patch
+++ b/target/linux/generic/hack-5.15/902-debloat_proc.patch
@@ -29,7 +29,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/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)
  {
@@ -147,7 +147,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  				IPC_MSG_IDS, sysvipc_msg_proc_show);
 --- a/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)
  {
  	sem_init_ns(&init_ipc_ns);
@@ -169,7 +169,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  				"       key      shmid perms       size  cpid  lpid nattch   uid   gid  cuid  cgid      atime      dtime      ctime        rss       swap\n",
 --- a/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 ipc_proc_iface *iface;
  
@@ -224,7 +224,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	if (!root_irq_dir)
 --- a/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;
  
@@ -235,7 +235,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  	if (!pe)
 --- a/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)
  {
@@ -246,7 +246,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  				&vmalloc_op,
 --- a/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();
  #endif
  #ifdef CONFIG_PROC_FS
@@ -286,7 +286,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  		goto err;
 --- a/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,
  			sizeof(struct seq_net_private)))
  		goto out;
@@ -301,7 +301,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  			sizeof(struct seq_net_private)))
  		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:
  	return rc;
  out_ptype:
@@ -315,7 +315,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  out_dev:
  	remove_proc_entry("dev", net->proc_net);
  	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);
  
@@ -330,7 +330,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
 --- a/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)
  {
@@ -341,7 +341,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
 --- a/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)
  {
@@ -357,7 +357,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  			fib_triestat_seq_show, NULL))
  		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;
  
  out3:
@@ -385,7 +385,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  
 --- a/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)
  {
@@ -396,7 +396,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
  }
 --- a/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)
  {
diff --git a/target/linux/generic/hack-5.15/904-debloat_dma_buf.patch b/target/linux/generic/hack-5.15/904-debloat_dma_buf.patch
index b2fdc0991e..fc7cd20963 100644
--- a/target/linux/generic/hack-5.15/904-debloat_dma_buf.patch
+++ b/target/linux/generic/hack-5.15/904-debloat_dma_buf.patch
@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 
 --- a/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"
  
  config DMA_SHARED_BUFFER
@@ -63,16 +63,16 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
 +dma-shared-buffer-objs :=  $(dma-buf-objs-y)
 --- a/drivers/dma-buf/dma-buf.c
 +++ b/drivers/dma-buf/dma-buf.c
-@@ -1419,4 +1419,5 @@ static void __exit dma_buf_deinit(void)
- 	dma_buf_uninit_debugfs();
+@@ -1498,4 +1498,5 @@ static void __exit dma_buf_deinit(void)
  	kern_unmount(dma_buf_mnt);
+ 	dma_buf_uninit_sysfs_statistics();
  }
 -__exitcall(dma_buf_deinit);
 +module_exit(dma_buf_deinit);
 +MODULE_LICENSE("GPL");
 --- a/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);
  }
@@ -82,7 +82,7 @@ Signed-off-by: Felix Fietkau <nbd at nbd.name>
   * Perform scheduler related setup for a newly forked process p.
 --- a/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;
  	return memcpy(buffer, temp, sz);
  }
diff --git a/target/linux/generic/hack-5.15/920-device_tree_cmdline.patch b/target/linux/generic/hack-5.15/920-device_tree_cmdline.patch
index 27d4d7f1e5..287b85996d 100644
--- a/target/linux/generic/hack-5.15/920-device_tree_cmdline.patch
+++ b/target/linux/generic/hack-5.15/920-device_tree_cmdline.patch
@@ -1,6 +1,6 @@
 --- a/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);
  	if (p != NULL && l > 0)
  		strlcpy(data, p, min(l, COMMAND_LINE_SIZE));




More information about the lede-commits mailing list