generic: 6.12: manually rebuild hack patches

Manually rebuild hack patches:
 - 200-tools_portability.patch
 - 204-module_strip.patch
 - 210-darwin_scripts_include.patch
 - 251-kconfig.patch
 - 421-drivers-mtd-parsers-add-nvmem-support-to-cmdlinepart.patch
 - 610-net-page_pool-try-to-free-deferred-skbs-while-waitin.patch
 - 721-net-add-packet-mangeling.patch
 - 725-net-phy-aquantia-add-PHY_IDs-for-AQR112-variants.patch
 - 760-net-usb-r8152-add-LED-configuration-from-OF.patch
 - 800-GPIO-add-named-gpio-exports.patch
 - 901-debloat_sock_diag.patch
 - 902-debloat_proc.patch
 - 904-debloat_dma_buf.patch
 - 910-kobject_uevent.patch
 - 911-kobject_add_broadcast_uevent.patch
 - 930-Revert-Revert-Revert-driver-core-Set-fw_devlink-on-b.patch

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
[ improve commit title ]
Link: https://github.com/openwrt/openwrt/pull/16547
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This commit is contained in:
Mieczyslaw Nalewaj 2025-04-30 11:52:08 +02:00 committed by Christian Marangi
parent 5a7de563e0
commit a4cfd32917
No known key found for this signature in database
GPG key ID: AC001D09ADBFEAD7
15 changed files with 162 additions and 256 deletions

View file

@ -40,20 +40,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
# sysroots and flags or to avoid the GCC call in pure Clang builds. # sysroots and flags or to avoid the GCC call in pure Clang builds.
--- a/tools/include/linux/types.h --- a/tools/include/linux/types.h
+++ b/tools/include/linux/types.h +++ b/tools/include/linux/types.h
@@ -10,8 +10,12 @@ @@ -56,6 +56,7 @@ typedef __s8 s8;
#define __SANE_USERSPACE_TYPES__ /* For PPC64, to get LL64 types */
#endif
+#ifndef __linux__
+#include <tools/linux_types.h>
+#else
#include <asm/types.h>
#include <asm/posix_types.h>
+#endif
struct page;
struct kmem_cache;
@@ -56,6 +60,7 @@ typedef __s8 s8;
#define __user #define __user
#endif #endif
#define __must_check #define __must_check
@ -61,19 +48,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#define __cold #define __cold
typedef __u16 __bitwise __le16; typedef __u16 __bitwise __le16;
--- a/tools/lib/subcmd/exec-cmd.c
+++ b/tools/lib/subcmd/exec-cmd.c
@@ -12,7 +12,10 @@
#include "subcmd-config.h"
#define MAX_ARGS 32
+
+#ifndef PATH_MAX
#define PATH_MAX 4096
+#endif
static const char *argv_exec_path;
static const char *argv0_path;
--- a/tools/objtool/include/objtool/objtool.h --- a/tools/objtool/include/objtool/objtool.h
+++ b/tools/objtool/include/objtool/objtool.h +++ b/tools/objtool/include/objtool/objtool.h
@@ -12,6 +12,7 @@ @@ -12,6 +12,7 @@
@ -93,14 +67,14 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+#include <string.h> +#include <string.h>
+ +
/** /**
* fls - find last (most-significant) bit set * generic_fls - find last (most-significant) bit set
* @x: the word to search * @x: the word to search
@@ -10,6 +12,7 @@ @@ -10,6 +12,7 @@
* Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32. * Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32.
*/ */
+#define fls __linux_fls +#define generic_fls __linux_fls
static __always_inline int fls(unsigned int x) static __always_inline int generic_fls(unsigned int x)
{ {
int r = 32; int r = 32;
--- a/tools/lib/string.c --- a/tools/lib/string.c
@ -134,29 +108,24 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/tools/arch/x86/include/asm/orc_types.h --- a/tools/arch/x86/include/asm/orc_types.h
+++ b/tools/arch/x86/include/asm/orc_types.h +++ b/tools/arch/x86/include/asm/orc_types.h
@@ -46,7 +46,6 @@ @@ -46,7 +46,17 @@
#define ORC_TYPE_REGS_PARTIAL 4 #define ORC_TYPE_REGS_PARTIAL 4
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
-#include <asm/byteorder.h> +#ifdef __APPLE__
+#include <endian.h>
+
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+#define __LITTLE_ENDIAN_BITFIELD
+#elif __BYTE_ORDER == __BIG_ENDIAN
+#define __BIG_ENDIAN_BITFIELD
+#endif
+#else
#include <asm/byteorder.h>
+#endif
/* /*
* This struct is more or less a vastly simplified version of the DWARF Call * This struct is more or less a vastly simplified version of the DWARF Call
@@ -59,12 +58,12 @@
struct orc_entry {
s16 sp_offset;
s16 bp_offset;
-#if defined(__LITTLE_ENDIAN_BITFIELD)
+#if __BYTE_ORDER == __LITTLE_ENDIAN
unsigned sp_reg:4;
unsigned bp_reg:4;
unsigned type:3;
unsigned signal:1;
-#elif defined(__BIG_ENDIAN_BITFIELD)
+#elif __BYTE_ORDER == __BIG_ENDIAN
unsigned bp_reg:4;
unsigned sp_reg:4;
unsigned unused:4;
--- a/tools/include/linux/rbtree.h --- a/tools/include/linux/rbtree.h
+++ b/tools/include/linux/rbtree.h +++ b/tools/include/linux/rbtree.h
@@ -18,7 +18,6 @@ @@ -18,7 +18,6 @@
@ -167,53 +136,19 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
struct rb_node { struct rb_node {
unsigned long __rb_parent_color; unsigned long __rb_parent_color;
--- a/tools/include/tools/be_byteshift.h --- a/tools/lib/subcmd/exec-cmd.c
+++ b/tools/include/tools/be_byteshift.h +++ b/tools/lib/subcmd/exec-cmd.c
@@ -2,6 +2,10 @@ @@ -12,7 +12,10 @@
#ifndef _TOOLS_BE_BYTESHIFT_H #include "subcmd-config.h"
#define _TOOLS_BE_BYTESHIFT_H
+#ifndef __linux__ #define MAX_ARGS 32
+#include "linux_types.h" +
+#ifndef PATH_MAX
#define PATH_MAX 4096
+#endif +#endif
+
#include <stdint.h>
static inline uint16_t __get_unaligned_be16(const uint8_t *p) static const char *argv_exec_path;
--- a/tools/include/tools/le_byteshift.h static const char *argv0_path;
+++ b/tools/include/tools/le_byteshift.h
@@ -2,6 +2,10 @@
#ifndef _TOOLS_LE_BYTESHIFT_H
#define _TOOLS_LE_BYTESHIFT_H
+#ifndef __linux__
+#include "linux_types.h"
+#endif
+
#include <stdint.h>
static inline uint16_t __get_unaligned_le16(const uint8_t *p)
--- /dev/null
+++ b/tools/include/tools/linux_types.h
@@ -0,0 +1,18 @@
+#ifndef __LINUX_TYPES_H
+#define __LINUX_TYPES_H
+
+#include <stdint.h>
+
+typedef int8_t __s8;
+typedef uint8_t __u8;
+
+typedef int16_t __s16;
+typedef uint16_t __u16;
+
+typedef int32_t __s32;
+typedef uint32_t __u32;
+
+typedef int64_t __s64;
+typedef uint64_t __u64;
+
+#endif
--- a/tools/objtool/Makefile --- a/tools/objtool/Makefile
+++ b/tools/objtool/Makefile +++ b/tools/objtool/Makefile
@@ -39,6 +39,8 @@ OBJTOOL_LDFLAGS := $(LIBELF_LIBS) $(LIBS @@ -39,6 +39,8 @@ OBJTOOL_LDFLAGS := $(LIBELF_LIBS) $(LIBS
@ -225,40 +160,11 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
# Always want host compilation. # Always want host compilation.
HOST_OVERRIDES := CC="$(HOSTCC)" LD="$(HOSTLD)" AR="$(HOSTAR)" HOST_OVERRIDES := CC="$(HOSTCC)" LD="$(HOSTLD)" AR="$(HOSTAR)"
--- a/tools/objtool/orc_dump.c
+++ b/tools/objtool/orc_dump.c
@@ -4,10 +4,10 @@
*/
#include <unistd.h>
-#include <asm/orc_types.h>
#include <objtool/objtool.h>
#include <objtool/warn.h>
#include <objtool/endianness.h>
+#include <asm/orc_types.h>
static const char *reg_name(unsigned int reg)
{
--- a/tools/objtool/orc_gen.c
+++ b/tools/objtool/orc_gen.c
@@ -7,11 +7,11 @@
#include <string.h>
#include <linux/objtool_types.h>
-#include <asm/orc_types.h>
#include <objtool/check.h>
#include <objtool/warn.h>
#include <objtool/endianness.h>
+#include <asm/orc_types.h>
static int init_orc_entry(struct orc_entry *orc, struct cfi_state *cfi,
struct instruction *insn)
--- a/tools/arch/x86/lib/insn.c --- a/tools/arch/x86/lib/insn.c
+++ b/tools/arch/x86/lib/insn.c +++ b/tools/arch/x86/lib/insn.c
@@ -15,7 +15,11 @@ @@ -15,7 +15,11 @@
#include "../include/asm/insn.h" /* __ignore_sync_check__ */ #include "../include/asm/insn.h" /* __ignore_sync_check__ */
#include "../include/asm-generic/unaligned.h" /* __ignore_sync_check__ */ #include <linux/unaligned.h> /* __ignore_sync_check__ */
+#ifdef __KERNEL__ +#ifdef __KERNEL__
#include <linux/errno.h> #include <linux/errno.h>

View file

@ -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)
@@ -233,12 +234,12 @@ extern void cleanup_module(void); @@ -239,12 +240,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 \
@@ -265,7 +266,9 @@ extern typeof(name) __mod_##type##__##na @@ -271,7 +272,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); \
@@ -288,7 +291,7 @@ extern typeof(name) __mod_##type##__##na @@ -294,7 +297,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 */
@ -88,7 +88,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/kernel/module/Kconfig --- a/kernel/module/Kconfig
+++ b/kernel/module/Kconfig +++ b/kernel/module/Kconfig
@@ -389,4 +389,11 @@ config MODULES_TREE_LOOKUP @@ -401,4 +401,11 @@ config MODULES_TREE_LOOKUP
def_bool y def_bool y
depends on PERF_EVENTS || TRACING || CFI_CLANG depends on PERF_EVENTS || TRACING || CFI_CLANG
@ -102,7 +102,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
endif # MODULES endif # MODULES
--- a/kernel/module/main.c --- a/kernel/module/main.c
+++ b/kernel/module/main.c +++ b/kernel/module/main.c
@@ -997,6 +997,7 @@ size_t modinfo_attrs_count = ARRAY_SIZE( @@ -999,6 +999,7 @@ size_t modinfo_attrs_count = ARRAY_SIZE(
static const char vermagic[] = VERMAGIC_STRING; static const char vermagic[] = VERMAGIC_STRING;
@ -110,7 +110,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
int try_to_force_load(struct module *mod, const char *reason) int try_to_force_load(struct module *mod, const char *reason)
{ {
#ifdef CONFIG_MODULE_FORCE_LOAD #ifdef CONFIG_MODULE_FORCE_LOAD
@@ -1008,6 +1009,7 @@ int try_to_force_load(struct module *mod @@ -1010,6 +1011,7 @@ int try_to_force_load(struct module *mod
return -ENOEXEC; return -ENOEXEC;
#endif #endif
} }
@ -118,7 +118,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/* Parse tag=value strings from .modinfo section */ /* Parse tag=value strings from .modinfo section */
char *module_next_tag_pair(char *string, unsigned long *secsize) char *module_next_tag_pair(char *string, unsigned long *secsize)
@@ -2075,9 +2077,11 @@ static void module_augment_kernel_taints @@ -2093,9 +2095,11 @@ static void module_augment_kernel_taints
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)
{ {
@ -131,7 +131,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;
@@ -2091,6 +2095,7 @@ static int check_modinfo(struct module * @@ -2109,6 +2113,7 @@ static int check_modinfo(struct module *
info->name, modmagic, vermagic); info->name, modmagic, vermagic);
return -ENOEXEC; return -ENOEXEC;
} }
@ -141,7 +141,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (err) if (err)
--- a/scripts/mod/modpost.c --- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c
@@ -1666,7 +1666,9 @@ static void read_symbols(const char *mod @@ -1601,7 +1601,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);
@ -151,40 +151,31 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
} }
check_sec_ref(mod, &info); check_sec_ref(mod, &info);
@@ -1839,8 +1841,10 @@ static void add_header(struct buffer *b, @@ -1758,7 +1760,9 @@ static void add_header(struct buffer *b,
buf_printf(b, "BUILD_SALT;\n"); buf_printf(b, "#include <linux/export-internal.h>\n");
buf_printf(b, "BUILD_LTO_INFO;\n"); buf_printf(b, "#include <linux/compiler.h>\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(name, KBUILD_MODNAME);\n"); buf_printf(b, "MODULE_INFO(name, KBUILD_MODNAME);\n");
+#endif +#endif
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");
@@ -1854,8 +1858,10 @@ static void add_header(struct buffer *b, @@ -1772,11 +1776,13 @@ static void add_header(struct buffer *b,
buf_printf(b, "\t.arch = MODULE_ARCH_INIT,\n"); buf_printf(b, "\t.arch = MODULE_ARCH_INIT,\n");
buf_printf(b, "};\n"); buf_printf(b, "};\n");
+#ifndef CONFIG_MODULE_STRIPPED +#ifndef CONFIG_MODULE_STRIPPED
if (!external_module) if (!external_module)
buf_printf(b, "\nMODULE_INFO(intree, \"Y\");\n"); buf_printf(b, "\nMODULE_INFO(intree, \"Y\");\n");
+#endif
buf_printf(b,
"\n"
@@ -1863,8 +1869,10 @@ static void add_header(struct buffer *b,
"MODULE_INFO(retpoline, \"Y\");\n"
"#endif\n");
+#ifndef CONFIG_MODULE_STRIPPED
if (strstarts(mod->name, "drivers/staging")) if (strstarts(mod->name, "drivers/staging"))
buf_printf(b, "\nMODULE_INFO(staging, \"Y\");\n"); buf_printf(b, "\nMODULE_INFO(staging, \"Y\");\n");
+#endif +#endif
if (strstarts(mod->name, "tools/testing")) if (strstarts(mod->name, "tools/testing"))
buf_printf(b, "\nMODULE_INFO(test, \"Y\");\n"); buf_printf(b, "\nMODULE_INFO(test, \"Y\");\n");
@@ -1974,11 +1982,13 @@ static void add_depends(struct buffer *b @@ -1886,11 +1892,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)
{ {
@ -198,7 +189,7 @@ 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)
@@ -2061,7 +2071,9 @@ static void write_mod_c_file(struct modu @@ -1973,7 +1981,9 @@ static void write_mod_c_file(struct modu
add_exported_symbols(&buf, mod); add_exported_symbols(&buf, mod);
add_versions(&buf, mod); add_versions(&buf, mod);
add_depends(&buf, mod); add_depends(&buf, mod);

View file

@ -3039,7 +3039,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
main(int argc, char **argv) main(int argc, char **argv)
--- a/scripts/mod/modpost.h --- a/scripts/mod/modpost.h
+++ b/scripts/mod/modpost.h +++ b/scripts/mod/modpost.h
@@ -9,7 +9,11 @@ @@ -10,7 +10,11 @@
#include <sys/mman.h> #include <sys/mman.h>
#include <fcntl.h> #include <fcntl.h>
#include <unistd.h> #include <unistd.h>
@ -3050,4 +3050,4 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+#endif +#endif
#include "../../include/linux/module_symbol.h" #include "../../include/linux/module_symbol.h"
#include "list.h" #include <list_types.h>

View file

@ -25,9 +25,9 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
#include <linux/err.h> #include <linux/err.h>
+#include <linux/of.h> +#include <linux/of.h>
/* debug macro */ /* special size referring to all the remaining space in a partition */
#if 0 #define SIZE_REMAINING ULLONG_MAX
@@ -323,6 +324,68 @@ static int mtdpart_setup_real(char *s) @@ -315,6 +316,68 @@ static int mtdpart_setup_real(char *s)
return 0; return 0;
} }
@ -96,7 +96,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
/* /*
* Main function to be called from the MTD mapping driver/device to * Main function to be called from the MTD mapping driver/device to
* obtain the partitioning information. At this point the command line * obtain the partitioning information. At this point the command line
@@ -338,6 +401,7 @@ static int parse_cmdline_partitions(stru @@ -330,6 +393,7 @@ static int parse_cmdline_partitions(stru
int i, err; int i, err;
struct cmdline_mtd_partition *part; struct cmdline_mtd_partition *part;
const char *mtd_id = master->name; const char *mtd_id = master->name;
@ -104,7 +104,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
/* parse command line */ /* parse command line */
if (!cmdline_parsed) { if (!cmdline_parsed) {
@@ -382,6 +446,13 @@ static int parse_cmdline_partitions(stru @@ -374,6 +438,13 @@ static int parse_cmdline_partitions(stru
sizeof(*part->parts) * (part->num_parts - i)); sizeof(*part->parts) * (part->num_parts - i));
i--; i--;
} }

View file

@ -16,15 +16,17 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/core/page_pool.c --- a/net/core/page_pool.c
+++ b/net/core/page_pool.c +++ b/net/core/page_pool.c
@@ -873,12 +873,23 @@ static void page_pool_release_retry(stru @@ -1063,7 +1063,7 @@ static void page_pool_release_retry(stru
{
struct delayed_work *dwq = to_delayed_work(wq); struct delayed_work *dwq = to_delayed_work(wq);
struct page_pool *pool = container_of(dwq, typeof(*pool), release_dw); struct page_pool *pool = container_of(dwq, typeof(*pool), release_dw);
void *netdev;
- int inflight; - int inflight;
+ int cpu, inflight; + int cpu, inflight;
inflight = page_pool_release(pool); inflight = page_pool_release(pool);
if (!inflight) /* In rare cases, a driver bug may cause inflight to go negative.
@@ -1075,6 +1075,17 @@ static void page_pool_release_retry(stru
if (inflight <= 0)
return; return;
+ /* Run NET_RX_SOFTIRQ in order to free pending skbs in softnet_data + /* Run NET_RX_SOFTIRQ in order to free pending skbs in softnet_data
@ -38,6 +40,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+ smp_call_function_single_async(cpu, &sd->defer_csd); + smp_call_function_single_async(cpu, &sd->defer_csd);
+ } + }
+ +
/* Periodic warning */ /* Periodic warning for page pools the user can't see */
if (time_after_eq(jiffies, pool->defer_warn)) { netdev = READ_ONCE(pool->slow.netdev);
int sec = (s32)((u32)jiffies - (u32)pool->defer_start) / HZ; if (time_after_eq(jiffies, pool->defer_warn) &&

View file

@ -9,33 +9,25 @@ packets.
Signed-off-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- ---
include/linux/netdevice.h | 11 +++++++++++ include/linux/netdevice.h | 10 ++++++++++
include/linux/skbuff.h | 14 ++++---------- include/linux/skbuff.h | 14 ++++----------
net/Kconfig | 6 ++++++ net/Kconfig | 6 ++++++
net/core/dev.c | 20 +++++++++++++++----- net/core/dev.c | 20 +++++++++++++++-----
net/core/skbuff.c | 17 +++++++++++++++++ net/core/skbuff.c | 17 +++++++++++++++++
net/ethernet/eth.c | 6 ++++++ net/ethernet/eth.c | 6 ++++++
6 files changed, 59 insertions(+), 15 deletions(-) 6 files changed, 58 insertions(+), 15 deletions(-)
--- a/include/linux/netdevice.h --- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h +++ b/include/linux/netdevice.h
@@ -1758,6 +1758,7 @@ enum netdev_priv_flags { @@ -1687,6 +1687,7 @@ enum netdev_priv_flags {
IFF_L3MDEV_RX_HANDLER = 1<<29,
IFF_NO_ADDRCONF = BIT_ULL(30),
IFF_TX_SKB_NO_LINEAR = BIT_ULL(31), IFF_TX_SKB_NO_LINEAR = BIT_ULL(31),
IFF_CHANGE_PROTO_DOWN = BIT_ULL(32), + IFF_NO_IP_ALIGN = BIT_ULL(32),
IFF_SEE_ALL_HWTSTAMP_REQUESTS = BIT_ULL(33),
+ IFF_NO_IP_ALIGN = BIT_ULL(34),
}; };
#define IFF_802_1Q_VLAN IFF_802_1Q_VLAN
@@ -1791,6 +1792,7 @@ enum netdev_priv_flags {
#define IFF_FAILOVER_SLAVE IFF_FAILOVER_SLAVE
#define IFF_L3MDEV_RX_HANDLER IFF_L3MDEV_RX_HANDLER
#define IFF_TX_SKB_NO_LINEAR IFF_TX_SKB_NO_LINEAR
+#define IFF_NO_IP_ALIGN IFF_NO_IP_ALIGN
/* 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 { @@ -2168,6 +2169,11 @@ struct net_device {
@@ -2183,6 +2185,11 @@ struct net_device {
const struct tlsdev_ops *tlsdev_ops; const struct tlsdev_ops *tlsdev_ops;
#endif #endif
@ -44,10 +36,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+ struct sk_buff *(*eth_mangle_tx)(struct net_device *dev, struct sk_buff *skb); + struct sk_buff *(*eth_mangle_tx)(struct net_device *dev, struct sk_buff *skb);
+#endif +#endif
+ +
const struct header_ops *header_ops; unsigned int operstate;
unsigned char link_mode;
unsigned char operstate; @@ -2237,6 +2243,10 @@ struct net_device {
@@ -2256,6 +2263,10 @@ struct net_device {
struct mctp_dev __rcu *mctp_ptr; struct mctp_dev __rcu *mctp_ptr;
#endif #endif
@ -60,7 +52,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
@@ -3095,6 +3095,10 @@ static inline int pskb_trim(struct sk_bu @@ -3213,6 +3213,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;
} }
@ -71,7 +63,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
@@ -3260,16 +3264,6 @@ static inline struct sk_buff *dev_alloc_ @@ -3378,16 +3382,6 @@ static inline struct sk_buff *dev_alloc_
} }
@ -105,7 +97,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
@@ -3628,6 +3628,11 @@ static int xmit_one(struct sk_buff *skb, @@ -3646,6 +3646,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);
@ -119,17 +111,17 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
rc = netdev_start_xmit(skb, dev, txq, more); rc = netdev_start_xmit(skb, dev, txq, more);
--- a/net/core/skbuff.c --- a/net/core/skbuff.c
+++ b/net/core/skbuff.c +++ b/net/core/skbuff.c
@@ -62,6 +62,7 @@ @@ -64,6 +64,7 @@
#include <linux/if_vlan.h>
#include <linux/mpls.h> #include <linux/mpls.h>
#include <linux/kcov.h> #include <linux/kcov.h>
#include <linux/iov_iter.h>
+#include <linux/if.h> +#include <linux/if.h>
#include <net/protocol.h> #include <net/protocol.h>
#include <net/dst.h> #include <net/dst.h>
@@ -844,6 +845,22 @@ skb_fail: @@ -326,6 +327,22 @@ void *__napi_alloc_frag_align(unsigned i
} }
EXPORT_SYMBOL(__napi_alloc_skb); EXPORT_SYMBOL(__napi_alloc_frag_align);
+struct sk_buff *__netdev_alloc_skb_ip_align(struct net_device *dev, +struct sk_buff *__netdev_alloc_skb_ip_align(struct net_device *dev,
+ unsigned int length, gfp_t gfp) + unsigned int length, gfp_t gfp)
@ -147,9 +139,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+} +}
+EXPORT_SYMBOL(__netdev_alloc_skb_ip_align); +EXPORT_SYMBOL(__netdev_alloc_skb_ip_align);
+ +
void skb_add_rx_frag(struct sk_buff *skb, int i, struct page *page, int off, void *__netdev_alloc_frag_align(unsigned int fragsz, unsigned int align_mask)
int size, unsigned int truesize)
{ {
void *data;
--- a/net/ethernet/eth.c --- a/net/ethernet/eth.c
+++ b/net/ethernet/eth.c +++ b/net/ethernet/eth.c
@@ -159,6 +159,12 @@ __be16 eth_type_trans(struct sk_buff *sk @@ -159,6 +159,12 @@ __be16 eth_type_trans(struct sk_buff *sk
@ -164,4 +156,4 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+ +
skb_reset_mac_header(skb); skb_reset_mac_header(skb);
eth = (struct ethhdr *)skb->data; eth = eth_skb_pull_mac(skb);

View file

@ -12,16 +12,16 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/net/phy/aquantia/aquantia_main.c --- a/drivers/net/phy/aquantia/aquantia_main.c
+++ b/drivers/net/phy/aquantia/aquantia_main.c +++ b/drivers/net/phy/aquantia/aquantia_main.c
@@ -31,6 +31,8 @@ @@ -32,6 +32,8 @@
#define PHY_ID_AQR113C 0x31c31c12
#define PHY_ID_AQR114C 0x31c31c22 #define PHY_ID_AQR114C 0x31c31c22
#define PHY_ID_AQR115C 0x31c31c33
#define PHY_ID_AQR813 0x31c31cb2 #define PHY_ID_AQR813 0x31c31cb2
+#define PHY_ID_AQR112C 0x03a1b790 +#define PHY_ID_AQR112C 0x03a1b790
+#define PHY_ID_AQR112R 0x31c31d12 +#define PHY_ID_AQR112R 0x31c31d12
#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)
@@ -1061,6 +1063,30 @@ static struct phy_driver aqr_driver[] = @@ -1205,6 +1207,30 @@ static struct phy_driver aqr_driver[] =
.led_hw_control_get = aqr_phy_led_hw_control_get, .led_hw_control_get = aqr_phy_led_hw_control_get,
.led_polarity_set = aqr_phy_led_polarity_set, .led_polarity_set = aqr_phy_led_polarity_set,
}, },
@ -52,9 +52,9 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
}; };
module_phy_driver(aqr_driver); module_phy_driver(aqr_driver);
@@ -1081,6 +1107,8 @@ static struct mdio_device_id __maybe_unu @@ -1226,6 +1252,8 @@ static struct mdio_device_id __maybe_unu
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR113C) },
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR114C) }, { PHY_ID_MATCH_MODEL(PHY_ID_AQR114C) },
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR115C) },
{ PHY_ID_MATCH_MODEL(PHY_ID_AQR813) }, { PHY_ID_MATCH_MODEL(PHY_ID_AQR813) },
+ { PHY_ID_MATCH_MODEL(PHY_ID_AQR112C) }, + { PHY_ID_MATCH_MODEL(PHY_ID_AQR112C) },
+ { PHY_ID_MATCH_MODEL(PHY_ID_AQR112R) }, + { PHY_ID_MATCH_MODEL(PHY_ID_AQR112R) },

View file

@ -14,15 +14,15 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
--- a/drivers/net/usb/r8152.c --- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c
@@ -11,6 +11,7 @@ @@ -12,6 +12,7 @@
#include <linux/mii.h>
#include <linux/ethtool.h> #include <linux/ethtool.h>
#include <linux/phy.h>
#include <linux/usb.h> #include <linux/usb.h>
+#include <linux/of.h> +#include <linux/of.h>
#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>
@@ -7044,6 +7045,22 @@ static void rtl_tally_reset(struct r8152 @@ -7047,6 +7048,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;
@@ -7085,6 +7102,8 @@ static void r8152b_init(struct r8152 *tp @@ -7088,6 +7105,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)
@@ -7225,6 +7244,8 @@ static void r8153_init(struct r8152 *tp) @@ -7228,6 +7247,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)
@@ -7307,6 +7328,8 @@ static void r8153b_init(struct r8152 *tp @@ -7310,6 +7331,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 */

View file

@ -15,7 +15,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
#include "gpiolib.h" #include "gpiolib.h"
#include "gpiolib-of.h" #include "gpiolib-of.h"
@@ -1129,3 +1131,73 @@ void of_gpiochip_remove(struct gpio_chip @@ -1189,3 +1191,73 @@ void of_gpiochip_remove(struct gpio_chip
{ {
of_node_put(dev_of_node(&chip->gpiodev->dev)); of_node_put(dev_of_node(&chip->gpiodev->dev));
} }
@ -91,7 +91,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+#endif +#endif
--- a/include/linux/gpio/consumer.h --- a/include/linux/gpio/consumer.h
+++ b/include/linux/gpio/consumer.h +++ b/include/linux/gpio/consumer.h
@@ -644,7 +644,10 @@ static inline struct gpio_desc *acpi_get @@ -628,7 +628,10 @@ static inline int devm_acpi_dev_add_driv
#if IS_ENABLED(CONFIG_GPIOLIB) && IS_ENABLED(CONFIG_GPIO_SYSFS) #if IS_ENABLED(CONFIG_GPIOLIB) && IS_ENABLED(CONFIG_GPIO_SYSFS)
@ -102,7 +102,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
int gpiod_export_link(struct device *dev, const char *name, int gpiod_export_link(struct device *dev, const char *name,
struct gpio_desc *desc); struct gpio_desc *desc);
void gpiod_unexport(struct gpio_desc *desc); void gpiod_unexport(struct gpio_desc *desc);
@@ -653,11 +656,25 @@ void gpiod_unexport(struct gpio_desc *de @@ -637,11 +640,25 @@ void gpiod_unexport(struct gpio_desc *de
#include <asm/errno.h> #include <asm/errno.h>
@ -130,25 +130,25 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
struct gpio_desc *desc) struct gpio_desc *desc)
--- a/drivers/gpio/gpiolib-sysfs.c --- a/drivers/gpio/gpiolib-sysfs.c
+++ b/drivers/gpio/gpiolib-sysfs.c +++ b/drivers/gpio/gpiolib-sysfs.c
@@ -558,7 +558,7 @@ static struct class gpio_class = { @@ -571,7 +571,7 @@ static struct class gpio_class = {
* * Returns:
* Returns zero on success, else an error. * 0 on success, or negative errno on failure.
*/ */
-int gpiod_export(struct gpio_desc *desc, bool direction_may_change) -int gpiod_export(struct gpio_desc *desc, bool direction_may_change)
+int __gpiod_export(struct gpio_desc *desc, bool direction_may_change, const char *name) +int __gpiod_export(struct gpio_desc *desc, bool direction_may_change, const char *name)
{ {
struct gpio_chip *chip; const char *ioname = NULL;
struct gpio_device *gdev; struct gpio_device *gdev;
@@ -620,6 +620,8 @@ int gpiod_export(struct gpio_desc *desc, @@ -629,6 +629,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 (guard.gc->names && guard.gc->names[offset])
ioname = chip->names[offset]; ioname = guard.gc->names[offset];
+ if (name) + if (name)
+ ioname = name; + ioname = name;
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,
@@ -641,8 +643,21 @@ err_unlock: @@ -650,8 +652,21 @@ err_unlock:
gpiod_dbg(desc, "%s: status %d\n", __func__, status); gpiod_dbg(desc, "%s: status %d\n", __func__, status);
return status; return status;
} }

View file

@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/Kconfig --- a/net/Kconfig
+++ b/net/Kconfig +++ b/net/Kconfig
@@ -129,6 +129,9 @@ source "net/mptcp/Kconfig" @@ -138,6 +138,9 @@ source "net/mptcp/Kconfig"
endif # if INET endif # if INET
@ -41,8 +41,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+obj-$(CONFIG_SOCK_DIAG) += sock_diag.o +obj-$(CONFIG_SOCK_DIAG) += sock_diag.o
obj-y += net-sysfs.o obj-y += net-sysfs.o
obj-$(CONFIG_PAGE_POOL) += page_pool.o obj-y += hotdata.o
obj-$(CONFIG_PROC_FS) += net-procfs.o obj-y += netdev_rx_queue.o
--- a/net/core/sock.c --- a/net/core/sock.c
+++ b/net/core/sock.c +++ b/net/core/sock.c
@@ -118,6 +118,7 @@ @@ -118,6 +118,7 @@
@ -53,7 +53,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#include <linux/uaccess.h> #include <linux/uaccess.h>
@@ -150,6 +151,7 @@ @@ -152,6 +153,7 @@
static DEFINE_MUTEX(proto_list_mutex); static DEFINE_MUTEX(proto_list_mutex);
static LIST_HEAD(proto_list); static LIST_HEAD(proto_list);
@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static void sock_def_write_space_wfree(struct sock *sk); static void sock_def_write_space_wfree(struct sock *sk);
static void sock_def_write_space(struct sock *sk); static void sock_def_write_space(struct sock *sk);
@@ -590,6 +592,21 @@ discard_and_relse: @@ -587,6 +589,21 @@ discard_and_relse:
} }
EXPORT_SYMBOL(__sk_receive_skb); EXPORT_SYMBOL(__sk_receive_skb);
@ -83,7 +83,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 *,
@@ -2242,9 +2259,11 @@ static void __sk_free(struct sock *sk) @@ -2326,9 +2343,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);
@ -161,7 +161,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
@@ -29,6 +29,7 @@ config AF_UNIX_OOB @@ -24,6 +24,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

View file

@ -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
@@ -2895,6 +2895,8 @@ static const struct seq_operations locks @@ -2971,6 +2971,8 @@ static const struct seq_operations locks
static int __init proc_locks_init(void) static int __init proc_locks_init(void)
{ {
@ -54,7 +54,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
depends on PROC_FS depends on PROC_FS
--- a/fs/proc/consoles.c --- a/fs/proc/consoles.c
+++ b/fs/proc/consoles.c +++ b/fs/proc/consoles.c
@@ -107,6 +107,9 @@ static const struct seq_operations conso @@ -110,6 +110,9 @@ static const struct seq_operations conso
static int __init proc_consoles_init(void) static int __init proc_consoles_init(void)
{ {
@ -158,7 +158,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
IPC_SEM_IDS, sysvipc_sem_proc_show); IPC_SEM_IDS, sysvipc_sem_proc_show);
--- a/ipc/shm.c --- a/ipc/shm.c
+++ b/ipc/shm.c +++ b/ipc/shm.c
@@ -154,6 +154,8 @@ pure_initcall(ipc_ns_init); @@ -155,6 +155,8 @@ pure_initcall(ipc_ns_init);
void __init shm_init(void) void __init shm_init(void)
{ {
@ -192,7 +192,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
} }
--- a/kernel/irq/proc.c --- a/kernel/irq/proc.c
+++ b/kernel/irq/proc.c +++ b/kernel/irq/proc.c
@@ -341,6 +341,9 @@ void register_irq_proc(unsigned int irq, @@ -339,6 +339,9 @@ void register_irq_proc(unsigned int irq,
void __maybe_unused *irqp = (void *)(unsigned long) irq; void __maybe_unused *irqp = (void *)(unsigned long) irq;
char name [MAX_NAMELEN]; char name [MAX_NAMELEN];
@ -202,7 +202,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!root_irq_dir || (desc->irq_data.chip == &no_irq_chip)) if (!root_irq_dir || (desc->irq_data.chip == &no_irq_chip))
return; return;
@@ -394,6 +397,9 @@ void unregister_irq_proc(unsigned int ir @@ -397,6 +400,9 @@ void unregister_irq_proc(unsigned int ir
{ {
char name [MAX_NAMELEN]; char name [MAX_NAMELEN];
@ -212,7 +212,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!root_irq_dir || !desc->dir) if (!root_irq_dir || !desc->dir)
return; return;
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
@@ -432,6 +438,9 @@ void init_irq_proc(void) @@ -435,6 +441,9 @@ void init_irq_proc(void)
unsigned int irq; unsigned int irq;
struct irq_desc *desc; struct irq_desc *desc;
@ -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
@@ -350,6 +350,8 @@ static int __init init_timer_list_procfs @@ -354,6 +354,8 @@ static int __init init_timer_list_procfs
{ {
struct proc_dir_entry *pe; struct proc_dir_entry *pe;
@ -235,18 +235,18 @@ 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
@@ -4450,6 +4450,8 @@ static const struct seq_operations vmall @@ -5034,6 +5034,8 @@ static int __init proc_vmalloc_init(void
static int __init proc_vmalloc_init(void)
{ {
void *priv_data = NULL;
+ if (IS_ENABLED(CONFIG_PROC_STRIPPED)) + if (IS_ENABLED(CONFIG_PROC_STRIPPED))
+ return 0; + return 0;
if (IS_ENABLED(CONFIG_NUMA)) if (IS_ENABLED(CONFIG_NUMA))
proc_create_seq_private("vmallocinfo", 0400, NULL, priv_data = kmalloc(nr_node_ids * sizeof(unsigned int), GFP_KERNEL);
&vmalloc_op,
--- a/mm/vmstat.c --- a/mm/vmstat.c
+++ b/mm/vmstat.c +++ b/mm/vmstat.c
@@ -2136,10 +2136,12 @@ void __init init_mm_internals(void) @@ -2195,10 +2195,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
@@ -327,10 +327,12 @@ static int __net_init dev_proc_net_init( @@ -295,10 +295,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;
@@ -340,9 +342,11 @@ static int __net_init dev_proc_net_init( @@ -308,9 +310,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;
@@ -352,8 +356,10 @@ static void __net_exit dev_proc_net_exit @@ -320,8 +324,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
@@ -4143,6 +4143,8 @@ static __net_initdata struct pernet_oper @@ -4256,6 +4256,8 @@ static __net_initdata struct pernet_oper
static int __init proto_init(void) static int __init proto_init(void)
{ {
@ -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
@@ -557,5 +557,8 @@ static __net_initdata struct pernet_oper @@ -563,5 +563,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
@@ -381,6 +381,9 @@ static struct pernet_operations ip_rt_pr @@ -378,6 +378,9 @@ static struct pernet_operations ip_rt_pr
static int __init ip_rt_proc_init(void) static int __init ip_rt_proc_init(void)
{ {
@ -408,7 +408,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/ipv4/inet_timewait_sock.c --- a/net/ipv4/inet_timewait_sock.c
+++ b/net/ipv4/inet_timewait_sock.c +++ b/net/ipv4/inet_timewait_sock.c
@@ -266,7 +266,7 @@ void __inet_twsk_schedule(struct inet_ti @@ -296,7 +296,7 @@ void __inet_twsk_schedule(struct inet_ti
*/ */
if (!rearm) { if (!rearm) {

View file

@ -9,7 +9,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/dma-buf/Makefile | 10 +++++++--- drivers/dma-buf/Makefile | 10 +++++++---
drivers/dma-buf/dma-buf.c | 4 +++- drivers/dma-buf/dma-buf.c | 4 +++-
kernel/sched/core.c | 1 + kernel/sched/core.c | 1 +
4 files changed, 12 insertions(+), 5 deletions(-) net/Kconfig | 2 +-
5 files changed, 13 insertions(+), 6 deletions(-)
--- a/drivers/base/Kconfig --- a/drivers/base/Kconfig
+++ b/drivers/base/Kconfig +++ b/drivers/base/Kconfig
@ -64,7 +65,7 @@ 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
@@ -1731,4 +1731,5 @@ static void __exit dma_buf_deinit(void) @@ -1743,4 +1743,5 @@ static void __exit dma_buf_deinit(void)
kern_unmount(dma_buf_mnt); kern_unmount(dma_buf_mnt);
dma_buf_uninit_sysfs_statistics(); dma_buf_uninit_sysfs_statistics();
} }
@ -73,7 +74,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+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
@@ -4486,6 +4486,7 @@ int wake_up_state(struct task_struct *p, @@ -4422,6 +4422,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);
} }
@ -91,3 +92,14 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
char *simple_dname(struct dentry *dentry, char *buffer, int buflen) char *simple_dname(struct dentry *dentry, char *buffer, int buflen)
{ {
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -74,7 +74,7 @@ config SKB_EXTENSIONS
config NET_DEVMEM
def_bool y
- depends on DMA_SHARED_BUFFER
+ depends on DMA_SHARED_BUFFER=y
depends on GENERIC_ALLOCATOR
depends on PAGE_POOL

View file

@ -5,25 +5,28 @@ Subject: lib: add uevent_next_seqnum()
Signed-off-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- ---
include/linux/kobject.h | 5 +++++ include/linux/kobject.h | 2 ++
lib/kobject_uevent.c | 37 +++++++++++++++++++++++++++++++++++++ lib/kobject_uevent.c | 6 ++++++
2 files changed, 42 insertions(+) 2 files changed, 8 insertions(+)
--- a/include/linux/kobject.h
+++ b/include/linux/kobject.h
@@ -219,4 +219,6 @@ int kobject_synth_uevent(struct kobject
__printf(2, 3)
int add_uevent_var(struct kobj_uevent_env *env, const char *format, ...);
+u64 uevent_next_seqnum(void);
+
#endif /* _KOBJECT_H_ */
--- a/lib/kobject_uevent.c --- a/lib/kobject_uevent.c
+++ b/lib/kobject_uevent.c +++ b/lib/kobject_uevent.c
@@ -179,6 +179,18 @@ out: @@ -178,6 +178,12 @@ out:
return r; return r;
} }
+u64 uevent_next_seqnum(void) +u64 uevent_next_seqnum(void)
+{ +{
+ u64 seq; + return atomic64_inc_return(&uevent_seqnum);
+
+ mutex_lock(&uevent_sock_mutex);
+ seq = ++uevent_seqnum;
+ mutex_unlock(&uevent_sock_mutex);
+
+ return seq;
+} +}
+EXPORT_SYMBOL_GPL(uevent_next_seqnum); +EXPORT_SYMBOL_GPL(uevent_next_seqnum);
+ +

View file

@ -20,9 +20,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#ifdef CONFIG_UEVENT_HELPER #ifdef CONFIG_UEVENT_HELPER
/* path to the userspace helper executed on an event */ /* path to the userspace helper executed on an event */
extern char uevent_helper[]; extern char uevent_helper[];
@@ -219,4 +221,7 @@ int kobject_synth_uevent(struct kobject @@ -221,4 +223,7 @@ int add_uevent_var(struct kobj_uevent_en
__printf(2, 3)
int add_uevent_var(struct kobj_uevent_env *env, const char *format, ...); u64 uevent_next_seqnum(void);
+int broadcast_uevent(struct sk_buff *skb, __u32 pid, __u32 group, +int broadcast_uevent(struct sk_buff *skb, __u32 pid, __u32 group,
+ gfp_t allocation); + gfp_t allocation);
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#endif /* _KOBJECT_H_ */ #endif /* _KOBJECT_H_ */
--- a/lib/kobject_uevent.c --- a/lib/kobject_uevent.c
+++ b/lib/kobject_uevent.c +++ b/lib/kobject_uevent.c
@@ -706,6 +706,43 @@ int add_uevent_var(struct kobj_uevent_en @@ -699,6 +699,43 @@ int add_uevent_var(struct kobj_uevent_en
EXPORT_SYMBOL_GPL(add_uevent_var); EXPORT_SYMBOL_GPL(add_uevent_var);
#if defined(CONFIG_NET) #if defined(CONFIG_NET)

View file

@ -19,11 +19,11 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
--- a/drivers/base/core.c --- a/drivers/base/core.c
+++ b/drivers/base/core.c +++ b/drivers/base/core.c
@@ -1658,7 +1658,7 @@ static void device_links_purge(struct de @@ -1653,7 +1653,7 @@ static void device_links_purge(struct de
#define FW_DEVLINK_FLAGS_RPM (FW_DEVLINK_FLAGS_ON | \ #define FW_DEVLINK_FLAGS_RPM (FW_DEVLINK_FLAGS_ON | \
DL_FLAG_PM_RUNTIME) DL_FLAG_PM_RUNTIME)
-static u32 fw_devlink_flags = FW_DEVLINK_FLAGS_ON; -static u32 fw_devlink_flags = FW_DEVLINK_FLAGS_RPM;
+static u32 fw_devlink_flags = FW_DEVLINK_FLAGS_PERMISSIVE; +static u32 fw_devlink_flags = FW_DEVLINK_FLAGS_PERMISSIVE;
static int __init fw_devlink_setup(char *arg) static int __init fw_devlink_setup(char *arg)
{ {