generic: 6.1: refresh pending patches

Refresh pending patches with make target/linux/refresh.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This commit is contained in:
Christian Marangi 2023-05-22 18:07:49 +02:00
parent aa56d00aa6
commit 4ed347aaad
No known key found for this signature in database
GPG key ID: AC001D09ADBFEAD7
98 changed files with 348 additions and 374 deletions

View file

@ -11,16 +11,16 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/include/linux/compiler.h --- a/include/linux/compiler.h
+++ b/include/linux/compiler.h +++ b/include/linux/compiler.h
@@ -220,6 +220,8 @@ void ftrace_likely_update(struct ftrace_ @@ -203,6 +203,8 @@ void ftrace_likely_update(struct ftrace_
#define function_nocfi(x) (x) __v; \
#endif })
+#include <asm/rwonce.h> +#include <asm/rwonce.h>
+ +
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
/* /*
@@ -252,6 +254,4 @@ static inline void *offset_to_ptr(const @@ -243,6 +245,4 @@ static inline void *offset_to_ptr(const
*/ */
#define prevent_tail_call_optimization() mb() #define prevent_tail_call_optimization() mb()

View file

@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/arch/mips/kernel/process.c --- a/arch/mips/kernel/process.c
+++ b/arch/mips/kernel/process.c +++ b/arch/mips/kernel/process.c
@@ -393,6 +393,8 @@ static inline int is_sp_move_ins(union m @@ -394,6 +394,8 @@ static inline int is_sp_move_ins(union m
if (ip->i_format.opcode == addiu_op || if (ip->i_format.opcode == addiu_op ||
ip->i_format.opcode == daddiu_op) { ip->i_format.opcode == daddiu_op) {

View file

@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -523,7 +523,7 @@ KBUILD_LDFLAGS_MODULE := @@ -606,7 +606,7 @@ endif
# Allows the usage of unstable features in stable compilers. # Allows the usage of unstable features in stable compilers.
export RUSTC_BOOTSTRAP := 1 export RUSTC_BOOTSTRAP := 1

View file

@ -14,7 +14,7 @@ Signed-off-by: Vincent Tremblay <vincent@vtremblay.dev>
--- a/drivers/spi/spidev.c --- a/drivers/spi/spidev.c
+++ b/drivers/spi/spidev.c +++ b/drivers/spi/spidev.c
@@ -691,6 +691,7 @@ static const struct spi_device_id spidev @@ -700,6 +700,7 @@ static const struct spi_device_id spidev
{ .name = "m53cpld" }, { .name = "m53cpld" },
{ .name = "spi-petra" }, { .name = "spi-petra" },
{ .name = "spi-authenta" }, { .name = "spi-authenta" },
@ -22,7 +22,7 @@ Signed-off-by: Vincent Tremblay <vincent@vtremblay.dev>
{}, {},
}; };
MODULE_DEVICE_TABLE(spi, spidev_spi_ids); MODULE_DEVICE_TABLE(spi, spidev_spi_ids);
@@ -705,6 +706,7 @@ static const struct of_device_id spidev_ @@ -726,6 +727,7 @@ static const struct of_device_id spidev_
{ .compatible = "menlo,m53cpld", .data = &spidev_of_check }, { .compatible = "menlo,m53cpld", .data = &spidev_of_check },
{ .compatible = "cisco,spi-petra", .data = &spidev_of_check }, { .compatible = "cisco,spi-petra", .data = &spidev_of_check },
{ .compatible = "micron,spi-authenta", .data = &spidev_of_check }, { .compatible = "micron,spi-authenta", .data = &spidev_of_check },

View file

@ -14,7 +14,7 @@ Signed-off-by: Vincent Tremblay <vincent@vtremblay.dev>
--- a/drivers/spi/spidev.c --- a/drivers/spi/spidev.c
+++ b/drivers/spi/spidev.c +++ b/drivers/spi/spidev.c
@@ -692,6 +692,7 @@ static const struct spi_device_id spidev @@ -701,6 +701,7 @@ static const struct spi_device_id spidev
{ .name = "spi-petra" }, { .name = "spi-petra" },
{ .name = "spi-authenta" }, { .name = "spi-authenta" },
{ .name = "em3581" }, { .name = "em3581" },
@ -22,7 +22,7 @@ Signed-off-by: Vincent Tremblay <vincent@vtremblay.dev>
{}, {},
}; };
MODULE_DEVICE_TABLE(spi, spidev_spi_ids); MODULE_DEVICE_TABLE(spi, spidev_spi_ids);
@@ -707,6 +708,7 @@ static const struct of_device_id spidev_ @@ -728,6 +729,7 @@ static const struct of_device_id spidev_
{ .compatible = "cisco,spi-petra", .data = &spidev_of_check }, { .compatible = "cisco,spi-petra", .data = &spidev_of_check },
{ .compatible = "micron,spi-authenta", .data = &spidev_of_check }, { .compatible = "micron,spi-authenta", .data = &spidev_of_check },
{ .compatible = "silabs,em3581", .data = &spidev_of_check }, { .compatible = "silabs,em3581", .data = &spidev_of_check },

View file

@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
--- a/mm/page_alloc.c --- a/mm/page_alloc.c
+++ b/mm/page_alloc.c +++ b/mm/page_alloc.c
@@ -7556,7 +7556,7 @@ static void __init alloc_node_mem_map(st @@ -7911,7 +7911,7 @@ static void __init alloc_node_mem_map(st
if (pgdat == NODE_DATA(0)) { if (pgdat == NODE_DATA(0)) {
mem_map = NODE_DATA(0)->node_mem_map; mem_map = NODE_DATA(0)->node_mem_map;
if (page_to_pfn(mem_map) != pgdat->node_start_pfn) if (page_to_pfn(mem_map) != pgdat->node_start_pfn)

View file

@ -26,7 +26,7 @@ Cc: stable@vger.kernel.org # v5.8+
--- a/fs/binfmt_elf.c --- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c
@@ -768,7 +768,7 @@ static int parse_elf_properties(struct f @@ -769,7 +769,7 @@ static int parse_elf_properties(struct f
{ {
union { union {
struct elf_note nhdr; struct elf_note nhdr;
@ -35,7 +35,7 @@ Cc: stable@vger.kernel.org # v5.8+
} note; } note;
loff_t pos; loff_t pos;
ssize_t n; ssize_t n;
@@ -788,26 +788,38 @@ static int parse_elf_properties(struct f @@ -789,26 +789,38 @@ static int parse_elf_properties(struct f
if (phdr->p_filesz > sizeof(note)) if (phdr->p_filesz > sizeof(note))
return -ENOEXEC; return -ENOEXEC;
@ -83,7 +83,7 @@ Cc: stable@vger.kernel.org # v5.8+
datasz = off + note.nhdr.n_descsz; datasz = off + note.nhdr.n_descsz;
have_prev_type = false; have_prev_type = false;
@@ -817,6 +829,8 @@ static int parse_elf_properties(struct f @@ -818,6 +830,8 @@ static int parse_elf_properties(struct f
have_prev_type = true; have_prev_type = true;
} while (!ret); } while (!ret);

View file

@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/bridge/br_input.c --- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c +++ b/net/bridge/br_input.c
@@ -204,6 +204,9 @@ static void __br_handle_local_finish(str @@ -222,6 +222,9 @@ static void __br_handle_local_finish(str
/* note: already called with rcu_read_lock */ /* note: already called with rcu_read_lock */
static int br_handle_local_finish(struct net *net, struct sock *sk, struct sk_buff *skb) static int br_handle_local_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
{ {
@ -25,9 +25,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
__br_handle_local_finish(skb); __br_handle_local_finish(skb);
/* return 1 to signal the okfn() was called so it's ok to use the skb */ /* return 1 to signal the okfn() was called so it's ok to use the skb */
@@ -369,6 +372,17 @@ static rx_handler_result_t br_handle_fra @@ -390,6 +393,17 @@ forward:
goto defer_stp_filtering;
forward:
switch (p->state) { switch (p->state) {
+ case BR_STATE_DISABLED: + case BR_STATE_DISABLED:
+ if (ether_addr_equal(p->br->dev->dev_addr, dest)) + if (ether_addr_equal(p->br->dev->dev_addr, dest))
@ -42,4 +42,4 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+ +
case BR_STATE_FORWARDING: case BR_STATE_FORWARDING:
case BR_STATE_LEARNING: case BR_STATE_LEARNING:
if (ether_addr_equal(p->br->dev->dev_addr, dest)) defer_stp_filtering:

View file

@ -14,7 +14,7 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
--- a/drivers/rtc/rtc-rs5c372.c --- a/drivers/rtc/rtc-rs5c372.c
+++ b/drivers/rtc/rtc-rs5c372.c +++ b/drivers/rtc/rtc-rs5c372.c
@@ -393,7 +393,9 @@ static int rs5c_read_alarm(struct device @@ -399,7 +399,9 @@ static int rs5c_read_alarm(struct device
{ {
struct i2c_client *client = to_i2c_client(dev); struct i2c_client *client = to_i2c_client(dev);
struct rs5c372 *rs5c = i2c_get_clientdata(client); struct rs5c372 *rs5c = i2c_get_clientdata(client);
@ -25,7 +25,7 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
status = rs5c_get_regs(rs5c); status = rs5c_get_regs(rs5c);
if (status < 0) if (status < 0)
@@ -403,6 +405,30 @@ static int rs5c_read_alarm(struct device @@ -409,6 +411,30 @@ static int rs5c_read_alarm(struct device
t->time.tm_sec = 0; t->time.tm_sec = 0;
t->time.tm_min = bcd2bin(rs5c->regs[RS5C_REG_ALARM_A_MIN] & 0x7f); t->time.tm_min = bcd2bin(rs5c->regs[RS5C_REG_ALARM_A_MIN] & 0x7f);
t->time.tm_hour = rs5c_reg2hr(rs5c, rs5c->regs[RS5C_REG_ALARM_A_HOURS]); t->time.tm_hour = rs5c_reg2hr(rs5c, rs5c->regs[RS5C_REG_ALARM_A_HOURS]);
@ -56,7 +56,7 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
/* ... and status */ /* ... and status */
t->enabled = !!(rs5c->regs[RS5C_REG_CTRL1] & RS5C_CTRL1_AALE); t->enabled = !!(rs5c->regs[RS5C_REG_CTRL1] & RS5C_CTRL1_AALE);
@@ -417,12 +443,20 @@ static int rs5c_set_alarm(struct device @@ -423,12 +449,20 @@ static int rs5c_set_alarm(struct device
struct rs5c372 *rs5c = i2c_get_clientdata(client); struct rs5c372 *rs5c = i2c_get_clientdata(client);
int status, addr, i; int status, addr, i;
unsigned char buf[3]; unsigned char buf[3];
@ -81,7 +81,7 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
/* REVISIT: round up tm_sec */ /* REVISIT: round up tm_sec */
@@ -443,7 +477,9 @@ static int rs5c_set_alarm(struct device @@ -449,7 +483,9 @@ static int rs5c_set_alarm(struct device
/* set alarm */ /* set alarm */
buf[0] = bin2bcd(t->time.tm_min); buf[0] = bin2bcd(t->time.tm_min);
buf[1] = rs5c_hr2reg(rs5c, t->time.tm_hour); buf[1] = rs5c_hr2reg(rs5c, t->time.tm_hour);

View file

@ -17,7 +17,7 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
--- a/drivers/rtc/rtc-rs5c372.c --- a/drivers/rtc/rtc-rs5c372.c
+++ b/drivers/rtc/rtc-rs5c372.c +++ b/drivers/rtc/rtc-rs5c372.c
@@ -654,6 +654,7 @@ static int rs5c372_probe(struct i2c_clie @@ -833,6 +833,7 @@ static int rs5c372_probe(struct i2c_clie
int err = 0; int err = 0;
int smbus_mode = 0; int smbus_mode = 0;
struct rs5c372 *rs5c372; struct rs5c372 *rs5c372;
@ -25,7 +25,7 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
dev_dbg(&client->dev, "%s\n", __func__); dev_dbg(&client->dev, "%s\n", __func__);
@@ -689,6 +690,12 @@ static int rs5c372_probe(struct i2c_clie @@ -868,6 +869,12 @@ static int rs5c372_probe(struct i2c_clie
else else
rs5c372->type = id->driver_data; rs5c372->type = id->driver_data;
@ -38,7 +38,7 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
/* we read registers 0x0f then 0x00-0x0f; skip the first one */ /* we read registers 0x0f then 0x00-0x0f; skip the first one */
rs5c372->regs = &rs5c372->buf[1]; rs5c372->regs = &rs5c372->buf[1];
rs5c372->smbus = smbus_mode; rs5c372->smbus = smbus_mode;
@@ -722,6 +729,8 @@ static int rs5c372_probe(struct i2c_clie @@ -901,6 +908,8 @@ static int rs5c372_probe(struct i2c_clie
goto exit; goto exit;
} }
@ -47,7 +47,7 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
/* if the oscillator lost power and no other software (like /* if the oscillator lost power and no other software (like
* the bootloader) set it up, do it here. * the bootloader) set it up, do it here.
* *
@@ -748,6 +757,10 @@ static int rs5c372_probe(struct i2c_clie @@ -927,6 +936,10 @@ static int rs5c372_probe(struct i2c_clie
); );
/* REVISIT use client->irq to register alarm irq ... */ /* REVISIT use client->irq to register alarm irq ... */
@ -58,7 +58,7 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
rs5c372->rtc = devm_rtc_device_register(&client->dev, rs5c372->rtc = devm_rtc_device_register(&client->dev,
rs5c372_driver.driver.name, rs5c372_driver.driver.name,
&rs5c372_rtc_ops, THIS_MODULE); &rs5c372_rtc_ops, THIS_MODULE);
@@ -761,6 +774,10 @@ static int rs5c372_probe(struct i2c_clie @@ -940,6 +953,10 @@ static int rs5c372_probe(struct i2c_clie
if (err) if (err)
goto exit; goto exit;

View file

@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/init/Kconfig --- a/init/Kconfig
+++ b/init/Kconfig +++ b/init/Kconfig
@@ -1447,6 +1447,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW @@ -1481,6 +1481,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
the unaligned access emulation. the unaligned access emulation.
see arch/parisc/kernel/unaligned.c for reference see arch/parisc/kernel/unaligned.c for reference
@ -33,7 +33,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/kernel/kallsyms.c --- a/kernel/kallsyms.c
+++ b/kernel/kallsyms.c +++ b/kernel/kallsyms.c
@@ -80,6 +80,11 @@ static unsigned int kallsyms_expand_symb @@ -69,6 +69,11 @@ static unsigned int kallsyms_expand_symb
* For every byte on the compressed symbol data, copy the table * For every byte on the compressed symbol data, copy the table
* entry for that byte. * entry for that byte.
*/ */
@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
while (len) { while (len) {
tptr = &kallsyms_token_table[kallsyms_token_index[*data]]; tptr = &kallsyms_token_table[kallsyms_token_index[*data]];
data++; data++;
@@ -112,6 +117,9 @@ tail: @@ -101,6 +106,9 @@ tail:
*/ */
static char kallsyms_get_symbol_type(unsigned int off) static char kallsyms_get_symbol_type(unsigned int off)
{ {
@ -57,7 +57,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
* and return the first char from this token. * and return the first char from this token.
--- a/scripts/kallsyms.c --- a/scripts/kallsyms.c
+++ b/scripts/kallsyms.c +++ b/scripts/kallsyms.c
@@ -58,6 +58,7 @@ static struct addr_range percpu_range = @@ -75,6 +75,7 @@ static struct addr_range percpu_range =
static struct sym_entry **table; static struct sym_entry **table;
static unsigned int table_size, table_cnt; static unsigned int table_size, table_cnt;
static int all_symbols; static int all_symbols;
@ -65,7 +65,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static int absolute_percpu; static int absolute_percpu;
static int base_relative; static int base_relative;
@@ -486,6 +487,9 @@ static void write_src(void) @@ -535,6 +536,9 @@ static void write_src(void)
free(markers); free(markers);
@ -75,7 +75,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
output_label("kallsyms_token_table"); output_label("kallsyms_token_table");
off = 0; off = 0;
for (i = 0; i < 256; i++) { for (i = 0; i < 256; i++) {
@@ -537,6 +541,9 @@ static unsigned char *find_token(unsigne @@ -586,6 +590,9 @@ static unsigned char *find_token(unsigne
{ {
int i; int i;
@ -85,7 +85,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
for (i = 0; i < len - 1; i++) { for (i = 0; i < len - 1; i++) {
if (str[i] == token[0] && str[i+1] == token[1]) if (str[i] == token[0] && str[i+1] == token[1])
return &str[i]; return &str[i];
@@ -609,6 +616,9 @@ static void optimize_result(void) @@ -658,6 +665,9 @@ static void optimize_result(void)
{ {
int i, best; int i, best;
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/* using the '\0' symbol last allows compress_symbols to use standard /* using the '\0' symbol last allows compress_symbols to use standard
* fast string functions */ * fast string functions */
for (i = 255; i >= 0; i--) { for (i = 255; i >= 0; i--) {
@@ -773,6 +783,7 @@ int main(int argc, char **argv) @@ -818,6 +828,7 @@ int main(int argc, char **argv)
{"all-symbols", no_argument, &all_symbols, 1}, {"all-symbols", no_argument, &all_symbols, 1},
{"absolute-percpu", no_argument, &absolute_percpu, 1}, {"absolute-percpu", no_argument, &absolute_percpu, 1},
{"base-relative", no_argument, &base_relative, 1}, {"base-relative", no_argument, &base_relative, 1},
@ -105,7 +105,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/scripts/link-vmlinux.sh --- a/scripts/link-vmlinux.sh
+++ b/scripts/link-vmlinux.sh +++ b/scripts/link-vmlinux.sh
@@ -266,6 +266,10 @@ kallsyms() @@ -156,6 +156,10 @@ kallsyms()
kallsymopt="${kallsymopt} --base-relative" kallsymopt="${kallsymopt} --base-relative"
fi fi
@ -114,5 +114,5 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+ fi + fi
+ +
info KSYMS ${2} info KSYMS ${2}
${NM} -n ${1} | scripts/kallsyms ${kallsymopt} > ${2} scripts/kallsyms ${kallsymopt} ${1} > ${2}
} }

View file

@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/lib/vsprintf.c --- a/lib/vsprintf.c
+++ b/lib/vsprintf.c +++ b/lib/vsprintf.c
@@ -1003,8 +1003,10 @@ char *symbol_string(char *buf, char *end @@ -985,8 +985,10 @@ char *symbol_string(char *buf, char *end
struct printf_spec spec, const char *fmt) struct printf_spec spec, const char *fmt)
{ {
unsigned long value; unsigned long value;
@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#endif #endif
if (fmt[1] == 'R') if (fmt[1] == 'R')
@@ -1025,8 +1027,14 @@ char *symbol_string(char *buf, char *end @@ -1007,8 +1009,14 @@ char *symbol_string(char *buf, char *end
return string_nocheck(buf, end, sym, spec); return string_nocheck(buf, end, sym, spec);
#else #else

View file

@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/usr/Makefile --- a/usr/Makefile
+++ b/usr/Makefile +++ b/usr/Makefile
@@ -61,6 +61,8 @@ hostprogs := gen_init_cpio @@ -56,6 +56,8 @@ hostprogs := gen_init_cpio
# The dependency list is generated by gen_initramfs.sh -l # The dependency list is generated by gen_initramfs.sh -l
-include $(obj)/.initramfs_data.cpio.d -include $(obj)/.initramfs_data.cpio.d

View file

@ -16,7 +16,7 @@ Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
--- a/drivers/platform/Kconfig --- a/drivers/platform/Kconfig
+++ b/drivers/platform/Kconfig +++ b/drivers/platform/Kconfig
@@ -15,3 +15,5 @@ source "drivers/platform/mellanox/Kconfi @@ -16,3 +16,5 @@ source "drivers/platform/olpc/Kconfig"
source "drivers/platform/surface/Kconfig" source "drivers/platform/surface/Kconfig"
source "drivers/platform/x86/Kconfig" source "drivers/platform/x86/Kconfig"
@ -24,7 +24,7 @@ Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
+source "drivers/platform/mikrotik/Kconfig" +source "drivers/platform/mikrotik/Kconfig"
--- a/drivers/platform/Makefile --- a/drivers/platform/Makefile
+++ b/drivers/platform/Makefile +++ b/drivers/platform/Makefile
@@ -10,3 +10,4 @@ obj-$(CONFIG_OLPC_EC) += olpc/ @@ -11,3 +11,4 @@ obj-$(CONFIG_OLPC_EC) += olpc/
obj-$(CONFIG_GOLDFISH) += goldfish/ obj-$(CONFIG_GOLDFISH) += goldfish/
obj-$(CONFIG_CHROME_PLATFORMS) += chrome/ obj-$(CONFIG_CHROME_PLATFORMS) += chrome/
obj-$(CONFIG_SURFACE_PLATFORMS) += surface/ obj-$(CONFIG_SURFACE_PLATFORMS) += surface/

View file

@ -9,7 +9,7 @@ Acked-by: Rob Landley <rob@landley.net>
--- ---
--- a/arch/mips/Kconfig --- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig +++ b/arch/mips/Kconfig
@@ -1100,9 +1100,6 @@ config FW_ARC @@ -1032,9 +1032,6 @@ config FW_ARC
config ARCH_MAY_HAVE_PC_FDC config ARCH_MAY_HAVE_PC_FDC
bool bool
@ -19,7 +19,7 @@ Acked-by: Rob Landley <rob@landley.net>
config CEVT_BCM1480 config CEVT_BCM1480
bool bool
@@ -3182,6 +3179,18 @@ choice @@ -3089,6 +3086,18 @@ choice
bool "Extend builtin kernel arguments with bootloader arguments" bool "Extend builtin kernel arguments with bootloader arguments"
endchoice endchoice

View file

@ -26,7 +26,7 @@ Cc: James Hogan <james.hogan@imgtec.com>
--- a/arch/mips/mm/c-r4k.c --- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c +++ b/arch/mips/mm/c-r4k.c
@@ -515,6 +515,7 @@ static inline void local_r4k___flush_cac @@ -514,6 +514,7 @@ static inline void local_r4k___flush_cac
default: default:
r4k_blast_dcache(); r4k_blast_dcache();
@ -34,7 +34,7 @@ Cc: James Hogan <james.hogan@imgtec.com>
r4k_blast_icache(); r4k_blast_icache();
break; break;
} }
@@ -595,8 +596,10 @@ static inline void local_r4k_flush_cache @@ -594,8 +595,10 @@ static inline void local_r4k_flush_cache
if (cpu_has_dc_aliases || (exec && !cpu_has_ic_fills_f_dc)) if (cpu_has_dc_aliases || (exec && !cpu_has_ic_fills_f_dc))
r4k_blast_dcache(); r4k_blast_dcache();
/* If executable, blast stale lines from icache */ /* If executable, blast stale lines from icache */
@ -46,7 +46,7 @@ Cc: James Hogan <james.hogan@imgtec.com>
} }
static void r4k_flush_cache_range(struct vm_area_struct *vma, static void r4k_flush_cache_range(struct vm_area_struct *vma,
@@ -697,8 +700,13 @@ static inline void local_r4k_flush_cache @@ -696,8 +699,13 @@ static inline void local_r4k_flush_cache
if (cpu_has_dc_aliases || (exec && !cpu_has_ic_fills_f_dc)) { if (cpu_has_dc_aliases || (exec && !cpu_has_ic_fills_f_dc)) {
vaddr ? r4k_blast_dcache_page(addr) : vaddr ? r4k_blast_dcache_page(addr) :
r4k_blast_dcache_user_page(addr); r4k_blast_dcache_user_page(addr);
@ -61,7 +61,7 @@ Cc: James Hogan <james.hogan@imgtec.com>
} }
if (exec) { if (exec) {
if (vaddr && cpu_has_vtag_icache && mm == current->active_mm) { if (vaddr && cpu_has_vtag_icache && mm == current->active_mm) {
@@ -765,6 +773,7 @@ static inline void __local_r4k_flush_ica @@ -764,6 +772,7 @@ static inline void __local_r4k_flush_ica
else else
blast_dcache_range(start, end); blast_dcache_range(start, end);
} }

View file

@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/arch/mips/Makefile --- a/arch/mips/Makefile
+++ b/arch/mips/Makefile +++ b/arch/mips/Makefile
@@ -95,7 +95,7 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin @@ -94,7 +94,7 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin
# machines may also. Since BFD is incredibly buggy with respect to # machines may also. Since BFD is incredibly buggy with respect to
# crossformat linking we rely on the elf2ecoff tool for format conversion. # crossformat linking we rely on the elf2ecoff tool for format conversion.
# #

View file

@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/arch/mips/Makefile --- a/arch/mips/Makefile
+++ b/arch/mips/Makefile +++ b/arch/mips/Makefile
@@ -98,8 +98,18 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin @@ -97,8 +97,18 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin
cflags-y += -G 0 -mno-abicalls -fno-pic -pipe -mno-branch-likely cflags-y += -G 0 -mno-abicalls -fno-pic -pipe -mno-branch-likely
cflags-y += -msoft-float cflags-y += -msoft-float
LDFLAGS_vmlinux += -G 0 -static -n -nostdlib LDFLAGS_vmlinux += -G 0 -static -n -nostdlib
@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
typedef uint8_t Elf64_Byte; /* Type for a 8-bit quantity. */ typedef uint8_t Elf64_Byte; /* Type for a 8-bit quantity. */
--- a/arch/mips/kernel/module.c --- a/arch/mips/kernel/module.c
+++ b/arch/mips/kernel/module.c +++ b/arch/mips/kernel/module.c
@@ -31,23 +31,261 @@ struct mips_hi16 { @@ -32,23 +32,261 @@ struct mips_hi16 {
static LIST_HEAD(dbe_list); static LIST_HEAD(dbe_list);
static DEFINE_SPINLOCK(dbe_lock); static DEFINE_SPINLOCK(dbe_lock);
@ -309,7 +309,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (v % 4) { if (v % 4) {
pr_err("module %s: dangerous R_MIPS_26 relocation\n", pr_err("module %s: dangerous R_MIPS_26 relocation\n",
me->name); me->name);
@@ -55,13 +293,17 @@ static int apply_r_mips_26(struct module @@ -56,13 +294,17 @@ static int apply_r_mips_26(struct module
} }
if ((v & 0xf0000000) != (((unsigned long)location + 4) & 0xf0000000)) { if ((v & 0xf0000000) != (((unsigned long)location + 4) & 0xf0000000)) {
@ -331,7 +331,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
return 0; return 0;
} }
@@ -441,9 +683,36 @@ int module_finalize(const Elf_Ehdr *hdr, @@ -442,9 +684,36 @@ int module_finalize(const Elf_Ehdr *hdr,
list_add(&me->arch.dbe_list, &dbe_list); list_add(&me->arch.dbe_list, &dbe_list);
spin_unlock_irq(&dbe_lock); spin_unlock_irq(&dbe_lock);
} }

View file

@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/arch/mips/Makefile --- a/arch/mips/Makefile
+++ b/arch/mips/Makefile +++ b/arch/mips/Makefile
@@ -175,7 +175,7 @@ cflags-$(CONFIG_CPU_VR41XX) += -march=r4 @@ -172,7 +172,7 @@ cflags-$(CONFIG_CPU_R4300) += -march=r43
cflags-$(CONFIG_CPU_R4X00) += -march=r4600 -Wa,--trap cflags-$(CONFIG_CPU_R4X00) += -march=r4600 -Wa,--trap
cflags-$(CONFIG_CPU_TX49XX) += -march=r4600 -Wa,--trap cflags-$(CONFIG_CPU_TX49XX) += -march=r4600 -Wa,--trap
cflags-$(CONFIG_CPU_MIPS32_R1) += -march=mips32 -Wa,--trap cflags-$(CONFIG_CPU_MIPS32_R1) += -march=mips32 -Wa,--trap

View file

@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/arch/arm/kernel/module.c --- a/arch/arm/kernel/module.c
+++ b/arch/arm/kernel/module.c +++ b/arch/arm/kernel/module.c
@@ -105,6 +105,10 @@ apply_relocate(Elf32_Shdr *sechdrs, cons @@ -146,6 +146,10 @@ apply_relocate(Elf32_Shdr *sechdrs, cons
return -ENOEXEC; return -ENOEXEC;
} }

View file

@ -14,7 +14,7 @@ Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
--- a/arch/powerpc/Kconfig --- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig
@@ -221,7 +221,7 @@ config PPC @@ -229,7 +229,7 @@ config PPC
select HAVE_KERNEL_GZIP select HAVE_KERNEL_GZIP
select HAVE_KERNEL_LZMA if DEFAULT_UIMAGE select HAVE_KERNEL_LZMA if DEFAULT_UIMAGE
select HAVE_KERNEL_LZO if DEFAULT_UIMAGE select HAVE_KERNEL_LZO if DEFAULT_UIMAGE

View file

@ -91,7 +91,7 @@ Acked-by: Florian Fainelli <f.fainelli@gmail.com>
--- a/drivers/irqchip/irq-bcm6345-l1.c --- a/drivers/irqchip/irq-bcm6345-l1.c
+++ b/drivers/irqchip/irq-bcm6345-l1.c +++ b/drivers/irqchip/irq-bcm6345-l1.c
@@ -261,6 +261,9 @@ static int __init bcm6345_l1_init_one(st @@ -257,6 +257,9 @@ static int __init bcm6345_l1_init_one(st
if (!cpu->map_base) if (!cpu->map_base)
return -ENOMEM; return -ENOMEM;
@ -101,7 +101,7 @@ Acked-by: Florian Fainelli <f.fainelli@gmail.com>
for (i = 0; i < n_words; i++) { for (i = 0; i < n_words; i++) {
cpu->enable_cache[i] = 0; cpu->enable_cache[i] = 0;
__raw_writel(0, cpu->map_base + reg_enable(intc, i)); __raw_writel(0, cpu->map_base + reg_enable(intc, i));
@@ -339,8 +342,7 @@ static int __init bcm6345_l1_of_init(str @@ -335,8 +338,7 @@ static int __init bcm6345_l1_of_init(str
for_each_cpu(idx, &intc->cpumask) { for_each_cpu(idx, &intc->cpumask) {
struct bcm6345_l1_cpu *cpu = intc->cpus[idx]; struct bcm6345_l1_cpu *cpu = intc->cpus[idx];

View file

@ -264,7 +264,7 @@ Subject: [PATCH] mtd: mtdsplit support
* one chunk. Do that by default. * one chunk. Do that by default.
--- a/include/linux/mtd/mtd.h --- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h
@@ -620,6 +620,24 @@ static inline void mtd_align_erase_req(s @@ -615,6 +615,24 @@ static inline void mtd_align_erase_req(s
req->len += mtd->erasesize - mod; req->len += mtd->erasesize - mod;
} }
@ -289,7 +289,7 @@ Subject: [PATCH] mtd: mtdsplit support
static inline uint32_t mtd_div_by_ws(uint64_t sz, struct mtd_info *mtd) static inline uint32_t mtd_div_by_ws(uint64_t sz, struct mtd_info *mtd)
{ {
if (mtd->writesize_shift) if (mtd->writesize_shift)
@@ -685,6 +703,13 @@ extern void __put_mtd_device(struct mtd_ @@ -688,6 +706,13 @@ extern struct mtd_info *of_get_mtd_devic
extern struct mtd_info *get_mtd_device_nm(const char *name); extern struct mtd_info *get_mtd_device_nm(const char *name);
extern void put_mtd_device(struct mtd_info *mtd); extern void put_mtd_device(struct mtd_info *mtd);

View file

@ -193,7 +193,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
default y default y
--- a/drivers/mtd/spi-nor/core.c --- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c +++ b/drivers/mtd/spi-nor/core.c
@@ -1271,6 +1271,8 @@ static u8 spi_nor_convert_3to4_erase(u8 @@ -1049,6 +1049,8 @@ static u8 spi_nor_convert_3to4_erase(u8
static bool spi_nor_has_uniform_erase(const struct spi_nor *nor) static bool spi_nor_has_uniform_erase(const struct spi_nor *nor)
{ {
@ -202,7 +202,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
return !!nor->params->erase_map.uniform_erase_type; return !!nor->params->erase_map.uniform_erase_type;
} }
@@ -2400,6 +2402,7 @@ static int spi_nor_select_erase(struct s @@ -2157,6 +2159,7 @@ static int spi_nor_select_erase(struct s
{ {
struct spi_nor_erase_map *map = &nor->params->erase_map; struct spi_nor_erase_map *map = &nor->params->erase_map;
const struct spi_nor_erase_type *erase = NULL; const struct spi_nor_erase_type *erase = NULL;
@ -210,7 +210,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
struct mtd_info *mtd = &nor->mtd; struct mtd_info *mtd = &nor->mtd;
u32 wanted_size = nor->info->sector_size; u32 wanted_size = nor->info->sector_size;
int i; int i;
@@ -2432,8 +2435,9 @@ static int spi_nor_select_erase(struct s @@ -2189,8 +2192,9 @@ static int spi_nor_select_erase(struct s
*/ */
for (i = SNOR_ERASE_TYPE_MAX - 1; i >= 0; i--) { for (i = SNOR_ERASE_TYPE_MAX - 1; i >= 0; i--) {
if (map->erase_type[i].size) { if (map->erase_type[i].size) {
@ -222,7 +222,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
} }
} }
@@ -2441,6 +2445,9 @@ static int spi_nor_select_erase(struct s @@ -2198,6 +2202,9 @@ static int spi_nor_select_erase(struct s
return -EINVAL; return -EINVAL;
mtd->erasesize = erase->size; mtd->erasesize = erase->size;
@ -234,7 +234,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
--- a/include/linux/mtd/mtd.h --- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h
@@ -250,6 +250,8 @@ struct mtd_info { @@ -245,6 +245,8 @@ struct mtd_info {
* information below if they desire * information below if they desire
*/ */
uint32_t erasesize; uint32_t erasesize;

View file

@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/mtd/parsers/redboot.c --- a/drivers/mtd/parsers/redboot.c
+++ b/drivers/mtd/parsers/redboot.c +++ b/drivers/mtd/parsers/redboot.c
@@ -277,14 +277,21 @@ nogood: @@ -278,14 +278,21 @@ nogood:
#endif #endif
names += strlen(names) + 1; names += strlen(names) + 1;

View file

@ -10,7 +10,7 @@ Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
--- a/drivers/mtd/parsers/Kconfig --- a/drivers/mtd/parsers/Kconfig
+++ b/drivers/mtd/parsers/Kconfig +++ b/drivers/mtd/parsers/Kconfig
@@ -57,6 +57,22 @@ config MTD_CMDLINE_PARTS @@ -67,6 +67,22 @@ config MTD_CMDLINE_PARTS
If unsure, say 'N'. If unsure, say 'N'.
@ -35,9 +35,9 @@ Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
default y default y
--- a/drivers/mtd/parsers/Makefile --- a/drivers/mtd/parsers/Makefile
+++ b/drivers/mtd/parsers/Makefile +++ b/drivers/mtd/parsers/Makefile
@@ -3,6 +3,7 @@ obj-$(CONFIG_MTD_AR7_PARTS) += ar7part. @@ -4,6 +4,7 @@ obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm4
obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm47xxpart.o
obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o
obj-$(CONFIG_MTD_BRCM_U_BOOT) += brcm_u-boot.o
obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
+obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o +obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o
obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o

View file

@ -16,7 +16,7 @@ Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
--- a/drivers/mtd/parsers/Kconfig --- a/drivers/mtd/parsers/Kconfig
+++ b/drivers/mtd/parsers/Kconfig +++ b/drivers/mtd/parsers/Kconfig
@@ -226,3 +226,12 @@ config MTD_SERCOMM_PARTS @@ -236,3 +236,12 @@ config MTD_SERCOMM_PARTS
partition map. This partition table contains real partition partition map. This partition table contains real partition
offsets, which may differ from device to device depending on the offsets, which may differ from device to device depending on the
number and location of bad blocks on NAND. number and location of bad blocks on NAND.
@ -31,7 +31,7 @@ Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
+ formatted DTS. + formatted DTS.
--- a/drivers/mtd/parsers/Makefile --- a/drivers/mtd/parsers/Makefile
+++ b/drivers/mtd/parsers/Makefile +++ b/drivers/mtd/parsers/Makefile
@@ -16,3 +16,4 @@ obj-$(CONFIG_MTD_SERCOMM_PARTS) += scpa @@ -17,3 +17,4 @@ obj-$(CONFIG_MTD_SERCOMM_PARTS) += scpa
obj-$(CONFIG_MTD_SHARPSL_PARTS) += sharpslpart.o obj-$(CONFIG_MTD_SHARPSL_PARTS) += sharpslpart.o
obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
obj-$(CONFIG_MTD_QCOMSMEM_PARTS) += qcomsmempart.o obj-$(CONFIG_MTD_QCOMSMEM_PARTS) += qcomsmempart.o

View file

@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/mtd/chips/cfi_cmdset_0002.c --- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -907,7 +907,7 @@ static int get_chip(struct map_info *map @@ -908,7 +908,7 @@ static int get_chip(struct map_info *map
return 0; return 0;
case FL_ERASING: case FL_ERASING:

View file

@ -7,7 +7,7 @@ Signed-off-by: George Kashperko <george@znau.edu.ua>
1 file changed, 1 insertion(+) 1 file changed, 1 insertion(+)
--- a/drivers/mtd/chips/cfi_cmdset_0002.c --- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -2051,6 +2051,7 @@ static int __xipram do_write_buffer(stru @@ -2052,6 +2052,7 @@ static int __xipram do_write_buffer(stru
/* Write Buffer Load */ /* Write Buffer Load */
map_write(map, CMD(0x25), cmd_adr); map_write(map, CMD(0x25), cmd_adr);

View file

@ -8,11 +8,11 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/mtd/spi-nor/macronix.c --- a/drivers/mtd/spi-nor/macronix.c
+++ b/drivers/mtd/spi-nor/macronix.c +++ b/drivers/mtd/spi-nor/macronix.c
@@ -93,6 +93,7 @@ static void macronix_default_init(struct @@ -106,6 +106,7 @@ static void macronix_nor_default_init(st
{ {
nor->params->quad_enable = spi_nor_sr1_bit6_quad_enable; nor->params->quad_enable = spi_nor_sr1_bit6_quad_enable;
nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode; nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode;
+ nor->flags |= SNOR_F_HAS_LOCK; + nor->flags |= SNOR_F_HAS_LOCK;
} }
static const struct spi_nor_fixups macronix_fixups = { static const struct spi_nor_fixups macronix_nor_fixups = {

View file

@ -8,7 +8,7 @@ Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
--- a/drivers/mtd/spi-nor/eon.c --- a/drivers/mtd/spi-nor/eon.c
+++ b/drivers/mtd/spi-nor/eon.c +++ b/drivers/mtd/spi-nor/eon.c
@@ -15,6 +15,8 @@ static const struct flash_info eon_parts @@ -17,6 +17,8 @@ static const struct flash_info eon_nor_p
{ "en25p64", INFO(0x1c2017, 0, 64 * 1024, 128) }, { "en25p64", INFO(0x1c2017, 0, 64 * 1024, 128) },
{ "en25q64", INFO(0x1c3017, 0, 64 * 1024, 128) { "en25q64", INFO(0x1c3017, 0, 64 * 1024, 128)
NO_SFDP_FLAGS(SECT_4K) }, NO_SFDP_FLAGS(SECT_4K) },

View file

@ -11,7 +11,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
--- a/drivers/mtd/spi-nor/eon.c --- a/drivers/mtd/spi-nor/eon.c
+++ b/drivers/mtd/spi-nor/eon.c +++ b/drivers/mtd/spi-nor/eon.c
@@ -26,6 +26,7 @@ static const struct flash_info eon_parts @@ -19,6 +19,7 @@ static const struct flash_info eon_nor_p
NO_SFDP_FLAGS(SECT_4K) }, NO_SFDP_FLAGS(SECT_4K) },
{ "en25q128", INFO(0x1c3018, 0, 64 * 1024, 256) { "en25q128", INFO(0x1c3018, 0, 64 * 1024, 256)
NO_SFDP_FLAGS(SECT_4K) }, NO_SFDP_FLAGS(SECT_4K) },

View file

@ -31,7 +31,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/mtd/spi-nor/Makefile --- a/drivers/mtd/spi-nor/Makefile
+++ b/drivers/mtd/spi-nor/Makefile +++ b/drivers/mtd/spi-nor/Makefile
@@ -17,7 +17,8 @@ spi-nor-objs += sst.o @@ -17,6 +17,7 @@ spi-nor-objs += sst.o
spi-nor-objs += winbond.o spi-nor-objs += winbond.o
spi-nor-objs += xilinx.o spi-nor-objs += xilinx.o
spi-nor-objs += xmc.o spi-nor-objs += xmc.o
@ -39,7 +39,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
spi-nor-$(CONFIG_DEBUG_FS) += debugfs.o spi-nor-$(CONFIG_DEBUG_FS) += debugfs.o
obj-$(CONFIG_MTD_SPI_NOR) += spi-nor.o obj-$(CONFIG_MTD_SPI_NOR) += spi-nor.o
obj-$(CONFIG_MTD_SPI_NOR) += controllers/
--- /dev/null --- /dev/null
+++ b/drivers/mtd/spi-nor/xtx.c +++ b/drivers/mtd/spi-nor/xtx.c
@@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
@ -62,17 +61,17 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+}; +};
--- a/drivers/mtd/spi-nor/core.c --- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c +++ b/drivers/mtd/spi-nor/core.c
@@ -1859,6 +1859,7 @@ static const struct spi_nor_manufacturer @@ -1635,6 +1635,7 @@ static const struct spi_nor_manufacturer
&spi_nor_winbond, &spi_nor_winbond,
&spi_nor_xilinx, &spi_nor_xilinx,
&spi_nor_xmc, &spi_nor_xmc,
+ &spi_nor_xtx, + &spi_nor_xtx,
}; };
static const struct flash_info * static const struct flash_info *spi_nor_match_id(struct spi_nor *nor,
--- a/drivers/mtd/spi-nor/core.h --- a/drivers/mtd/spi-nor/core.h
+++ b/drivers/mtd/spi-nor/core.h +++ b/drivers/mtd/spi-nor/core.h
@@ -489,6 +489,7 @@ extern const struct spi_nor_manufacturer @@ -633,6 +633,7 @@ extern const struct spi_nor_manufacturer
extern const struct spi_nor_manufacturer spi_nor_winbond; extern const struct spi_nor_manufacturer spi_nor_winbond;
extern const struct spi_nor_manufacturer spi_nor_xilinx; extern const struct spi_nor_manufacturer spi_nor_xilinx;
extern const struct spi_nor_manufacturer spi_nor_xmc; extern const struct spi_nor_manufacturer spi_nor_xmc;

View file

@ -10,7 +10,7 @@ Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
--- a/drivers/mtd/spi-nor/gigadevice.c --- a/drivers/mtd/spi-nor/gigadevice.c
+++ b/drivers/mtd/spi-nor/gigadevice.c +++ b/drivers/mtd/spi-nor/gigadevice.c
@@ -24,6 +24,10 @@ static struct spi_nor_fixups gd25q256_fi @@ -34,6 +34,10 @@ static const struct spi_nor_fixups gd25q
}; };
static const struct flash_info gigadevice_nor_parts[] = { static const struct flash_info gigadevice_nor_parts[] = {

View file

@ -9,7 +9,7 @@ Subject: [PATCH] spi-nor/gigadevic: add gd25q512
--- a/drivers/mtd/spi-nor/gigadevice.c --- a/drivers/mtd/spi-nor/gigadevice.c
+++ b/drivers/mtd/spi-nor/gigadevice.c +++ b/drivers/mtd/spi-nor/gigadevice.c
@@ -53,6 +53,11 @@ static const struct flash_info gigadevic @@ -71,6 +71,11 @@ static const struct flash_info gigadevic
FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB | SPI_NOR_TB_SR_BIT6) FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB | SPI_NOR_TB_SR_BIT6)
FIXUP_FLAGS(SPI_NOR_4B_OPCODES) FIXUP_FLAGS(SPI_NOR_4B_OPCODES)
.fixups = &gd25q256_fixups }, .fixups = &gd25q256_fixups },

View file

@ -14,11 +14,11 @@ flash.
+++ b/drivers/mtd/spi-nor/esmt.c +++ b/drivers/mtd/spi-nor/esmt.c
@@ -10,6 +10,9 @@ @@ -10,6 +10,9 @@
static const struct flash_info esmt_parts[] = { static const struct flash_info esmt_nor_parts[] = {
/* ESMT */ /* ESMT */
+ { "f25l16pa-2s", INFO(0x8c2115, 0, 64 * 1024, 32) + { "f25l16pa-2s", INFO(0x8c2115, 0, 64 * 1024, 32)
+ FLAGS(SPI_NOR_HAS_LOCK) + FLAGS(SPI_NOR_HAS_LOCK)
+ NO_SFDP_FLAGS(SECT_4K) }, + NO_SFDP_FLAGS(SECT_4K) },
{ "f25l32pa", INFO(0x8c2016, 0, 64 * 1024, 64) { "f25l32pa", INFO(0x8c2016, 0, 64 * 1024, 64)
FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE) FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE)
NO_SFDP_FLAGS(SECT_4K) }, NO_SFDP_FLAGS(SECT_4K) },

View file

@ -13,10 +13,10 @@ Datasheet available at https://www.xmcwh.com/uploads/435/XM25QH128C.pdf
--- a/drivers/mtd/spi-nor/xmc.c --- a/drivers/mtd/spi-nor/xmc.c
+++ b/drivers/mtd/spi-nor/xmc.c +++ b/drivers/mtd/spi-nor/xmc.c
@@ -14,6 +14,9 @@ static const struct flash_info xmc_parts @@ -16,6 +16,9 @@ static const struct flash_info xmc_nor_p
{ "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256) { "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256)
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
SPI_NOR_QUAD_READ) }, SPI_NOR_QUAD_READ) },
+ { "XM25QH128C", INFO(0x204018, 0, 64 * 1024, 256) + { "XM25QH128C", INFO(0x204018, 0, 64 * 1024, 256)
+ NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | + NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
+ SPI_NOR_QUAD_READ) }, + SPI_NOR_QUAD_READ) },

View file

@ -31,7 +31,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
obj-$(CONFIG_MTD_SPI_NAND) += spinand.o obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
--- a/drivers/mtd/nand/spi/core.c --- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c
@@ -896,6 +896,7 @@ static const struct nand_ops spinand_ops @@ -938,6 +938,7 @@ static const struct nand_ops spinand_ops
static const struct spinand_manufacturer *spinand_manufacturers[] = { static const struct spinand_manufacturer *spinand_manufacturers[] = {
&ato_spinand_manufacturer, &ato_spinand_manufacturer,
@ -133,7 +133,7 @@ Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
+}; +};
--- a/include/linux/mtd/spinand.h --- a/include/linux/mtd/spinand.h
+++ b/include/linux/mtd/spinand.h +++ b/include/linux/mtd/spinand.h
@@ -260,6 +260,7 @@ struct spinand_manufacturer { @@ -261,6 +261,7 @@ struct spinand_manufacturer {
/* SPI NAND manufacturers */ /* SPI NAND manufacturers */
extern const struct spinand_manufacturer ato_spinand_manufacturer; extern const struct spinand_manufacturer ato_spinand_manufacturer;

View file

@ -47,7 +47,7 @@ Submitted-by: Daniel Danzberger <daniel@dd-wrt.com>
obj-$(CONFIG_MTD_SPI_NAND) += spinand.o obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
--- a/drivers/mtd/nand/spi/core.c --- a/drivers/mtd/nand/spi/core.c
+++ b/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c
@@ -908,6 +908,7 @@ static const struct nand_ops spinand_ops @@ -939,6 +939,7 @@ static const struct nand_ops spinand_ops
static const struct spinand_manufacturer *spinand_manufacturers[] = { static const struct spinand_manufacturer *spinand_manufacturers[] = {
&ato_spinand_manufacturer, &ato_spinand_manufacturer,
&esmt_c8_spinand_manufacturer, &esmt_c8_spinand_manufacturer,
@ -158,9 +158,9 @@ Submitted-by: Daniel Danzberger <daniel@dd-wrt.com>
+}; +};
--- a/include/linux/mtd/spinand.h --- a/include/linux/mtd/spinand.h
+++ b/include/linux/mtd/spinand.h +++ b/include/linux/mtd/spinand.h
@@ -261,6 +261,7 @@ struct spinand_manufacturer { @@ -262,6 +262,7 @@ struct spinand_manufacturer {
/* SPI NAND manufacturers */ /* SPI NAND manufacturers */
extern const struct spinand_manufacturer ato_spinand_manufacturer;
extern const struct spinand_manufacturer esmt_c8_spinand_manufacturer; extern const struct spinand_manufacturer esmt_c8_spinand_manufacturer;
+extern const struct spinand_manufacturer etron_spinand_manufacturer; +extern const struct spinand_manufacturer etron_spinand_manufacturer;
extern const struct spinand_manufacturer gigadevice_spinand_manufacturer; extern const struct spinand_manufacturer gigadevice_spinand_manufacturer;

View file

@ -11,7 +11,7 @@ Signed-off-by: Joe Mullally <jwmullally@gmail.com>
--- a/drivers/mtd/spi-nor/xmc.c --- a/drivers/mtd/spi-nor/xmc.c
+++ b/drivers/mtd/spi-nor/xmc.c +++ b/drivers/mtd/spi-nor/xmc.c
@@ -12,6 +12,9 @@ static const struct flash_info xmc_parts @@ -13,6 +13,9 @@ static const struct flash_info xmc_nor_p
{ "XM25QH64A", INFO(0x207017, 0, 64 * 1024, 128) { "XM25QH64A", INFO(0x207017, 0, 64 * 1024, 128)
NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ | NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
SPI_NOR_QUAD_READ) }, SPI_NOR_QUAD_READ) },

View file

@ -8,7 +8,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/mtd/ubi/build.c --- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c +++ b/drivers/mtd/ubi/build.c
@@ -1200,6 +1200,73 @@ static struct mtd_info * __init open_mtd @@ -1205,6 +1205,73 @@ static struct mtd_info * __init open_mtd
return mtd; return mtd;
} }
@ -82,7 +82,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
static int __init ubi_init(void) static int __init ubi_init(void)
{ {
int err, i, k; int err, i, k;
@@ -1283,6 +1350,12 @@ static int __init ubi_init(void) @@ -1289,6 +1356,12 @@ static int __init ubi_init(void)
} }
} }

View file

@ -8,7 +8,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/mtd/ubi/block.c --- a/drivers/mtd/ubi/block.c
+++ b/drivers/mtd/ubi/block.c +++ b/drivers/mtd/ubi/block.c
@@ -642,6 +642,47 @@ static void __init ubiblock_create_from_ @@ -653,6 +653,47 @@ static void __init ubiblock_create_from_
} }
} }
@ -56,7 +56,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
static void ubiblock_remove_all(void) static void ubiblock_remove_all(void)
{ {
struct ubiblock *next; struct ubiblock *next;
@@ -674,6 +715,10 @@ int __init ubiblock_init(void) @@ -685,6 +726,10 @@ int __init ubiblock_init(void)
*/ */
ubiblock_create_from_param(); ubiblock_create_from_param();

View file

@ -8,7 +8,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/init/do_mounts.c --- a/init/do_mounts.c
+++ b/init/do_mounts.c +++ b/init/do_mounts.c
@@ -447,7 +447,30 @@ retry: @@ -446,7 +446,30 @@ retry:
out: out:
put_page(page); put_page(page);
} }
@ -40,7 +40,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
#ifdef CONFIG_ROOT_NFS #ifdef CONFIG_ROOT_NFS
#define NFSROOT_TIMEOUT_MIN 5 #define NFSROOT_TIMEOUT_MIN 5
@@ -580,6 +603,10 @@ void __init mount_root(void) @@ -579,6 +602,10 @@ void __init mount_root(void)
return; return;
} }
#endif #endif

View file

@ -16,7 +16,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
#include "ubi-media.h" #include "ubi-media.h"
#include "ubi.h" #include "ubi.h"
@@ -451,6 +452,15 @@ int ubiblock_create(struct ubi_volume_in @@ -459,6 +460,15 @@ int ubiblock_create(struct ubi_volume_in
dev_info(disk_to_dev(dev->gd), "created from ubi%d:%d(%s)", dev_info(disk_to_dev(dev->gd), "created from ubi%d:%d(%s)",
dev->ubi_num, dev->vol_id, vi->name); dev->ubi_num, dev->vol_id, vi->name);
mutex_unlock(&devices_mutex); mutex_unlock(&devices_mutex);
@ -31,4 +31,4 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
+ +
return 0; return 0;
out_remove_minor: out_destroy_wq:

View file

@ -22,13 +22,11 @@ Signed-off-by: Nick Hainke <vincent@systemli.org>
--- a/drivers/mtd/spi-nor/macronix.c --- a/drivers/mtd/spi-nor/macronix.c
+++ b/drivers/mtd/spi-nor/macronix.c +++ b/drivers/mtd/spi-nor/macronix.c
@@ -41,7 +41,8 @@ static const struct flash_info macronix_ @@ -48,6 +48,7 @@ static const struct flash_info macronix_
{ "mx25l3255e", INFO(0xc29e16, 0, 64 * 1024, 64) { "mx25l3255e", INFO(0xc29e16, 0, 64 * 1024, 64)
NO_SFDP_FLAGS(SECT_4K) }, NO_SFDP_FLAGS(SECT_4K) },
{ "mx25l6405d", INFO(0xc22017, 0, 64 * 1024, 128) { "mx25l6405d", INFO(0xc22017, 0, 64 * 1024, 128)
- NO_SFDP_FLAGS(SECT_4K) },
+ FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_4BIT_BP) + FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_4BIT_BP)
+ NO_SFDP_FLAGS(SECT_4K) }, NO_SFDP_FLAGS(SECT_4K) },
{ "mx25u2033e", INFO(0xc22532, 0, 64 * 1024, 4) { "mx25u2033e", INFO(0xc22532, 0, 64 * 1024, 4)
NO_SFDP_FLAGS(SECT_4K) }, NO_SFDP_FLAGS(SECT_4K) },
{ "mx25u3235f", INFO(0xc22536, 0, 64 * 1024, 64)

View file

@ -20,7 +20,7 @@ Signed-off-by: Nick Hainke <vincent@systemli.org>
--- a/drivers/mtd/spi-nor/macronix.c --- a/drivers/mtd/spi-nor/macronix.c
+++ b/drivers/mtd/spi-nor/macronix.c +++ b/drivers/mtd/spi-nor/macronix.c
@@ -94,6 +94,7 @@ static void macronix_default_init(struct @@ -107,6 +107,7 @@ static void macronix_nor_default_init(st
{ {
nor->params->quad_enable = spi_nor_sr1_bit6_quad_enable; nor->params->quad_enable = spi_nor_sr1_bit6_quad_enable;
nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode; nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode;

View file

@ -1087,7 +1087,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
#define JFFS2_NODE_ACCURATE 0x2000 #define JFFS2_NODE_ACCURATE 0x2000
--- a/lib/Kconfig --- a/lib/Kconfig
+++ b/lib/Kconfig +++ b/lib/Kconfig
@@ -340,6 +340,12 @@ config ZSTD_DECOMPRESS @@ -354,6 +354,12 @@ config ZSTD_DECOMPRESS
source "lib/xz/Kconfig" source "lib/xz/Kconfig"
@ -1102,7 +1102,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.) # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
--- a/lib/Makefile --- a/lib/Makefile
+++ b/lib/Makefile +++ b/lib/Makefile
@@ -135,6 +135,16 @@ CFLAGS_kobject.o += -DDEBUG @@ -134,6 +134,16 @@ CFLAGS_kobject.o += -DDEBUG
CFLAGS_kobject_uevent.o += -DDEBUG CFLAGS_kobject_uevent.o += -DDEBUG
endif endif
@ -1119,7 +1119,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
obj-$(CONFIG_DEBUG_INFO_REDUCED) += debug_info.o obj-$(CONFIG_DEBUG_INFO_REDUCED) += debug_info.o
CFLAGS_debug_info.o += $(call cc-option, -femit-struct-debug-detailed=any) CFLAGS_debug_info.o += $(call cc-option, -femit-struct-debug-detailed=any)
@@ -192,6 +202,8 @@ obj-$(CONFIG_ZSTD_COMPRESS) += zstd/ @@ -194,6 +204,8 @@ obj-$(CONFIG_ZSTD_COMPRESS) += zstd/
obj-$(CONFIG_ZSTD_DECOMPRESS) += zstd/ obj-$(CONFIG_ZSTD_DECOMPRESS) += zstd/
obj-$(CONFIG_XZ_DEC) += xz/ obj-$(CONFIG_XZ_DEC) += xz/
obj-$(CONFIG_RAID6_PQ) += raid6/ obj-$(CONFIG_RAID6_PQ) += raid6/

View file

@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#include <net/net_namespace.h> #include <net/net_namespace.h>
#ifdef CONFIG_SYSCTL #ifdef CONFIG_SYSCTL
#include <linux/sysctl.h> #include <linux/sysctl.h>
@@ -462,6 +463,58 @@ static int ct_cpu_seq_show(struct seq_fi @@ -465,6 +466,58 @@ static int ct_cpu_seq_show(struct seq_fi
return 0; return 0;
} }
@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static const struct seq_operations ct_cpu_seq_ops = { static const struct seq_operations ct_cpu_seq_ops = {
.start = ct_cpu_seq_start, .start = ct_cpu_seq_start,
.next = ct_cpu_seq_next, .next = ct_cpu_seq_next,
@@ -475,8 +526,9 @@ static int nf_conntrack_standalone_init_ @@ -478,8 +531,9 @@ static int nf_conntrack_standalone_init_
kuid_t root_uid; kuid_t root_uid;
kgid_t root_gid; kgid_t root_gid;

View file

@ -59,7 +59,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static bool static bool
ip_checkentry(const struct ipt_ip *ip) ip_checkentry(const struct ipt_ip *ip)
{ {
@@ -524,6 +550,8 @@ find_check_entry(struct ipt_entry *e, st @@ -525,6 +551,8 @@ find_check_entry(struct ipt_entry *e, st
struct xt_mtchk_param mtpar; struct xt_mtchk_param mtpar;
struct xt_entry_match *ematch; struct xt_entry_match *ematch;
@ -68,7 +68,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!xt_percpu_counter_alloc(alloc_state, &e->counters)) if (!xt_percpu_counter_alloc(alloc_state, &e->counters))
return -ENOMEM; return -ENOMEM;
@@ -818,6 +846,7 @@ copy_entries_to_user(unsigned int total_ @@ -819,6 +847,7 @@ copy_entries_to_user(unsigned int total_
const struct xt_table_info *private = table->private; const struct xt_table_info *private = table->private;
int ret = 0; int ret = 0;
const void *loc_cpu_entry; const void *loc_cpu_entry;
@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
counters = alloc_counters(table); counters = alloc_counters(table);
if (IS_ERR(counters)) if (IS_ERR(counters))
@@ -845,6 +874,14 @@ copy_entries_to_user(unsigned int total_ @@ -846,6 +875,14 @@ copy_entries_to_user(unsigned int total_
goto free_counters; goto free_counters;
} }
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
for (i = sizeof(struct ipt_entry); for (i = sizeof(struct ipt_entry);
i < e->target_offset; i < e->target_offset;
i += m->u.match_size) { i += m->u.match_size) {
@@ -1222,12 +1259,15 @@ compat_copy_entry_to_user(struct ipt_ent @@ -1223,12 +1260,15 @@ compat_copy_entry_to_user(struct ipt_ent
compat_uint_t origsize; compat_uint_t origsize;
const struct xt_entry_match *ematch; const struct xt_entry_match *ematch;
int ret = 0; int ret = 0;

View file

@ -41,8 +41,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+ +
/* Returns one of the generic firewall policies, like NF_ACCEPT. */ /* Returns one of the generic firewall policies, like NF_ACCEPT. */
unsigned int unsigned int
ipt_do_table(struct sk_buff *skb, ipt_do_table(void *priv,
@@ -266,27 +293,28 @@ ipt_do_table(struct sk_buff *skb, @@ -267,27 +294,28 @@ ipt_do_table(void *priv,
unsigned int addend; unsigned int addend;
/* Initialization */ /* Initialization */
@ -86,7 +86,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
jumpstack = (struct ipt_entry **)private->jumpstack[cpu]; jumpstack = (struct ipt_entry **)private->jumpstack[cpu];
/* Switch to alternate jumpstack if we're being invoked via TEE. /* Switch to alternate jumpstack if we're being invoked via TEE.
@@ -299,7 +327,16 @@ ipt_do_table(struct sk_buff *skb, @@ -300,7 +328,16 @@ ipt_do_table(void *priv,
if (static_key_false(&xt_tee_enabled)) if (static_key_false(&xt_tee_enabled))
jumpstack += private->stacksize * __this_cpu_read(nf_skb_duplicated); jumpstack += private->stacksize * __this_cpu_read(nf_skb_duplicated);

View file

@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#define PACKET_FANOUT_LB 1 #define PACKET_FANOUT_LB 1
--- a/net/packet/af_packet.c --- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c +++ b/net/packet/af_packet.c
@@ -1826,6 +1826,7 @@ static int packet_rcv_spkt(struct sk_buf @@ -1862,6 +1862,7 @@ static int packet_rcv_spkt(struct sk_buf
{ {
struct sock *sk; struct sock *sk;
struct sockaddr_pkt *spkt; struct sockaddr_pkt *spkt;
@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/* /*
* When we registered the protocol we saved the socket in the data * When we registered the protocol we saved the socket in the data
@@ -1833,6 +1834,7 @@ static int packet_rcv_spkt(struct sk_buf @@ -1869,6 +1870,7 @@ static int packet_rcv_spkt(struct sk_buf
*/ */
sk = pt->af_packet_priv; sk = pt->af_packet_priv;
@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/* /*
* Yank back the headers [hope the device set this * Yank back the headers [hope the device set this
@@ -1845,7 +1847,7 @@ static int packet_rcv_spkt(struct sk_buf @@ -1881,7 +1883,7 @@ static int packet_rcv_spkt(struct sk_buf
* so that this procedure is noop. * so that this procedure is noop.
*/ */
@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
goto out; goto out;
if (!net_eq(dev_net(dev), sock_net(sk))) if (!net_eq(dev_net(dev), sock_net(sk)))
@@ -2093,12 +2095,12 @@ static int packet_rcv(struct sk_buff *sk @@ -2129,12 +2131,12 @@ static int packet_rcv(struct sk_buff *sk
unsigned int snaplen, res; unsigned int snaplen, res;
bool is_drop_n_account = false; bool is_drop_n_account = false;
@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!net_eq(dev_net(dev), sock_net(sk))) if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop; goto drop;
@@ -2224,12 +2226,12 @@ static int tpacket_rcv(struct sk_buff *s @@ -2261,12 +2263,12 @@ static int tpacket_rcv(struct sk_buff *s
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32); BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48); BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!net_eq(dev_net(dev), sock_net(sk))) if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop; goto drop;
@@ -3342,6 +3344,7 @@ static int packet_create(struct net *net @@ -3374,6 +3376,7 @@ static int packet_create(struct net *net
mutex_init(&po->pg_vec_lock); mutex_init(&po->pg_vec_lock);
po->rollover = NULL; po->rollover = NULL;
po->prot_hook.func = packet_rcv; po->prot_hook.func = packet_rcv;
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (sock->type == SOCK_PACKET) if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt; po->prot_hook.func = packet_rcv_spkt;
@@ -3979,6 +3982,16 @@ packet_setsockopt(struct socket *sock, i @@ -4009,6 +4012,16 @@ packet_setsockopt(struct socket *sock, i
WRITE_ONCE(po->xmit, val ? packet_direct_xmit : dev_queue_xmit); WRITE_ONCE(po->xmit, val ? packet_direct_xmit : dev_queue_xmit);
return 0; return 0;
} }
@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
default: default:
return -ENOPROTOOPT; return -ENOPROTOOPT;
} }
@@ -4035,6 +4048,13 @@ static int packet_getsockopt(struct sock @@ -4065,6 +4078,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR: case PACKET_VNET_HDR:
val = po->has_vnet_hdr; val = po->has_vnet_hdr;
break; break;

View file

@ -9,7 +9,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
@@ -2782,7 +2782,7 @@ static inline int pskb_network_may_pull( @@ -2988,7 +2988,7 @@ static inline int pskb_network_may_pull(
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8) * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
*/ */
#ifndef NET_SKB_PAD #ifndef NET_SKB_PAD

View file

@ -154,7 +154,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
} }
return &ip6n->tnls[prio][h]; return &ip6n->tnls[prio][h];
} }
@@ -378,6 +397,12 @@ ip6_tnl_dev_uninit(struct net_device *de @@ -376,6 +395,12 @@ ip6_tnl_dev_uninit(struct net_device *de
struct net *net = t->net; struct net *net = t->net;
struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id); struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id);
@ -167,7 +167,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
if (dev == ip6n->fb_tnl_dev) if (dev == ip6n->fb_tnl_dev)
RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL); RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL);
else else
@@ -790,6 +815,107 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t, @@ -788,6 +813,107 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t,
} }
EXPORT_SYMBOL_GPL(ip6_tnl_rcv_ctl); EXPORT_SYMBOL_GPL(ip6_tnl_rcv_ctl);
@ -275,7 +275,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
static int __ip6_tnl_rcv(struct ip6_tnl *tunnel, struct sk_buff *skb, static int __ip6_tnl_rcv(struct ip6_tnl *tunnel, struct sk_buff *skb,
const struct tnl_ptk_info *tpi, const struct tnl_ptk_info *tpi,
struct metadata_dst *tun_dst, struct metadata_dst *tun_dst,
@@ -843,6 +969,27 @@ static int __ip6_tnl_rcv(struct ip6_tnl @@ -840,6 +966,27 @@ static int __ip6_tnl_rcv(struct ip6_tnl
skb_reset_network_header(skb); skb_reset_network_header(skb);
memset(skb->cb, 0, sizeof(struct inet6_skb_parm)); memset(skb->cb, 0, sizeof(struct inet6_skb_parm));
@ -303,7 +303,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
__skb_tunnel_rx(skb, tunnel->dev, tunnel->net); __skb_tunnel_rx(skb, tunnel->dev, tunnel->net);
err = dscp_ecn_decapsulate(tunnel, ipv6h, skb); err = dscp_ecn_decapsulate(tunnel, ipv6h, skb);
@@ -994,6 +1141,7 @@ static void init_tel_txopt(struct ipv6_t @@ -987,6 +1134,7 @@ static void init_tel_txopt(struct ipv6_t
opt->ops.opt_nflen = 8; opt->ops.opt_nflen = 8;
} }
@ -311,7 +311,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
/** /**
* ip6_tnl_addr_conflict - compare packet addresses to tunnel's own * ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
* @t: the outgoing tunnel device * @t: the outgoing tunnel device
@@ -1274,6 +1422,7 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str @@ -1278,6 +1426,7 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str
u8 protocol) u8 protocol)
{ {
struct ip6_tnl *t = netdev_priv(dev); struct ip6_tnl *t = netdev_priv(dev);
@ -319,7 +319,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
struct ipv6hdr *ipv6h; struct ipv6hdr *ipv6h;
const struct iphdr *iph; const struct iphdr *iph;
int encap_limit = -1; int encap_limit = -1;
@@ -1373,6 +1522,18 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str @@ -1377,6 +1526,18 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str
fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL); fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
dsfield = INET_ECN_encapsulate(dsfield, orig_dsfield); dsfield = INET_ECN_encapsulate(dsfield, orig_dsfield);
@ -338,7 +338,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6)) if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
return -1; return -1;
@@ -1526,6 +1687,14 @@ ip6_tnl_change(struct ip6_tnl *t, const @@ -1530,6 +1691,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
t->parms.link = p->link; t->parms.link = p->link;
t->parms.proto = p->proto; t->parms.proto = p->proto;
t->parms.fwmark = p->fwmark; t->parms.fwmark = p->fwmark;
@ -352,7 +352,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
+ +
dst_cache_reset(&t->dst_cache); dst_cache_reset(&t->dst_cache);
ip6_tnl_link_config(t); ip6_tnl_link_config(t);
return 0; }
@@ -1564,6 +1733,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_ @@ -1564,6 +1733,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
p->flowinfo = u->flowinfo; p->flowinfo = u->flowinfo;
p->link = u->link; p->link = u->link;
@ -423,8 +423,8 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
+ } + }
} }
static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[], static int ip6_tnl_newlink(struct net *src_net, struct net_device *dev,
@@ -2102,6 +2321,12 @@ static void ip6_tnl_dellink(struct net_d @@ -2070,6 +2289,12 @@ static void ip6_tnl_dellink(struct net_d
static size_t ip6_tnl_get_size(const struct net_device *dev) static size_t ip6_tnl_get_size(const struct net_device *dev)
{ {
@ -437,7 +437,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
return return
/* IFLA_IPTUN_LINK */ /* IFLA_IPTUN_LINK */
nla_total_size(4) + nla_total_size(4) +
@@ -2131,6 +2356,24 @@ static size_t ip6_tnl_get_size(const str @@ -2099,6 +2324,24 @@ static size_t ip6_tnl_get_size(const str
nla_total_size(0) + nla_total_size(0) +
/* IFLA_IPTUN_FWMARK */ /* IFLA_IPTUN_FWMARK */
nla_total_size(4) + nla_total_size(4) +
@ -462,7 +462,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
0; 0;
} }
@@ -2138,6 +2381,9 @@ static int ip6_tnl_fill_info(struct sk_b @@ -2106,6 +2349,9 @@ static int ip6_tnl_fill_info(struct sk_b
{ {
struct ip6_tnl *tunnel = netdev_priv(dev); struct ip6_tnl *tunnel = netdev_priv(dev);
struct __ip6_tnl_parm *parm = &tunnel->parms; struct __ip6_tnl_parm *parm = &tunnel->parms;
@ -472,7 +472,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) || if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) || nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
@@ -2147,9 +2393,27 @@ static int ip6_tnl_fill_info(struct sk_b @@ -2115,9 +2361,27 @@ static int ip6_tnl_fill_info(struct sk_b
nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) || nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) || nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) || nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
@ -501,7 +501,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) || if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) || nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) || nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
@@ -2189,6 +2453,7 @@ static const struct nla_policy ip6_tnl_p @@ -2157,6 +2421,7 @@ static const struct nla_policy ip6_tnl_p
[IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 }, [IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 },
[IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG }, [IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG },
[IFLA_IPTUN_FWMARK] = { .type = NLA_U32 }, [IFLA_IPTUN_FWMARK] = { .type = NLA_U32 },

View file

@ -43,7 +43,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
--- a/include/uapi/linux/rtnetlink.h --- a/include/uapi/linux/rtnetlink.h
+++ b/include/uapi/linux/rtnetlink.h +++ b/include/uapi/linux/rtnetlink.h
@@ -256,6 +256,7 @@ enum { @@ -265,6 +265,7 @@ enum {
RTN_THROW, /* Not in this table */ RTN_THROW, /* Not in this table */
RTN_NAT, /* Translate this address */ RTN_NAT, /* Translate this address */
RTN_XRESOLVE, /* Use external resolver */ RTN_XRESOLVE, /* Use external resolver */
@ -53,7 +53,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
--- a/net/ipv4/fib_semantics.c --- a/net/ipv4/fib_semantics.c
+++ b/net/ipv4/fib_semantics.c +++ b/net/ipv4/fib_semantics.c
@@ -143,6 +143,10 @@ const struct fib_prop fib_props[RTN_MAX @@ -145,6 +145,10 @@ const struct fib_prop fib_props[RTN_MAX
.error = -EINVAL, .error = -EINVAL,
.scope = RT_SCOPE_NOWHERE, .scope = RT_SCOPE_NOWHERE,
}, },
@ -66,7 +66,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
static void rt_fibinfo_free(struct rtable __rcu **rtp) static void rt_fibinfo_free(struct rtable __rcu **rtp)
--- a/net/ipv4/fib_trie.c --- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c +++ b/net/ipv4/fib_trie.c
@@ -2772,6 +2772,7 @@ static const char *const rtn_type_names[ @@ -2778,6 +2778,7 @@ static const char *const rtn_type_names[
[RTN_THROW] = "THROW", [RTN_THROW] = "THROW",
[RTN_NAT] = "NAT", [RTN_NAT] = "NAT",
[RTN_XRESOLVE] = "XRESOLVE", [RTN_XRESOLVE] = "XRESOLVE",
@ -76,7 +76,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
static inline const char *rtn_type(char *buf, size_t len, unsigned int t) static inline const char *rtn_type(char *buf, size_t len, unsigned int t)
--- a/net/ipv4/ipmr.c --- a/net/ipv4/ipmr.c
+++ b/net/ipv4/ipmr.c +++ b/net/ipv4/ipmr.c
@@ -175,6 +175,7 @@ static int ipmr_rule_action(struct fib_r @@ -180,6 +180,7 @@ static int ipmr_rule_action(struct fib_r
case FR_ACT_UNREACHABLE: case FR_ACT_UNREACHABLE:
return -ENETUNREACH; return -ENETUNREACH;
case FR_ACT_PROHIBIT: case FR_ACT_PROHIBIT:
@ -86,7 +86,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
default: default:
--- a/net/ipv6/fib6_rules.c --- a/net/ipv6/fib6_rules.c
+++ b/net/ipv6/fib6_rules.c +++ b/net/ipv6/fib6_rules.c
@@ -220,6 +220,10 @@ static int __fib6_rule_action(struct fib @@ -221,6 +221,10 @@ static int __fib6_rule_action(struct fib
err = -EACCES; err = -EACCES;
rt = net->ipv6.ip6_prohibit_entry; rt = net->ipv6.ip6_prohibit_entry;
goto discard_pkt; goto discard_pkt;
@ -99,7 +99,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
tb_id = fib_rule_get_table(rule, arg); tb_id = fib_rule_get_table(rule, arg);
--- a/net/ipv6/ip6mr.c --- a/net/ipv6/ip6mr.c
+++ b/net/ipv6/ip6mr.c +++ b/net/ipv6/ip6mr.c
@@ -163,6 +163,8 @@ static int ip6mr_rule_action(struct fib_ @@ -170,6 +170,8 @@ static int ip6mr_rule_action(struct fib_
return -ENETUNREACH; return -ENETUNREACH;
case FR_ACT_PROHIBIT: case FR_ACT_PROHIBIT:
return -EACCES; return -EACCES;
@ -119,7 +119,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
static void ip6_link_failure(struct sk_buff *skb); static void ip6_link_failure(struct sk_buff *skb);
static void ip6_rt_update_pmtu(struct dst_entry *dst, struct sock *sk, static void ip6_rt_update_pmtu(struct dst_entry *dst, struct sock *sk,
struct sk_buff *skb, u32 mtu, struct sk_buff *skb, u32 mtu,
@@ -312,6 +314,18 @@ static const struct rt6_info ip6_prohibi @@ -317,6 +319,18 @@ static const struct rt6_info ip6_prohibi
.rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP), .rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP),
}; };
@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
static const struct rt6_info ip6_blk_hole_entry_template = { static const struct rt6_info ip6_blk_hole_entry_template = {
.dst = { .dst = {
.__refcnt = ATOMIC_INIT(1), .__refcnt = ATOMIC_INIT(1),
@@ -1033,6 +1047,7 @@ static const int fib6_prop[RTN_MAX + 1] @@ -1036,6 +1050,7 @@ static const int fib6_prop[RTN_MAX + 1]
[RTN_BLACKHOLE] = -EINVAL, [RTN_BLACKHOLE] = -EINVAL,
[RTN_UNREACHABLE] = -EHOSTUNREACH, [RTN_UNREACHABLE] = -EHOSTUNREACH,
[RTN_PROHIBIT] = -EACCES, [RTN_PROHIBIT] = -EACCES,
@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
[RTN_THROW] = -EAGAIN, [RTN_THROW] = -EAGAIN,
[RTN_NAT] = -EINVAL, [RTN_NAT] = -EINVAL,
[RTN_XRESOLVE] = -EINVAL, [RTN_XRESOLVE] = -EINVAL,
@@ -1068,6 +1083,10 @@ static void ip6_rt_init_dst_reject(struc @@ -1071,6 +1086,10 @@ static void ip6_rt_init_dst_reject(struc
rt->dst.output = ip6_pkt_prohibit_out; rt->dst.output = ip6_pkt_prohibit_out;
rt->dst.input = ip6_pkt_prohibit; rt->dst.input = ip6_pkt_prohibit;
break; break;
@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
case RTN_THROW: case RTN_THROW:
case RTN_UNREACHABLE: case RTN_UNREACHABLE:
default: default:
@@ -4560,6 +4579,17 @@ static int ip6_pkt_prohibit_out(struct n @@ -4539,6 +4558,17 @@ static int ip6_pkt_prohibit_out(struct n
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES); return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
} }
@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
/* /*
* Allocate a dst for local (unicast / anycast) address. * Allocate a dst for local (unicast / anycast) address.
*/ */
@@ -5047,7 +5077,8 @@ static int rtm_to_fib6_config(struct sk_ @@ -5032,7 +5062,8 @@ static int rtm_to_fib6_config(struct sk_
if (rtm->rtm_type == RTN_UNREACHABLE || if (rtm->rtm_type == RTN_UNREACHABLE ||
rtm->rtm_type == RTN_BLACKHOLE || rtm->rtm_type == RTN_BLACKHOLE ||
rtm->rtm_type == RTN_PROHIBIT || rtm->rtm_type == RTN_PROHIBIT ||
@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
cfg->fc_flags |= RTF_REJECT; cfg->fc_flags |= RTF_REJECT;
if (rtm->rtm_type == RTN_LOCAL) if (rtm->rtm_type == RTN_LOCAL)
@@ -6301,6 +6332,8 @@ static int ip6_route_dev_notify(struct n @@ -6286,6 +6317,8 @@ static int ip6_route_dev_notify(struct n
#ifdef CONFIG_IPV6_MULTIPLE_TABLES #ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.ip6_prohibit_entry->dst.dev = dev; net->ipv6.ip6_prohibit_entry->dst.dev = dev;
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
#endif #endif
@@ -6312,6 +6345,7 @@ static int ip6_route_dev_notify(struct n @@ -6297,6 +6330,7 @@ static int ip6_route_dev_notify(struct n
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev); in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES #ifdef CONFIG_IPV6_MULTIPLE_TABLES
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev); in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev); in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
#endif #endif
} }
@@ -6503,6 +6537,8 @@ static int __net_init ip6_route_net_init @@ -6488,6 +6522,8 @@ static int __net_init ip6_route_net_init
#ifdef CONFIG_IPV6_MULTIPLE_TABLES #ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.fib6_has_custom_rules = false; net->ipv6.fib6_has_custom_rules = false;
@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template, net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
sizeof(*net->ipv6.ip6_prohibit_entry), sizeof(*net->ipv6.ip6_prohibit_entry),
GFP_KERNEL); GFP_KERNEL);
@@ -6513,11 +6549,21 @@ static int __net_init ip6_route_net_init @@ -6498,11 +6534,21 @@ static int __net_init ip6_route_net_init
ip6_template_metrics, true); ip6_template_metrics, true);
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached); INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
ip6_template_metrics, true); ip6_template_metrics, true);
@@ -6544,6 +6590,8 @@ out: @@ -6529,6 +6575,8 @@ out:
return ret; return ret;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
out_ip6_prohibit_entry: out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry); kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry: out_ip6_null_entry:
@@ -6563,6 +6611,7 @@ static void __net_exit ip6_route_net_exi @@ -6548,6 +6596,7 @@ static void __net_exit ip6_route_net_exi
kfree(net->ipv6.ip6_null_entry); kfree(net->ipv6.ip6_null_entry);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES #ifdef CONFIG_IPV6_MULTIPLE_TABLES
kfree(net->ipv6.ip6_prohibit_entry); kfree(net->ipv6.ip6_prohibit_entry);
@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
kfree(net->ipv6.ip6_blk_hole_entry); kfree(net->ipv6.ip6_blk_hole_entry);
#endif #endif
dst_entries_destroy(&net->ipv6.ip6_dst_ops); dst_entries_destroy(&net->ipv6.ip6_dst_ops);
@@ -6646,6 +6695,9 @@ void __init ip6_route_init_special_entri @@ -6631,6 +6680,9 @@ void __init ip6_route_init_special_entri
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);

View file

@ -39,7 +39,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
*/ */
--- a/include/uapi/linux/rtnetlink.h --- a/include/uapi/linux/rtnetlink.h
+++ b/include/uapi/linux/rtnetlink.h +++ b/include/uapi/linux/rtnetlink.h
@@ -260,6 +260,8 @@ enum { @@ -269,6 +269,8 @@ enum {
__RTN_MAX __RTN_MAX
}; };

View file

@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/include/linux/netdevice.h --- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h +++ b/include/linux/netdevice.h
@@ -2075,6 +2075,8 @@ struct net_device { @@ -2132,6 +2132,8 @@ struct net_device {
struct netdev_hw_addr_list mc; struct netdev_hw_addr_list mc;
struct netdev_hw_addr_list dev_addrs; struct netdev_hw_addr_list dev_addrs;
@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#endif #endif
--- a/include/linux/skbuff.h --- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h +++ b/include/linux/skbuff.h
@@ -890,6 +890,7 @@ struct sk_buff { @@ -964,6 +964,7 @@ struct sk_buff {
#ifdef CONFIG_IPV6_NDISC_NODETYPE #ifdef CONFIG_IPV6_NDISC_NODETYPE
__u8 ndisc_nodetype:2; __u8 ndisc_nodetype:2;
#endif #endif
@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
__u8 inner_protocol_type:1; __u8 inner_protocol_type:1;
--- a/net/core/gro.c --- a/net/core/gro.c
+++ b/net/core/gro.c +++ b/net/core/gro.c
@@ -6062,6 +6062,9 @@ static enum gro_result dev_gro_receive(s @@ -491,6 +491,9 @@ static enum gro_result dev_gro_receive(s
int same_flow; int same_flow;
int grow; int grow;
@ -44,7 +44,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/core/dev.c --- a/net/core/dev.c
+++ b/net/core/dev.c +++ b/net/core/dev.c
@@ -8076,6 +8079,48 @@ static void __netdev_adjacent_dev_unlink @@ -7604,6 +7604,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower); &upper_dev->adj_list.lower);
} }
@ -93,7 +93,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static int __netdev_upper_dev_link(struct net_device *dev, static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master, struct net_device *upper_dev, bool master,
void *upper_priv, void *upper_info, void *upper_priv, void *upper_info,
@@ -8127,6 +8172,7 @@ static int __netdev_upper_dev_link(struc @@ -7655,6 +7697,7 @@ static int __netdev_upper_dev_link(struc
if (ret) if (ret)
return ret; return ret;
@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info); &changeupper_info.info);
ret = notifier_to_errno(ret); ret = notifier_to_errno(ret);
@@ -8223,6 +8269,7 @@ static void __netdev_upper_dev_unlink(st @@ -7751,6 +7794,7 @@ static void __netdev_upper_dev_unlink(st
__netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); __netdev_adjacent_dev_unlink_neighbour(dev, upper_dev);
@ -109,7 +109,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
&changeupper_info.info); &changeupper_info.info);
@@ -9042,6 +9089,7 @@ int dev_set_mac_address(struct net_devic @@ -8803,6 +8847,7 @@ int dev_set_mac_address(struct net_devic
if (err) if (err)
return err; return err;
dev->addr_assign_type = NET_ADDR_SET; dev->addr_assign_type = NET_ADDR_SET;
@ -119,7 +119,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
return 0; return 0;
--- a/net/ethernet/eth.c --- a/net/ethernet/eth.c
+++ b/net/ethernet/eth.c +++ b/net/ethernet/eth.c
@@ -142,6 +142,18 @@ u32 eth_get_headlen(const struct net_dev @@ -143,6 +143,18 @@ u32 eth_get_headlen(const struct net_dev
} }
EXPORT_SYMBOL(eth_get_headlen); EXPORT_SYMBOL(eth_get_headlen);
@ -138,7 +138,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/** /**
* eth_type_trans - determine the packet's protocol ID. * eth_type_trans - determine the packet's protocol ID.
* @skb: received socket data * @skb: received socket data
@@ -173,6 +185,10 @@ __be16 eth_type_trans(struct sk_buff *sk @@ -174,6 +186,10 @@ __be16 eth_type_trans(struct sk_buff *sk
} else { } else {
skb->pkt_type = PACKET_OTHERHOST; skb->pkt_type = PACKET_OTHERHOST;
} }

View file

@ -20,7 +20,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
--- a/net/core/of_net.c --- a/net/core/of_net.c
+++ b/net/core/of_net.c +++ b/net/core/of_net.c
@@ -119,27 +119,62 @@ static int of_get_mac_addr_nvmem(struct @@ -119,28 +119,63 @@ static int of_get_mac_addr_nvmem(struct
* this case, the real MAC is in 'local-mac-address', and 'mac-address' exists * this case, the real MAC is in 'local-mac-address', and 'mac-address' exists
* but is all zeros. * but is all zeros.
* *
@ -87,3 +87,4 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
+ return ret; + return ret;
} }
EXPORT_SYMBOL(of_get_mac_address); EXPORT_SYMBOL(of_get_mac_address);

View file

@ -10,7 +10,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
--- a/net/netfilter/nf_flow_table_core.c --- a/net/netfilter/nf_flow_table_core.c
+++ b/net/netfilter/nf_flow_table_core.c +++ b/net/netfilter/nf_flow_table_core.c
@@ -608,28 +608,52 @@ void nf_flow_table_free(struct nf_flowta @@ -659,6 +659,23 @@ static struct pernet_operations nf_flow_
.exit_batch = nf_flow_table_pernet_exit, .exit_batch = nf_flow_table_pernet_exit,
}; };
@ -34,19 +34,14 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
static int __init nf_flow_table_module_init(void) static int __init nf_flow_table_module_init(void)
{ {
int ret; int ret;
@@ -671,8 +688,14 @@ static int __init nf_flow_table_module_i
ret = register_pernet_subsys(&nf_flow_table_net_ops);
if (ret < 0)
return ret;
ret = nf_flow_table_offload_init();
if (ret) if (ret)
goto out_offload; goto out_offload;
+
+ ret = register_netdevice_notifier(&flow_offload_netdev_notifier); + ret = register_netdevice_notifier(&flow_offload_netdev_notifier);
+ if (ret) + if (ret)
+ goto out_offload_init; + goto out_offload_init;
+
return 0; return 0;
+out_offload_init: +out_offload_init:
@ -54,18 +49,17 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
out_offload: out_offload:
unregister_pernet_subsys(&nf_flow_table_net_ops); unregister_pernet_subsys(&nf_flow_table_net_ops);
return ret; return ret;
} @@ -680,6 +703,7 @@ out_offload:
static void __exit nf_flow_table_module_exit(void) static void __exit nf_flow_table_module_exit(void)
{ {
+ unregister_netdevice_notifier(&flow_offload_netdev_notifier); + unregister_netdevice_notifier(&flow_offload_netdev_notifier);
nf_flow_table_offload_exit(); nf_flow_table_offload_exit();
unregister_pernet_subsys(&nf_flow_table_net_ops); unregister_pernet_subsys(&nf_flow_table_net_ops);
} }
--- a/net/netfilter/nft_flow_offload.c --- a/net/netfilter/nft_flow_offload.c
+++ b/net/netfilter/nft_flow_offload.c +++ b/net/netfilter/nft_flow_offload.c
@@ -444,47 +444,14 @@ static struct nft_expr_type nft_flow_off @@ -468,47 +468,14 @@ static struct nft_expr_type nft_flow_off
.owner = THIS_MODULE, .owner = THIS_MODULE,
}; };

View file

@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -2443,8 +2443,8 @@ static irqreturn_t mtk_handle_irq_rx(int @@ -3048,8 +3048,8 @@ static irqreturn_t mtk_handle_irq_rx(int
eth->rx_events++; eth->rx_events++;
if (likely(napi_schedule_prep(&eth->rx_napi))) { if (likely(napi_schedule_prep(&eth->rx_napi))) {
@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
} }
return IRQ_HANDLED; return IRQ_HANDLED;
@@ -2456,8 +2456,8 @@ static irqreturn_t mtk_handle_irq_tx(int @@ -3061,8 +3061,8 @@ static irqreturn_t mtk_handle_irq_tx(int
eth->tx_events++; eth->tx_events++;
if (likely(napi_schedule_prep(&eth->tx_napi))) { if (likely(napi_schedule_prep(&eth->tx_napi))) {
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
} }
return IRQ_HANDLED; return IRQ_HANDLED;
@@ -3623,6 +3623,8 @@ static int mtk_probe(struct platform_dev @@ -4727,6 +4727,8 @@ static int mtk_probe(struct platform_dev
* for NAPI to work * for NAPI to work
*/ */
init_dummy_netdev(&eth->dummy_dev); init_dummy_netdev(&eth->dummy_dev);

View file

@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/net/phy/phy_device.c --- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c
@@ -1738,6 +1738,9 @@ void phy_detach(struct phy_device *phyde @@ -1750,6 +1750,9 @@ void phy_detach(struct phy_device *phyde
struct module *ndev_owner = NULL; struct module *ndev_owner = NULL;
struct mii_bus *bus; struct mii_bus *bus;
@ -23,7 +23,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
sysfs_remove_link(&dev->dev.kobj, "phydev"); sysfs_remove_link(&dev->dev.kobj, "phydev");
--- a/include/linux/phy.h --- a/include/linux/phy.h
+++ b/include/linux/phy.h +++ b/include/linux/phy.h
@@ -789,6 +789,12 @@ struct phy_driver { @@ -858,6 +858,12 @@ struct phy_driver {
/** @handle_interrupt: Override default interrupt handling */ /** @handle_interrupt: Override default interrupt handling */
irqreturn_t (*handle_interrupt)(struct phy_device *phydev); irqreturn_t (*handle_interrupt)(struct phy_device *phydev);

View file

@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/include/linux/if_bridge.h --- a/include/linux/if_bridge.h
+++ b/include/linux/if_bridge.h +++ b/include/linux/if_bridge.h
@@ -58,6 +58,7 @@ struct br_ip_list { @@ -59,6 +59,7 @@ struct br_ip_list {
#define BR_MRP_LOST_IN_CONT BIT(19) #define BR_MRP_LOST_IN_CONT BIT(19)
#define BR_TX_FWD_OFFLOAD BIT(20) #define BR_TX_FWD_OFFLOAD BIT(20)
#define BR_PORT_LOCKED BIT(21) #define BR_PORT_LOCKED BIT(21)
@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!(p->flags & BR_BCAST_FLOOD) && skb->dev != br->dev) if (!(p->flags & BR_BCAST_FLOOD) && skb->dev != br->dev)
--- a/net/bridge/br_input.c --- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c +++ b/net/bridge/br_input.c
@@ -326,6 +326,8 @@ static rx_handler_result_t br_handle_fra @@ -344,6 +344,8 @@ static rx_handler_result_t br_handle_fra
fwd_mask |= p->group_fwd_mask; fwd_mask |= p->group_fwd_mask;
switch (dest[5]) { switch (dest[5]) {
case 0x00: /* Bridge Group Address */ case 0x00: /* Bridge Group Address */
@ -106,7 +106,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/include/uapi/linux/if_link.h --- a/include/uapi/linux/if_link.h
+++ b/include/uapi/linux/if_link.h +++ b/include/uapi/linux/if_link.h
@@ -536,6 +536,7 @@ enum { @@ -561,6 +561,7 @@ enum {
IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT, IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT,
IFLA_BRPORT_MCAST_EHT_HOSTS_CNT, IFLA_BRPORT_MCAST_EHT_HOSTS_CNT,
IFLA_BRPORT_LOCKED, IFLA_BRPORT_LOCKED,
@ -116,7 +116,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
--- a/net/bridge/br_netlink.c --- a/net/bridge/br_netlink.c
+++ b/net/bridge/br_netlink.c +++ b/net/bridge/br_netlink.c
@@ -184,6 +184,7 @@ static inline size_t br_port_info_size(v @@ -188,6 +188,7 @@ static inline size_t br_port_info_size(v
+ nla_total_size(1) /* IFLA_BRPORT_NEIGH_SUPPRESS */ + nla_total_size(1) /* IFLA_BRPORT_NEIGH_SUPPRESS */
+ nla_total_size(1) /* IFLA_BRPORT_ISOLATED */ + nla_total_size(1) /* IFLA_BRPORT_ISOLATED */
+ nla_total_size(1) /* IFLA_BRPORT_LOCKED */ + nla_total_size(1) /* IFLA_BRPORT_LOCKED */
@ -124,7 +124,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+ nla_total_size(sizeof(struct ifla_bridge_id)) /* IFLA_BRPORT_ROOT_ID */ + nla_total_size(sizeof(struct ifla_bridge_id)) /* IFLA_BRPORT_ROOT_ID */
+ nla_total_size(sizeof(struct ifla_bridge_id)) /* IFLA_BRPORT_BRIDGE_ID */ + nla_total_size(sizeof(struct ifla_bridge_id)) /* IFLA_BRPORT_BRIDGE_ID */
+ nla_total_size(sizeof(u16)) /* IFLA_BRPORT_DESIGNATED_PORT */ + nla_total_size(sizeof(u16)) /* IFLA_BRPORT_DESIGNATED_PORT */
@@ -269,7 +270,8 @@ static int br_port_fill_attrs(struct sk_ @@ -274,7 +275,8 @@ static int br_port_fill_attrs(struct sk_
nla_put_u8(skb, IFLA_BRPORT_MRP_IN_OPEN, nla_put_u8(skb, IFLA_BRPORT_MRP_IN_OPEN,
!!(p->flags & BR_MRP_LOST_IN_CONT)) || !!(p->flags & BR_MRP_LOST_IN_CONT)) ||
nla_put_u8(skb, IFLA_BRPORT_ISOLATED, !!(p->flags & BR_ISOLATED)) || nla_put_u8(skb, IFLA_BRPORT_ISOLATED, !!(p->flags & BR_ISOLATED)) ||
@ -134,15 +134,15 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
return -EMSGSIZE; return -EMSGSIZE;
timerval = br_timer_value(&p->message_age_timer); timerval = br_timer_value(&p->message_age_timer);
@@ -829,6 +831,7 @@ static const struct nla_policy br_port_p @@ -878,6 +880,7 @@ static const struct nla_policy br_port_p
[IFLA_BRPORT_ISOLATED] = { .type = NLA_U8 }, [IFLA_BRPORT_LOCKED] = { .type = NLA_U8 },
[IFLA_BRPORT_BACKUP_PORT] = { .type = NLA_U32 }, [IFLA_BRPORT_BACKUP_PORT] = { .type = NLA_U32 },
[IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT] = { .type = NLA_U32 }, [IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT] = { .type = NLA_U32 },
+ [IFLA_BRPORT_BPDU_FILTER] = { .type = NLA_U8 }, + [IFLA_BRPORT_BPDU_FILTER] = { .type = NLA_U8 },
}; };
/* Change the state of the port and notify spanning tree */ /* Change the state of the port and notify spanning tree */
@@ -893,6 +896,7 @@ static int br_setport(struct net_bridge_ @@ -943,6 +946,7 @@ static int br_setport(struct net_bridge_
br_set_port_flag(p, tb, IFLA_BRPORT_NEIGH_SUPPRESS, BR_NEIGH_SUPPRESS); br_set_port_flag(p, tb, IFLA_BRPORT_NEIGH_SUPPRESS, BR_NEIGH_SUPPRESS);
br_set_port_flag(p, tb, IFLA_BRPORT_ISOLATED, BR_ISOLATED); br_set_port_flag(p, tb, IFLA_BRPORT_ISOLATED, BR_ISOLATED);
br_set_port_flag(p, tb, IFLA_BRPORT_LOCKED, BR_PORT_LOCKED); br_set_port_flag(p, tb, IFLA_BRPORT_LOCKED, BR_PORT_LOCKED);
@ -152,7 +152,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/core/rtnetlink.c --- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c
@@ -55,7 +55,7 @@ @@ -57,7 +57,7 @@
#include "dev.h" #include "dev.h"
#define RTNL_MAX_TYPE 50 #define RTNL_MAX_TYPE 50
@ -161,7 +161,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
struct rtnl_link { struct rtnl_link {
rtnl_doit_func doit; rtnl_doit_func doit;
@@ -4700,7 +4700,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu @@ -4811,7 +4811,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu
brport_nla_put_flag(skb, flags, mask, brport_nla_put_flag(skb, flags, mask,
IFLA_BRPORT_MCAST_FLOOD, BR_MCAST_FLOOD) || IFLA_BRPORT_MCAST_FLOOD, BR_MCAST_FLOOD) ||
brport_nla_put_flag(skb, flags, mask, brport_nla_put_flag(skb, flags, mask,

View file

@ -39,7 +39,7 @@ Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
#define RTL8366RB_POWER_SAVE 0x15 #define RTL8366RB_POWER_SAVE 0x15
#define RTL8366RB_POWER_SAVE_ON BIT(12) #define RTL8366RB_POWER_SAVE_ON BIT(12)
@@ -841,6 +850,48 @@ static irqreturn_t rtl9000a_handle_inter @@ -849,6 +858,48 @@ static irqreturn_t rtl9000a_handle_inter
return IRQ_HANDLED; return IRQ_HANDLED;
} }
@ -88,7 +88,7 @@ Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
static struct phy_driver realtek_drvs[] = { static struct phy_driver realtek_drvs[] = {
{ {
PHY_ID_MATCH_EXACT(0x00008201), PHY_ID_MATCH_EXACT(0x00008201),
@@ -981,6 +1032,7 @@ static struct phy_driver realtek_drvs[] @@ -1001,6 +1052,7 @@ static struct phy_driver realtek_drvs[]
PHY_ID_MATCH_EXACT(0x001cc849), PHY_ID_MATCH_EXACT(0x001cc849),
.name = "RTL8221B-VB-CG 2.5Gbps PHY", .name = "RTL8221B-VB-CG 2.5Gbps PHY",
.get_features = rtl822x_get_features, .get_features = rtl822x_get_features,
@ -96,7 +96,7 @@ Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
.config_aneg = rtl822x_config_aneg, .config_aneg = rtl822x_config_aneg,
.read_status = rtl822x_read_status, .read_status = rtl822x_read_status,
.suspend = genphy_suspend, .suspend = genphy_suspend,
@@ -992,6 +1044,7 @@ static struct phy_driver realtek_drvs[] @@ -1012,6 +1064,7 @@ static struct phy_driver realtek_drvs[]
.name = "RTL8221B-VM-CG 2.5Gbps PHY", .name = "RTL8221B-VM-CG 2.5Gbps PHY",
.get_features = rtl822x_get_features, .get_features = rtl822x_get_features,
.config_aneg = rtl822x_config_aneg, .config_aneg = rtl822x_config_aneg,

View file

@ -16,7 +16,7 @@ Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
--- a/drivers/net/phy/realtek.c --- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c +++ b/drivers/net/phy/realtek.c
@@ -676,6 +676,25 @@ static int rtl822x_config_aneg(struct ph @@ -684,6 +684,25 @@ static int rtl822x_config_aneg(struct ph
return __genphy_config_aneg(phydev, ret); return __genphy_config_aneg(phydev, ret);
} }
@ -42,7 +42,7 @@ Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
static int rtl822x_read_status(struct phy_device *phydev) static int rtl822x_read_status(struct phy_device *phydev)
{ {
int ret; int ret;
@@ -694,11 +713,14 @@ static int rtl822x_read_status(struct ph @@ -702,11 +721,14 @@ static int rtl822x_read_status(struct ph
phydev->lp_advertising, lpadv & RTL_LPADV_2500FULL); phydev->lp_advertising, lpadv & RTL_LPADV_2500FULL);
} }

View file

@ -15,7 +15,7 @@ Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -2347,6 +2347,10 @@ mt7531_setup(struct dsa_switch *ds) @@ -2196,6 +2196,10 @@ mt7530_setup(struct dsa_switch *ds)
return -ENODEV; return -ENODEV;
} }

View file

@ -15,7 +15,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/net/phy/realtek.c --- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c +++ b/drivers/net/phy/realtek.c
@@ -1018,6 +1018,7 @@ static struct phy_driver realtek_drvs[] @@ -1038,6 +1038,7 @@ static struct phy_driver realtek_drvs[]
.write_page = rtl821x_write_page, .write_page = rtl821x_write_page,
.read_mmd = rtl822x_read_mmd, .read_mmd = rtl822x_read_mmd,
.write_mmd = rtl822x_write_mmd, .write_mmd = rtl822x_write_mmd,
@ -23,7 +23,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
}, { }, {
PHY_ID_MATCH_EXACT(0x001cc840), PHY_ID_MATCH_EXACT(0x001cc840),
.name = "RTL8226B_RTL8221B 2.5Gbps PHY", .name = "RTL8226B_RTL8221B 2.5Gbps PHY",
@@ -1030,6 +1031,7 @@ static struct phy_driver realtek_drvs[] @@ -1050,6 +1051,7 @@ static struct phy_driver realtek_drvs[]
.write_page = rtl821x_write_page, .write_page = rtl821x_write_page,
.read_mmd = rtl822x_read_mmd, .read_mmd = rtl822x_read_mmd,
.write_mmd = rtl822x_write_mmd, .write_mmd = rtl822x_write_mmd,
@ -31,7 +31,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
}, { }, {
PHY_ID_MATCH_EXACT(0x001cc838), PHY_ID_MATCH_EXACT(0x001cc838),
.name = "RTL8226-CG 2.5Gbps PHY", .name = "RTL8226-CG 2.5Gbps PHY",
@@ -1040,6 +1042,7 @@ static struct phy_driver realtek_drvs[] @@ -1060,6 +1062,7 @@ static struct phy_driver realtek_drvs[]
.resume = rtlgen_resume, .resume = rtlgen_resume,
.read_page = rtl821x_read_page, .read_page = rtl821x_read_page,
.write_page = rtl821x_write_page, .write_page = rtl821x_write_page,
@ -39,7 +39,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
}, { }, {
PHY_ID_MATCH_EXACT(0x001cc848), PHY_ID_MATCH_EXACT(0x001cc848),
.name = "RTL8226B-CG_RTL8221B-CG 2.5Gbps PHY", .name = "RTL8226B-CG_RTL8221B-CG 2.5Gbps PHY",
@@ -1050,6 +1053,7 @@ static struct phy_driver realtek_drvs[] @@ -1070,6 +1073,7 @@ static struct phy_driver realtek_drvs[]
.resume = rtlgen_resume, .resume = rtlgen_resume,
.read_page = rtl821x_read_page, .read_page = rtl821x_read_page,
.write_page = rtl821x_write_page, .write_page = rtl821x_write_page,
@ -47,7 +47,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
}, { }, {
PHY_ID_MATCH_EXACT(0x001cc849), PHY_ID_MATCH_EXACT(0x001cc849),
.name = "RTL8221B-VB-CG 2.5Gbps PHY", .name = "RTL8221B-VB-CG 2.5Gbps PHY",
@@ -1061,6 +1065,7 @@ static struct phy_driver realtek_drvs[] @@ -1081,6 +1085,7 @@ static struct phy_driver realtek_drvs[]
.resume = rtlgen_resume, .resume = rtlgen_resume,
.read_page = rtl821x_read_page, .read_page = rtl821x_read_page,
.write_page = rtl821x_write_page, .write_page = rtl821x_write_page,
@ -55,7 +55,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
}, { }, {
PHY_ID_MATCH_EXACT(0x001cc84a), PHY_ID_MATCH_EXACT(0x001cc84a),
.name = "RTL8221B-VM-CG 2.5Gbps PHY", .name = "RTL8221B-VM-CG 2.5Gbps PHY",
@@ -1072,6 +1077,7 @@ static struct phy_driver realtek_drvs[] @@ -1092,6 +1097,7 @@ static struct phy_driver realtek_drvs[]
.resume = rtlgen_resume, .resume = rtlgen_resume,
.read_page = rtl821x_read_page, .read_page = rtl821x_read_page,
.write_page = rtl821x_write_page, .write_page = rtl821x_write_page,

View file

@ -19,7 +19,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/net/phy/realtek.c --- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c +++ b/drivers/net/phy/realtek.c
@@ -875,6 +875,7 @@ static irqreturn_t rtl9000a_handle_inter @@ -883,6 +883,7 @@ static irqreturn_t rtl9000a_handle_inter
static int rtl8221b_config_init(struct phy_device *phydev) static int rtl8221b_config_init(struct phy_device *phydev)
{ {
u16 option_mode; u16 option_mode;
@ -27,7 +27,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
switch (phydev->interface) { switch (phydev->interface) {
case PHY_INTERFACE_MODE_2500BASEX: case PHY_INTERFACE_MODE_2500BASEX:
@@ -911,6 +912,13 @@ static int rtl8221b_config_init(struct p @@ -919,6 +920,13 @@ static int rtl8221b_config_init(struct p
break; break;
} }

View file

@ -18,7 +18,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/net/phy/realtek.c --- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c +++ b/drivers/net/phy/realtek.c
@@ -727,9 +727,11 @@ static bool rtlgen_supports_2_5gbps(stru @@ -735,9 +735,11 @@ static bool rtlgen_supports_2_5gbps(stru
{ {
int val; int val;

View file

@ -25,7 +25,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
#define RTL9000A_GINMR 0x14 #define RTL9000A_GINMR 0x14
#define RTL9000A_GINMR_LINK_STATUS BIT(4) #define RTL9000A_GINMR_LINK_STATUS BIT(4)
@@ -661,14 +657,11 @@ static int rtl822x_config_aneg(struct ph @@ -669,14 +665,11 @@ static int rtl822x_config_aneg(struct ph
int ret = 0; int ret = 0;
if (phydev->autoneg == AUTONEG_ENABLE) { if (phydev->autoneg == AUTONEG_ENABLE) {
@ -44,7 +44,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
if (ret < 0) if (ret < 0)
return ret; return ret;
} }
@@ -705,12 +698,7 @@ static int rtl822x_read_status(struct ph @@ -713,12 +706,7 @@ static int rtl822x_read_status(struct ph
if (lpadv < 0) if (lpadv < 0)
return lpadv; return lpadv;

View file

@ -15,7 +15,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/net/phy/realtek.c --- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c +++ b/drivers/net/phy/realtek.c
@@ -698,6 +698,10 @@ static int rtl822x_read_status(struct ph @@ -706,6 +706,10 @@ static int rtl822x_read_status(struct ph
if (lpadv < 0) if (lpadv < 0)
return lpadv; return lpadv;

View file

@ -24,7 +24,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
#define RTL8366RB_POWER_SAVE 0x15 #define RTL8366RB_POWER_SAVE 0x15
#define RTL8366RB_POWER_SAVE_ON BIT(12) #define RTL8366RB_POWER_SAVE_ON BIT(12)
@@ -740,6 +744,25 @@ static int rtl8226_match_phy_device(stru @@ -748,6 +752,25 @@ static int rtl8226_match_phy_device(stru
rtlgen_supports_2_5gbps(phydev); rtlgen_supports_2_5gbps(phydev);
} }
@ -50,7 +50,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
static int rtlgen_resume(struct phy_device *phydev) static int rtlgen_resume(struct phy_device *phydev)
{ {
int ret = genphy_resume(phydev); int ret = genphy_resume(phydev);
@@ -1013,6 +1036,7 @@ static struct phy_driver realtek_drvs[] @@ -1033,6 +1056,7 @@ static struct phy_driver realtek_drvs[]
.match_phy_device = rtl8226_match_phy_device, .match_phy_device = rtl8226_match_phy_device,
.get_features = rtl822x_get_features, .get_features = rtl822x_get_features,
.config_aneg = rtl822x_config_aneg, .config_aneg = rtl822x_config_aneg,
@ -58,7 +58,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
.read_status = rtl822x_read_status, .read_status = rtl822x_read_status,
.suspend = genphy_suspend, .suspend = genphy_suspend,
.resume = rtlgen_resume, .resume = rtlgen_resume,
@@ -1026,6 +1050,7 @@ static struct phy_driver realtek_drvs[] @@ -1046,6 +1070,7 @@ static struct phy_driver realtek_drvs[]
.name = "RTL8226B_RTL8221B 2.5Gbps PHY", .name = "RTL8226B_RTL8221B 2.5Gbps PHY",
.get_features = rtl822x_get_features, .get_features = rtl822x_get_features,
.config_aneg = rtl822x_config_aneg, .config_aneg = rtl822x_config_aneg,
@ -66,7 +66,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
.read_status = rtl822x_read_status, .read_status = rtl822x_read_status,
.suspend = genphy_suspend, .suspend = genphy_suspend,
.resume = rtlgen_resume, .resume = rtlgen_resume,
@@ -1039,6 +1064,7 @@ static struct phy_driver realtek_drvs[] @@ -1059,6 +1084,7 @@ static struct phy_driver realtek_drvs[]
.name = "RTL8226-CG 2.5Gbps PHY", .name = "RTL8226-CG 2.5Gbps PHY",
.get_features = rtl822x_get_features, .get_features = rtl822x_get_features,
.config_aneg = rtl822x_config_aneg, .config_aneg = rtl822x_config_aneg,
@ -74,7 +74,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
.read_status = rtl822x_read_status, .read_status = rtl822x_read_status,
.suspend = genphy_suspend, .suspend = genphy_suspend,
.resume = rtlgen_resume, .resume = rtlgen_resume,
@@ -1050,6 +1076,7 @@ static struct phy_driver realtek_drvs[] @@ -1070,6 +1096,7 @@ static struct phy_driver realtek_drvs[]
.name = "RTL8226B-CG_RTL8221B-CG 2.5Gbps PHY", .name = "RTL8226B-CG_RTL8221B-CG 2.5Gbps PHY",
.get_features = rtl822x_get_features, .get_features = rtl822x_get_features,
.config_aneg = rtl822x_config_aneg, .config_aneg = rtl822x_config_aneg,
@ -82,7 +82,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
.read_status = rtl822x_read_status, .read_status = rtl822x_read_status,
.suspend = genphy_suspend, .suspend = genphy_suspend,
.resume = rtlgen_resume, .resume = rtlgen_resume,
@@ -1062,6 +1089,7 @@ static struct phy_driver realtek_drvs[] @@ -1082,6 +1109,7 @@ static struct phy_driver realtek_drvs[]
.get_features = rtl822x_get_features, .get_features = rtl822x_get_features,
.config_init = rtl8221b_config_init, .config_init = rtl8221b_config_init,
.config_aneg = rtl822x_config_aneg, .config_aneg = rtl822x_config_aneg,
@ -90,7 +90,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
.read_status = rtl822x_read_status, .read_status = rtl822x_read_status,
.suspend = genphy_suspend, .suspend = genphy_suspend,
.resume = rtlgen_resume, .resume = rtlgen_resume,
@@ -1074,6 +1102,7 @@ static struct phy_driver realtek_drvs[] @@ -1094,6 +1122,7 @@ static struct phy_driver realtek_drvs[]
.get_features = rtl822x_get_features, .get_features = rtl822x_get_features,
.config_aneg = rtl822x_config_aneg, .config_aneg = rtl822x_config_aneg,
.config_init = rtl8221b_config_init, .config_init = rtl8221b_config_init,

View file

@ -13,7 +13,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/net/phy/realtek.c --- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c +++ b/drivers/net/phy/realtek.c
@@ -744,6 +744,38 @@ static int rtl8226_match_phy_device(stru @@ -752,6 +752,38 @@ static int rtl8226_match_phy_device(stru
rtlgen_supports_2_5gbps(phydev); rtlgen_supports_2_5gbps(phydev);
} }
@ -52,7 +52,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
static int rtl822x_probe(struct phy_device *phydev) static int rtl822x_probe(struct phy_device *phydev)
{ {
struct device *dev = &phydev->mdio.dev; struct device *dev = &phydev->mdio.dev;
@@ -1084,7 +1116,7 @@ static struct phy_driver realtek_drvs[] @@ -1104,7 +1136,7 @@ static struct phy_driver realtek_drvs[]
.write_page = rtl821x_write_page, .write_page = rtl821x_write_page,
.soft_reset = genphy_soft_reset, .soft_reset = genphy_soft_reset,
}, { }, {

View file

@ -53,7 +53,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -4642,8 +4642,8 @@ static int mtk_probe(struct platform_dev @@ -4696,8 +4696,8 @@ static int mtk_probe(struct platform_dev
for (i = 0; i < num_ppe; i++) { for (i = 0; i < num_ppe; i++) {
u32 ppe_addr = eth->soc->reg_map->ppe_base + i * 0x400; u32 ppe_addr = eth->soc->reg_map->ppe_base + i * 0x400;
@ -63,8 +63,8 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
+ +
if (!eth->ppe[i]) { if (!eth->ppe[i]) {
err = -ENOMEM; err = -ENOMEM;
goto err_free_dev; goto err_deinit_ppe;
@@ -4770,6 +4770,7 @@ static const struct mtk_soc_data mt7622_ @@ -4823,6 +4823,7 @@ static const struct mtk_soc_data mt7622_
.required_pctl = false, .required_pctl = false,
.offload_version = 2, .offload_version = 2,
.hash_offset = 2, .hash_offset = 2,
@ -72,7 +72,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
.foe_entry_size = sizeof(struct mtk_foe_entry) - 16, .foe_entry_size = sizeof(struct mtk_foe_entry) - 16,
.txrx = { .txrx = {
.txd_size = sizeof(struct mtk_tx_dma), .txd_size = sizeof(struct mtk_tx_dma),
@@ -4807,6 +4808,7 @@ static const struct mtk_soc_data mt7629_ @@ -4860,6 +4861,7 @@ static const struct mtk_soc_data mt7629_
.hw_features = MTK_HW_FEATURES, .hw_features = MTK_HW_FEATURES,
.required_clks = MT7629_CLKS_BITMAP, .required_clks = MT7629_CLKS_BITMAP,
.required_pctl = false, .required_pctl = false,
@ -80,7 +80,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
.txrx = { .txrx = {
.txd_size = sizeof(struct mtk_tx_dma), .txd_size = sizeof(struct mtk_tx_dma),
.rxd_size = sizeof(struct mtk_rx_dma), .rxd_size = sizeof(struct mtk_rx_dma),
@@ -4827,6 +4829,7 @@ static const struct mtk_soc_data mt7981_ @@ -4880,6 +4882,7 @@ static const struct mtk_soc_data mt7981_
.offload_version = 2, .offload_version = 2,
.hash_offset = 4, .hash_offset = 4,
.foe_entry_size = sizeof(struct mtk_foe_entry), .foe_entry_size = sizeof(struct mtk_foe_entry),
@ -88,8 +88,8 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
.txrx = { .txrx = {
.txd_size = sizeof(struct mtk_tx_dma_v2), .txd_size = sizeof(struct mtk_tx_dma_v2),
.rxd_size = sizeof(struct mtk_rx_dma_v2), .rxd_size = sizeof(struct mtk_rx_dma_v2),
@@ -4847,6 +4850,7 @@ static const struct mtk_soc_data mt7986_ @@ -4899,6 +4902,7 @@ static const struct mtk_soc_data mt7986_
.offload_version = 2, .required_pctl = false,
.hash_offset = 4, .hash_offset = 4,
.foe_entry_size = sizeof(struct mtk_foe_entry), .foe_entry_size = sizeof(struct mtk_foe_entry),
+ .has_accounting = true, + .has_accounting = true,
@ -98,7 +98,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
.rxd_size = sizeof(struct mtk_rx_dma_v2), .rxd_size = sizeof(struct mtk_rx_dma_v2),
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
@@ -1014,6 +1014,8 @@ struct mtk_reg_map { @@ -1017,6 +1017,8 @@ struct mtk_reg_map {
* the extra setup for those pins used by GMAC. * the extra setup for those pins used by GMAC.
* @hash_offset Flow table hash offset. * @hash_offset Flow table hash offset.
* @foe_entry_size Foe table entry size. * @foe_entry_size Foe table entry size.
@ -107,7 +107,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
* @txd_size Tx DMA descriptor size. * @txd_size Tx DMA descriptor size.
* @rxd_size Rx DMA descriptor size. * @rxd_size Rx DMA descriptor size.
* @rx_irq_done_mask Rx irq done register mask. * @rx_irq_done_mask Rx irq done register mask.
@@ -1031,6 +1033,7 @@ struct mtk_soc_data { @@ -1034,6 +1036,7 @@ struct mtk_soc_data {
u8 hash_offset; u8 hash_offset;
u16 foe_entry_size; u16 foe_entry_size;
netdev_features_t hw_features; netdev_features_t hw_features;
@ -166,7 +166,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
static void mtk_ppe_cache_clear(struct mtk_ppe *ppe) static void mtk_ppe_cache_clear(struct mtk_ppe *ppe)
{ {
ppe_set(ppe, MTK_PPE_CACHE_CTL, MTK_PPE_CACHE_CTL_CLEAR); ppe_set(ppe, MTK_PPE_CACHE_CTL, MTK_PPE_CACHE_CTL_CLEAR);
@@ -464,6 +506,13 @@ __mtk_foe_entry_clear(struct mtk_ppe *pp @@ -459,6 +501,13 @@ __mtk_foe_entry_clear(struct mtk_ppe *pp
hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_INVALID); hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_INVALID);
dma_wmb(); dma_wmb();
mtk_ppe_cache_clear(ppe); mtk_ppe_cache_clear(ppe);
@ -180,7 +180,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
} }
entry->hash = 0xffff; entry->hash = 0xffff;
@@ -571,6 +620,9 @@ __mtk_foe_entry_commit(struct mtk_ppe *p @@ -566,6 +615,9 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
wmb(); wmb();
hwe->ib1 = entry->ib1; hwe->ib1 = entry->ib1;
@ -190,7 +190,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
dma_wmb(); dma_wmb();
mtk_ppe_cache_clear(ppe); mtk_ppe_cache_clear(ppe);
@@ -762,11 +814,39 @@ int mtk_ppe_prepare_reset(struct mtk_ppe @@ -757,11 +809,39 @@ int mtk_ppe_prepare_reset(struct mtk_ppe
return mtk_ppe_wait_busy(ppe); return mtk_ppe_wait_busy(ppe);
} }
@ -232,7 +232,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
struct mtk_ppe *ppe; struct mtk_ppe *ppe;
u32 foe_flow_size; u32 foe_flow_size;
void *foe; void *foe;
@@ -783,7 +863,8 @@ struct mtk_ppe *mtk_ppe_init(struct mtk_ @@ -778,7 +858,8 @@ struct mtk_ppe *mtk_ppe_init(struct mtk_
ppe->base = base; ppe->base = base;
ppe->eth = eth; ppe->eth = eth;
ppe->dev = dev; ppe->dev = dev;
@ -242,9 +242,9 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
foe = dmam_alloc_coherent(ppe->dev, foe = dmam_alloc_coherent(ppe->dev,
MTK_PPE_ENTRIES * soc->foe_entry_size, MTK_PPE_ENTRIES * soc->foe_entry_size,
@@ -799,6 +880,23 @@ struct mtk_ppe *mtk_ppe_init(struct mtk_ @@ -794,6 +875,23 @@ struct mtk_ppe *mtk_ppe_init(struct mtk_
if (!ppe->foe_flow) if (!ppe->foe_flow)
return NULL; goto err_free_l2_flows;
+ if (accounting) { + if (accounting) {
+ mib = dmam_alloc_coherent(ppe->dev, MTK_PPE_ENTRIES * sizeof(*mib), + mib = dmam_alloc_coherent(ppe->dev, MTK_PPE_ENTRIES * sizeof(*mib),
@ -266,7 +266,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
mtk_ppe_debugfs_init(ppe, index); mtk_ppe_debugfs_init(ppe, index);
return ppe; return ppe;
@@ -913,6 +1011,16 @@ void mtk_ppe_start(struct mtk_ppe *ppe) @@ -923,6 +1021,16 @@ void mtk_ppe_start(struct mtk_ppe *ppe)
ppe_w32(ppe, MTK_PPE_DEFAULT_CPU_PORT1, 0xcb777); ppe_w32(ppe, MTK_PPE_DEFAULT_CPU_PORT1, 0xcb777);
ppe_w32(ppe, MTK_PPE_SBW_CTRL, 0x7f); ppe_w32(ppe, MTK_PPE_SBW_CTRL, 0x7f);
} }
@ -338,7 +338,7 @@ v2: fix wrong variable name in return value check spotted by Denis Kirjanov
void mtk_ppe_deinit(struct mtk_eth *eth); void mtk_ppe_deinit(struct mtk_eth *eth);
void mtk_ppe_start(struct mtk_ppe *ppe); void mtk_ppe_start(struct mtk_ppe *ppe);
int mtk_ppe_stop(struct mtk_ppe *ppe); int mtk_ppe_stop(struct mtk_ppe *ppe);
@@ -354,5 +373,7 @@ int mtk_foe_entry_commit(struct mtk_ppe @@ -359,5 +377,7 @@ int mtk_foe_entry_commit(struct mtk_ppe
void mtk_foe_entry_clear(struct mtk_ppe *ppe, struct mtk_flow_entry *entry); void mtk_foe_entry_clear(struct mtk_ppe *ppe, struct mtk_flow_entry *entry);
int mtk_foe_entry_idle_time(struct mtk_ppe *ppe, struct mtk_flow_entry *entry); int mtk_foe_entry_idle_time(struct mtk_ppe *ppe, struct mtk_flow_entry *entry);
int mtk_ppe_debugfs_init(struct mtk_ppe *ppe, int index); int mtk_ppe_debugfs_init(struct mtk_ppe *ppe, int index);

View file

@ -15,11 +15,9 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
net/wireless/Kconfig | 4 ++++ net/wireless/Kconfig | 4 ++++
3 files changed, 6 insertions(+), 2 deletions(-) 3 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index eddf8ee270e7..1ac7390772de 100644
--- a/include/linux/netdevice.h --- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h +++ b/include/linux/netdevice.h
@@ -2156,7 +2156,7 @@ struct net_device { @@ -2167,7 +2167,7 @@ struct net_device {
#if IS_ENABLED(CONFIG_AX25) #if IS_ENABLED(CONFIG_AX25)
void *ax25_ptr; void *ax25_ptr;
#endif #endif
@ -28,11 +26,9 @@ index eddf8ee270e7..1ac7390772de 100644
struct wireless_dev *ieee80211_ptr; struct wireless_dev *ieee80211_ptr;
#endif #endif
#if IS_ENABLED(CONFIG_IEEE802154) || IS_ENABLED(CONFIG_6LOWPAN) #if IS_ENABLED(CONFIG_IEEE802154) || IS_ENABLED(CONFIG_6LOWPAN)
diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c
index 41c1ad33d009..58a1c5999b44 100644
--- a/net/batman-adv/hard-interface.c --- a/net/batman-adv/hard-interface.c
+++ b/net/batman-adv/hard-interface.c +++ b/net/batman-adv/hard-interface.c
@@ -308,7 +308,7 @@ static bool batadv_is_cfg80211_netdev(struct net_device *net_device) @@ -308,7 +308,7 @@ static bool batadv_is_cfg80211_netdev(st
if (!net_device) if (!net_device)
return false; return false;
@ -41,8 +37,6 @@ index 41c1ad33d009..58a1c5999b44 100644
/* cfg80211 drivers have to set ieee80211_ptr */ /* cfg80211 drivers have to set ieee80211_ptr */
if (net_device->ieee80211_ptr) if (net_device->ieee80211_ptr)
return true; return true;
diff --git a/net/wireless/Kconfig b/net/wireless/Kconfig
index f620acd2a0f5..9f1aa9ec9fa3 100644
--- a/net/wireless/Kconfig --- a/net/wireless/Kconfig
+++ b/net/wireless/Kconfig +++ b/net/wireless/Kconfig
@@ -26,6 +26,7 @@ config CFG80211 @@ -26,6 +26,7 @@ config CFG80211
@ -63,6 +57,3 @@ index f620acd2a0f5..9f1aa9ec9fa3 100644
if CFG80211 if CFG80211
config NL80211_TESTMODE config NL80211_TESTMODE
--
2.37.2

View file

@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -1850,9 +1850,7 @@ static int mtk_poll_rx(struct napi_struc @@ -1898,9 +1898,7 @@ static int mtk_poll_rx(struct napi_struc
while (done < budget) { while (done < budget) {
unsigned int pktlen, *rxdcsum; unsigned int pktlen, *rxdcsum;
@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
dma_addr_t dma_addr; dma_addr_t dma_addr;
u32 hash, reason; u32 hash, reason;
int mac = 0; int mac = 0;
@@ -1987,36 +1985,21 @@ static int mtk_poll_rx(struct napi_struc @@ -2035,36 +2033,21 @@ static int mtk_poll_rx(struct napi_struc
skb_checksum_none_assert(skb); skb_checksum_none_assert(skb);
skb->protocol = eth_type_trans(skb, netdev); skb->protocol = eth_type_trans(skb, netdev);
@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
skb_record_rx_queue(skb, 0); skb_record_rx_queue(skb, 0);
napi_gro_receive(napi, skb); napi_gro_receive(napi, skb);
@@ -2831,29 +2814,11 @@ static netdev_features_t mtk_fix_feature @@ -2887,29 +2870,11 @@ static netdev_features_t mtk_fix_feature
static int mtk_set_features(struct net_device *dev, netdev_features_t features) static int mtk_set_features(struct net_device *dev, netdev_features_t features)
{ {
@ -100,7 +100,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
return 0; return 0;
} }
@@ -3167,30 +3132,6 @@ static int mtk_open(struct net_device *d @@ -3223,30 +3188,6 @@ static int mtk_open(struct net_device *d
struct mtk_eth *eth = mac->hw; struct mtk_eth *eth = mac->hw;
int i, err; int i, err;
@ -131,7 +131,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0); err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0);
if (err) { if (err) {
netdev_err(dev, "%s: could not attach PHY: %d\n", __func__, netdev_err(dev, "%s: could not attach PHY: %d\n", __func__,
@@ -3231,6 +3172,35 @@ static int mtk_open(struct net_device *d @@ -3285,6 +3226,35 @@ static int mtk_open(struct net_device *d
phylink_start(mac->phylink); phylink_start(mac->phylink);
netif_tx_start_all_queues(dev); netif_tx_start_all_queues(dev);
@ -167,7 +167,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
return 0; return 0;
} }
@@ -3715,10 +3685,9 @@ static int mtk_hw_init(struct mtk_eth *e @@ -3769,10 +3739,9 @@ static int mtk_hw_init(struct mtk_eth *e
if (!MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) { if (!MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
val = mtk_r32(eth, MTK_CDMP_IG_CTRL); val = mtk_r32(eth, MTK_CDMP_IG_CTRL);
mtk_w32(eth, val | MTK_CDMP_STAG_EN, MTK_CDMP_IG_CTRL); mtk_w32(eth, val | MTK_CDMP_STAG_EN, MTK_CDMP_IG_CTRL);
@ -180,7 +180,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/* set interrupt delays based on current Net DIM sample */ /* set interrupt delays based on current Net DIM sample */
mtk_dim_rx(&eth->rx_dim.work); mtk_dim_rx(&eth->rx_dim.work);
@@ -4365,7 +4334,7 @@ static int mtk_add_mac(struct mtk_eth *e @@ -4419,7 +4388,7 @@ static int mtk_add_mac(struct mtk_eth *e
eth->netdev[id]->hw_features |= NETIF_F_LRO; eth->netdev[id]->hw_features |= NETIF_F_LRO;
eth->netdev[id]->vlan_features = eth->soc->hw_features & eth->netdev[id]->vlan_features = eth->soc->hw_features &

View file

@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -1423,12 +1423,28 @@ static void mtk_wake_queue(struct mtk_et @@ -1469,12 +1469,28 @@ static void mtk_wake_queue(struct mtk_et
} }
} }
@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
bool gso = false; bool gso = false;
int tx_num; int tx_num;
@@ -1450,6 +1466,18 @@ static netdev_tx_t mtk_start_xmit(struct @@ -1496,6 +1512,18 @@ static netdev_tx_t mtk_start_xmit(struct
return NETDEV_TX_BUSY; return NETDEV_TX_BUSY;
} }
@ -64,7 +64,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/* TSO: fill MSS info in tcp checksum field */ /* TSO: fill MSS info in tcp checksum field */
if (skb_is_gso(skb)) { if (skb_is_gso(skb)) {
if (skb_cow_head(skb, 0)) { if (skb_cow_head(skb, 0)) {
@@ -1465,8 +1493,14 @@ static netdev_tx_t mtk_start_xmit(struct @@ -1511,8 +1539,14 @@ static netdev_tx_t mtk_start_xmit(struct
} }
} }

View file

@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -667,6 +667,7 @@ static void mtk_mac_link_up(struct phyli @@ -710,6 +710,7 @@ static void mtk_mac_link_up(struct phyli
MAC_MCR_FORCE_RX_FC); MAC_MCR_FORCE_RX_FC);
/* Configure speed */ /* Configure speed */
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
switch (speed) { switch (speed) {
case SPEED_2500: case SPEED_2500:
case SPEED_1000: case SPEED_1000:
@@ -3145,6 +3146,9 @@ found: @@ -3201,6 +3202,9 @@ found:
if (dp->index >= MTK_QDMA_NUM_QUEUES) if (dp->index >= MTK_QDMA_NUM_QUEUES)
return NOTIFY_DONE; return NOTIFY_DONE;

View file

@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#include <net/dsa.h> #include <net/dsa.h>
#include "mtk_eth_soc.h" #include "mtk_eth_soc.h"
#include "mtk_ppe.h" #include "mtk_ppe.h"
@@ -757,7 +758,9 @@ void __mtk_ppe_check_skb(struct mtk_ppe @@ -752,7 +753,9 @@ void __mtk_ppe_check_skb(struct mtk_ppe
skb->dev->dsa_ptr->tag_ops->proto != DSA_TAG_PROTO_MTK) skb->dev->dsa_ptr->tag_ops->proto != DSA_TAG_PROTO_MTK)
goto out; goto out;

View file

@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
@@ -1277,6 +1277,9 @@ int mtk_gmac_rgmii_path_setup(struct mtk @@ -1280,6 +1280,9 @@ int mtk_gmac_rgmii_path_setup(struct mtk
int mtk_eth_offload_init(struct mtk_eth *eth); int mtk_eth_offload_init(struct mtk_eth *eth);
int mtk_eth_setup_tc(struct net_device *dev, enum tc_setup_type type, int mtk_eth_setup_tc(struct net_device *dev, enum tc_setup_type type,
void *type_data); void *type_data);
@ -120,7 +120,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static void static void
wed_m32(struct mtk_wed_device *dev, u32 reg, u32 mask, u32 val) wed_m32(struct mtk_wed_device *dev, u32 reg, u32 mask, u32 val)
{ {
@@ -1752,6 +1759,99 @@ out: @@ -1745,6 +1752,99 @@ out:
mutex_unlock(&hw_lock); mutex_unlock(&hw_lock);
} }
@ -220,7 +220,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
void mtk_wed_add_hw(struct device_node *np, struct mtk_eth *eth, void mtk_wed_add_hw(struct device_node *np, struct mtk_eth *eth,
void __iomem *wdma, phys_addr_t wdma_phy, void __iomem *wdma, phys_addr_t wdma_phy,
int index) int index)
@@ -1771,6 +1871,7 @@ void mtk_wed_add_hw(struct device_node * @@ -1764,6 +1864,7 @@ void mtk_wed_add_hw(struct device_node *
.irq_set_mask = mtk_wed_irq_set_mask, .irq_set_mask = mtk_wed_irq_set_mask,
.detach = mtk_wed_detach, .detach = mtk_wed_detach,
.ppe_check = mtk_wed_ppe_check, .ppe_check = mtk_wed_ppe_check,

View file

@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/net/ethernet/mediatek/mtk_ppe.c --- a/drivers/net/ethernet/mediatek/mtk_ppe.c
+++ b/drivers/net/ethernet/mediatek/mtk_ppe.c +++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
@@ -639,10 +639,20 @@ void mtk_foe_entry_clear(struct mtk_ppe @@ -634,10 +634,20 @@ void mtk_foe_entry_clear(struct mtk_ppe
static int static int
mtk_foe_entry_commit_l2(struct mtk_ppe *ppe, struct mtk_flow_entry *entry) mtk_foe_entry_commit_l2(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
{ {

View file

@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/net/ethernet/mediatek/mtk_ppe.c --- a/drivers/net/ethernet/mediatek/mtk_ppe.c
+++ b/drivers/net/ethernet/mediatek/mtk_ppe.c +++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
@@ -466,42 +466,43 @@ int mtk_foe_entry_set_queue(struct mtk_e @@ -460,42 +460,43 @@ int mtk_foe_entry_set_queue(struct mtk_e
return 0; return 0;
} }
@ -72,7 +72,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
struct mtk_foe_entry *hwe = mtk_foe_get_entry(ppe, entry->hash); struct mtk_foe_entry *hwe = mtk_foe_get_entry(ppe, entry->hash);
hwe->ib1 &= ~MTK_FOE_IB1_STATE; hwe->ib1 &= ~MTK_FOE_IB1_STATE;
@@ -520,7 +521,8 @@ __mtk_foe_entry_clear(struct mtk_ppe *pp @@ -515,7 +516,8 @@ __mtk_foe_entry_clear(struct mtk_ppe *pp
if (entry->type != MTK_FLOW_TYPE_L2_SUBFLOW) if (entry->type != MTK_FLOW_TYPE_L2_SUBFLOW)
return; return;
@ -82,7 +82,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
kfree(entry); kfree(entry);
} }
@@ -536,66 +538,55 @@ static int __mtk_foe_entry_idle_time(str @@ -531,66 +533,55 @@ static int __mtk_foe_entry_idle_time(str
return now - timestamp; return now - timestamp;
} }
@ -178,7 +178,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
} }
static void static void
@@ -632,7 +623,8 @@ __mtk_foe_entry_commit(struct mtk_ppe *p @@ -627,7 +618,8 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
void mtk_foe_entry_clear(struct mtk_ppe *ppe, struct mtk_flow_entry *entry) void mtk_foe_entry_clear(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
{ {
spin_lock_bh(&ppe_lock); spin_lock_bh(&ppe_lock);
@ -188,7 +188,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
spin_unlock_bh(&ppe_lock); spin_unlock_bh(&ppe_lock);
} }
@@ -679,8 +671,8 @@ mtk_foe_entry_commit_subflow(struct mtk_ @@ -674,8 +666,8 @@ mtk_foe_entry_commit_subflow(struct mtk_
{ {
const struct mtk_soc_data *soc = ppe->eth->soc; const struct mtk_soc_data *soc = ppe->eth->soc;
struct mtk_flow_entry *flow_info; struct mtk_flow_entry *flow_info;
@ -198,7 +198,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
u32 ib1_mask = mtk_get_ib1_pkt_type_mask(ppe->eth) | MTK_FOE_IB1_UDP; u32 ib1_mask = mtk_get_ib1_pkt_type_mask(ppe->eth) | MTK_FOE_IB1_UDP;
int type; int type;
@@ -688,30 +680,30 @@ mtk_foe_entry_commit_subflow(struct mtk_ @@ -683,30 +675,30 @@ mtk_foe_entry_commit_subflow(struct mtk_
if (!flow_info) if (!flow_info)
return; return;
@ -239,7 +239,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
} }
void __mtk_ppe_check_skb(struct mtk_ppe *ppe, struct sk_buff *skb, u16 hash) void __mtk_ppe_check_skb(struct mtk_ppe *ppe, struct sk_buff *skb, u16 hash)
@@ -721,9 +713,11 @@ void __mtk_ppe_check_skb(struct mtk_ppe @@ -716,9 +708,11 @@ void __mtk_ppe_check_skb(struct mtk_ppe
struct mtk_foe_entry *hwe = mtk_foe_get_entry(ppe, hash); struct mtk_foe_entry *hwe = mtk_foe_get_entry(ppe, hash);
struct mtk_flow_entry *entry; struct mtk_flow_entry *entry;
struct mtk_foe_bridge key = {}; struct mtk_foe_bridge key = {};
@ -251,7 +251,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
u8 *tag; u8 *tag;
spin_lock_bh(&ppe_lock); spin_lock_bh(&ppe_lock);
@@ -731,20 +725,14 @@ void __mtk_ppe_check_skb(struct mtk_ppe @@ -726,20 +720,14 @@ void __mtk_ppe_check_skb(struct mtk_ppe
if (FIELD_GET(MTK_FOE_IB1_STATE, hwe->ib1) == MTK_FOE_STATE_BIND) if (FIELD_GET(MTK_FOE_IB1_STATE, hwe->ib1) == MTK_FOE_STATE_BIND)
goto out; goto out;
@ -278,7 +278,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
continue; continue;
} }
@@ -795,9 +783,17 @@ out: @@ -790,9 +778,17 @@ out:
int mtk_foe_entry_idle_time(struct mtk_ppe *ppe, struct mtk_flow_entry *entry) int mtk_foe_entry_idle_time(struct mtk_ppe *ppe, struct mtk_flow_entry *entry)
{ {

View file

@ -77,7 +77,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
} }
static void mtk_ppe_cache_clear(struct mtk_ppe *ppe) static void mtk_ppe_cache_clear(struct mtk_ppe *ppe)
@@ -508,13 +523,6 @@ __mtk_foe_entry_clear(struct mtk_ppe *pp @@ -503,13 +518,6 @@ __mtk_foe_entry_clear(struct mtk_ppe *pp
hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_INVALID); hwe->ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, MTK_FOE_STATE_INVALID);
dma_wmb(); dma_wmb();
mtk_ppe_cache_clear(ppe); mtk_ppe_cache_clear(ppe);
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
} }
entry->hash = 0xffff; entry->hash = 0xffff;
@@ -539,11 +547,14 @@ static int __mtk_foe_entry_idle_time(str @@ -534,11 +542,14 @@ static int __mtk_foe_entry_idle_time(str
} }
static bool static bool
@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
int len; int len;
if (hash == 0xffff) if (hash == 0xffff)
@@ -554,18 +565,35 @@ mtk_flow_entry_update(struct mtk_ppe *pp @@ -549,18 +560,35 @@ mtk_flow_entry_update(struct mtk_ppe *pp
memcpy(&foe, hwe, len); memcpy(&foe, hwe, len);
if (!mtk_flow_entry_match(ppe->eth, entry, &foe, len) || if (!mtk_flow_entry_match(ppe->eth, entry, &foe, len) ||
@ -146,7 +146,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
struct mtk_flow_entry *cur; struct mtk_flow_entry *cur;
struct hlist_node *tmp; struct hlist_node *tmp;
int idle; int idle;
@@ -574,7 +602,9 @@ mtk_flow_entry_update_l2(struct mtk_ppe @@ -569,7 +597,9 @@ mtk_flow_entry_update_l2(struct mtk_ppe
hlist_for_each_entry_safe(cur, tmp, &entry->l2_flows, l2_list) { hlist_for_each_entry_safe(cur, tmp, &entry->l2_flows, l2_list) {
int cur_idle; int cur_idle;
@ -157,7 +157,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
__mtk_foe_entry_clear(ppe, entry, false); __mtk_foe_entry_clear(ppe, entry, false);
continue; continue;
} }
@@ -589,10 +619,29 @@ mtk_flow_entry_update_l2(struct mtk_ppe @@ -584,10 +614,29 @@ mtk_flow_entry_update_l2(struct mtk_ppe
} }
} }
@ -187,7 +187,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
struct mtk_eth *eth = ppe->eth; struct mtk_eth *eth = ppe->eth;
u16 timestamp = mtk_eth_timestamp(eth); u16 timestamp = mtk_eth_timestamp(eth);
struct mtk_foe_entry *hwe; struct mtk_foe_entry *hwe;
@@ -617,6 +666,12 @@ __mtk_foe_entry_commit(struct mtk_ppe *p @@ -612,6 +661,12 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
dma_wmb(); dma_wmb();
@ -200,7 +200,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
mtk_ppe_cache_clear(ppe); mtk_ppe_cache_clear(ppe);
} }
@@ -781,21 +836,6 @@ out: @@ -776,21 +831,6 @@ out:
spin_unlock_bh(&ppe_lock); spin_unlock_bh(&ppe_lock);
} }
@ -222,7 +222,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
int mtk_ppe_prepare_reset(struct mtk_ppe *ppe) int mtk_ppe_prepare_reset(struct mtk_ppe *ppe)
{ {
if (!ppe) if (!ppe)
@@ -823,32 +863,6 @@ int mtk_ppe_prepare_reset(struct mtk_ppe @@ -818,32 +858,6 @@ int mtk_ppe_prepare_reset(struct mtk_ppe
return mtk_ppe_wait_busy(ppe); return mtk_ppe_wait_busy(ppe);
} }
@ -266,7 +266,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
}; };
struct mtk_mib_entry { struct mtk_mib_entry {
@@ -325,6 +327,7 @@ struct mtk_ppe *mtk_ppe_init(struct mtk_ @@ -326,6 +328,7 @@ void mtk_ppe_deinit(struct mtk_eth *eth)
void mtk_ppe_start(struct mtk_ppe *ppe); void mtk_ppe_start(struct mtk_ppe *ppe);
int mtk_ppe_stop(struct mtk_ppe *ppe); int mtk_ppe_stop(struct mtk_ppe *ppe);
int mtk_ppe_prepare_reset(struct mtk_ppe *ppe); int mtk_ppe_prepare_reset(struct mtk_ppe *ppe);
@ -274,7 +274,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
void __mtk_ppe_check_skb(struct mtk_ppe *ppe, struct sk_buff *skb, u16 hash); void __mtk_ppe_check_skb(struct mtk_ppe *ppe, struct sk_buff *skb, u16 hash);
@@ -373,9 +376,8 @@ int mtk_foe_entry_set_queue(struct mtk_e @@ -374,9 +377,8 @@ int mtk_foe_entry_set_queue(struct mtk_e
unsigned int queue); unsigned int queue);
int mtk_foe_entry_commit(struct mtk_ppe *ppe, struct mtk_flow_entry *entry); int mtk_foe_entry_commit(struct mtk_ppe *ppe, struct mtk_flow_entry *entry);
void mtk_foe_entry_clear(struct mtk_ppe *ppe, struct mtk_flow_entry *entry); void mtk_foe_entry_clear(struct mtk_ppe *ppe, struct mtk_flow_entry *entry);

View file

@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/drivers/net/ethernet/mediatek/mtk_ppe.c --- a/drivers/net/ethernet/mediatek/mtk_ppe.c
+++ b/drivers/net/ethernet/mediatek/mtk_ppe.c +++ b/drivers/net/ethernet/mediatek/mtk_ppe.c
@@ -646,6 +646,7 @@ __mtk_foe_entry_commit(struct mtk_ppe *p @@ -640,6 +640,7 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
struct mtk_eth *eth = ppe->eth; struct mtk_eth *eth = ppe->eth;
u16 timestamp = mtk_eth_timestamp(eth); u16 timestamp = mtk_eth_timestamp(eth);
struct mtk_foe_entry *hwe; struct mtk_foe_entry *hwe;
@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) { if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
entry->ib1 &= ~MTK_FOE_IB1_BIND_TIMESTAMP_V2; entry->ib1 &= ~MTK_FOE_IB1_BIND_TIMESTAMP_V2;
@@ -662,8 +663,13 @@ __mtk_foe_entry_commit(struct mtk_ppe *p @@ -656,8 +657,13 @@ __mtk_foe_entry_commit(struct mtk_ppe *p
wmb(); wmb();
hwe->ib1 = entry->ib1; hwe->ib1 = entry->ib1;

View file

@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/include/linux/netdevice.h --- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h +++ b/include/linux/netdevice.h
@@ -502,6 +502,7 @@ static inline bool napi_complete(struct @@ -520,6 +520,7 @@ static inline bool napi_complete(struct
} }
int dev_set_threaded(struct net_device *dev, bool threaded); int dev_set_threaded(struct net_device *dev, bool threaded);
@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/** /**
* napi_disable - prevent NAPI from scheduling * napi_disable - prevent NAPI from scheduling
@@ -3365,6 +3366,7 @@ struct softnet_data { @@ -3126,6 +3127,7 @@ struct softnet_data {
unsigned int processed; unsigned int processed;
unsigned int time_squeeze; unsigned int time_squeeze;
unsigned int received_rps; unsigned int received_rps;
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#endif #endif
--- a/net/core/dev.c --- a/net/core/dev.c
+++ b/net/core/dev.c +++ b/net/core/dev.c
@@ -4574,7 +4574,7 @@ static int rps_ipi_queued(struct softnet @@ -4604,7 +4604,7 @@ static int napi_schedule_rps(struct soft
struct softnet_data *mysd = this_cpu_ptr(&softnet_data); struct softnet_data *mysd = this_cpu_ptr(&softnet_data);
#ifdef CONFIG_RPS #ifdef CONFIG_RPS
@ -39,7 +39,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
sd->rps_ipi_next = mysd->rps_ipi_list; sd->rps_ipi_next = mysd->rps_ipi_list;
mysd->rps_ipi_list = sd; mysd->rps_ipi_list = sd;
@@ -5755,6 +5755,8 @@ static DEFINE_PER_CPU(struct work_struct @@ -5785,6 +5785,8 @@ static DEFINE_PER_CPU(struct work_struct
/* Network device is going away, flush any packets still pending */ /* Network device is going away, flush any packets still pending */
static void flush_backlog(struct work_struct *work) static void flush_backlog(struct work_struct *work)
{ {
@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
struct sk_buff *skb, *tmp; struct sk_buff *skb, *tmp;
struct softnet_data *sd; struct softnet_data *sd;
@@ -5770,8 +5772,17 @@ static void flush_backlog(struct work_st @@ -5799,8 +5801,17 @@ static void flush_backlog(struct work_st
input_queue_head_incr(sd); input_queue_head_incr(sd);
} }
} }
@ -66,7 +66,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
skb_queue_walk_safe(&sd->process_queue, skb, tmp) { skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
if (skb->dev->reg_state == NETREG_UNREGISTERING) { if (skb->dev->reg_state == NETREG_UNREGISTERING) {
__skb_unlink(skb, &sd->process_queue); __skb_unlink(skb, &sd->process_queue);
@@ -5780,7 +5791,16 @@ static void flush_backlog(struct work_st @@ -5808,7 +5819,16 @@ static void flush_backlog(struct work_st
input_queue_head_incr(sd); input_queue_head_incr(sd);
} }
} }
@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
} }
static bool flush_required(int cpu) static bool flush_required(int cpu)
@@ -6463,6 +6485,7 @@ static int process_backlog(struct napi_s @@ -5940,6 +5960,7 @@ static int process_backlog(struct napi_s
} }
rps_lock_irq_disable(sd); rps_lock_irq_disable(sd);
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (skb_queue_empty(&sd->input_pkt_queue)) { if (skb_queue_empty(&sd->input_pkt_queue)) {
/* /*
* Inline a custom version of __napi_complete(). * Inline a custom version of __napi_complete().
@@ -6472,7 +6495,8 @@ static int process_backlog(struct napi_s @@ -5949,7 +5970,8 @@ static int process_backlog(struct napi_s
* We can use a plain write instead of clear_bit(), * We can use a plain write instead of clear_bit(),
* and we dont need an smp_mb() memory barrier. * and we dont need an smp_mb() memory barrier.
*/ */
@ -101,7 +101,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
again = false; again = false;
} else { } else {
skb_queue_splice_tail_init(&sd->input_pkt_queue, skb_queue_splice_tail_init(&sd->input_pkt_queue,
@@ -6889,6 +6913,55 @@ int dev_set_threaded(struct net_device * @@ -6365,6 +6387,55 @@ int dev_set_threaded(struct net_device *
} }
EXPORT_SYMBOL(dev_set_threaded); EXPORT_SYMBOL(dev_set_threaded);
@ -155,9 +155,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+} +}
+ +
void netif_napi_add_weight(struct net_device *dev, struct napi_struct *napi, void netif_napi_add_weight(struct net_device *dev, struct napi_struct *napi,
int (*poll)(struct napi_struct *, int), int weight) int (*poll)(struct napi_struct *, int), int weight)
{ {
@@ -11367,6 +11442,9 @@ static int dev_cpu_dead(unsigned int old @@ -11137,6 +11208,9 @@ static int dev_cpu_dead(unsigned int old
raise_softirq_irqoff(NET_TX_SOFTIRQ); raise_softirq_irqoff(NET_TX_SOFTIRQ);
local_irq_enable(); local_irq_enable();
@ -167,9 +167,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#ifdef CONFIG_RPS #ifdef CONFIG_RPS
remsd = oldsd->rps_ipi_list; remsd = oldsd->rps_ipi_list;
oldsd->rps_ipi_list = NULL; oldsd->rps_ipi_list = NULL;
@@ -11706,6 +11784,7 @@ static int __init net_dev_init(void) @@ -11440,6 +11514,7 @@ static int __init net_dev_init(void)
sd->cpu = i; INIT_CSD(&sd->defer_csd, trigger_rx_softirq, sd);
#endif spin_lock_init(&sd->defer_lock);
+ INIT_LIST_HEAD(&sd->backlog.poll_list); + INIT_LIST_HEAD(&sd->backlog.poll_list);
init_gro_hash(&sd->backlog); init_gro_hash(&sd->backlog);
@ -177,7 +177,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
sd->backlog.weight = weight_p; sd->backlog.weight = weight_p;
--- a/net/core/sysctl_net_core.c --- a/net/core/sysctl_net_core.c
+++ b/net/core/sysctl_net_core.c +++ b/net/core/sysctl_net_core.c
@@ -28,6 +28,7 @@ static int int_3600 = 3600; @@ -29,6 +29,7 @@ static int int_3600 = 3600;
static int min_sndbuf = SOCK_MIN_SNDBUF; static int min_sndbuf = SOCK_MIN_SNDBUF;
static int min_rcvbuf = SOCK_MIN_RCVBUF; static int min_rcvbuf = SOCK_MIN_RCVBUF;
static int max_skb_frags = MAX_SKB_FRAGS; static int max_skb_frags = MAX_SKB_FRAGS;
@ -185,7 +185,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static int net_msg_warn; /* Unused, but still a sysctl */ static int net_msg_warn; /* Unused, but still a sysctl */
@@ -114,6 +115,23 @@ static int rps_sock_flow_sysctl(struct c @@ -112,6 +113,23 @@ static int rps_sock_flow_sysctl(struct c
} }
#endif /* CONFIG_RPS */ #endif /* CONFIG_RPS */
@ -209,7 +209,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#ifdef CONFIG_NET_FLOW_LIMIT #ifdef CONFIG_NET_FLOW_LIMIT
static DEFINE_MUTEX(flow_limit_update_mutex); static DEFINE_MUTEX(flow_limit_update_mutex);
@@ -470,6 +488,15 @@ static struct ctl_table net_core_table[] @@ -473,6 +491,15 @@ static struct ctl_table net_core_table[]
.proc_handler = rps_sock_flow_sysctl .proc_handler = rps_sock_flow_sysctl
}, },
#endif #endif

View file

@ -17,7 +17,7 @@ Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
--- a/drivers/net/dsa/mv88e6xxx/chip.c --- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -6333,6 +6333,7 @@ static int mv88e6xxx_register_switch(str @@ -6971,6 +6971,7 @@ static int mv88e6xxx_register_switch(str
ds->ops = &mv88e6xxx_switch_ops; ds->ops = &mv88e6xxx_switch_ops;
ds->ageing_time_min = chip->info->age_time_coeff; ds->ageing_time_min = chip->info->age_time_coeff;
ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX; ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX;

View file

@ -152,7 +152,7 @@ Reviewed-by: Andrew Lunn <andrew@lunn.ch>
if (is531x5(dev) && phy_interface_is_rgmii(phydev)) { if (is531x5(dev) && phy_interface_is_rgmii(phydev)) {
if (port == dev->imp_port) if (port == dev->imp_port)
off = B53_RGMII_CTRL_IMP; off = B53_RGMII_CTRL_IMP;
@@ -1419,6 +1462,9 @@ void b53_phylink_mac_link_up(struct dsa_ @@ -1402,6 +1445,9 @@ void b53_phylink_mac_link_up(struct dsa_
{ {
struct b53_device *dev = ds->priv; struct b53_device *dev = ds->priv;
@ -164,7 +164,7 @@ Reviewed-by: Andrew Lunn <andrew@lunn.ch>
--- a/drivers/net/dsa/b53/b53_priv.h --- a/drivers/net/dsa/b53/b53_priv.h
+++ b/drivers/net/dsa/b53/b53_priv.h +++ b/drivers/net/dsa/b53/b53_priv.h
@@ -206,6 +206,7 @@ static inline int is58xx(struct b53_devi @@ -211,6 +211,7 @@ static inline int is58xx(struct b53_devi
dev->chip_id == BCM7278_DEVICE_ID; dev->chip_id == BCM7278_DEVICE_ID;
} }

View file

@ -94,7 +94,7 @@ Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
--- a/drivers/net/dsa/b53/b53_mmap.c --- a/drivers/net/dsa/b53/b53_mmap.c
+++ b/drivers/net/dsa/b53/b53_mmap.c +++ b/drivers/net/dsa/b53/b53_mmap.c
@@ -347,8 +347,11 @@ static void b53_mmap_shutdown(struct pla @@ -345,8 +345,11 @@ static void b53_mmap_shutdown(struct pla
static const struct of_device_id b53_mmap_of_table[] = { static const struct of_device_id b53_mmap_of_table[] = {
{ .compatible = "brcm,bcm3384-switch" }, { .compatible = "brcm,bcm3384-switch" },

View file

@ -100,7 +100,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
--- a/drivers/net/dsa/b53/b53_common.c --- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c
@@ -2461,6 +2461,19 @@ static const struct b53_chip_data b53_sw @@ -2466,6 +2466,19 @@ static const struct b53_chip_data b53_sw
.jumbo_size_reg = B53_JUMBO_MAX_SIZE_63XX, .jumbo_size_reg = B53_JUMBO_MAX_SIZE_63XX,
}, },
{ {
@ -131,7 +131,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
pdata->big_endian = of_property_read_bool(np, "big-endian"); pdata->big_endian = of_property_read_bool(np, "big-endian");
of_ports = of_get_child_by_name(np, "ports"); of_ports = of_get_child_by_name(np, "ports");
@@ -346,14 +346,28 @@ static void b53_mmap_shutdown(struct pla @@ -344,14 +344,28 @@ static void b53_mmap_shutdown(struct pla
} }
static const struct of_device_id b53_mmap_of_table[] = { static const struct of_device_id b53_mmap_of_table[] = {
@ -170,7 +170,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
--- a/drivers/net/dsa/b53/b53_priv.h --- a/drivers/net/dsa/b53/b53_priv.h
+++ b/drivers/net/dsa/b53/b53_priv.h +++ b/drivers/net/dsa/b53/b53_priv.h
@@ -75,6 +75,7 @@ enum { @@ -70,6 +70,7 @@ enum {
BCM53125_DEVICE_ID = 0x53125, BCM53125_DEVICE_ID = 0x53125,
BCM53128_DEVICE_ID = 0x53128, BCM53128_DEVICE_ID = 0x53128,
BCM63XX_DEVICE_ID = 0x6300, BCM63XX_DEVICE_ID = 0x6300,
@ -178,7 +178,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
BCM53010_DEVICE_ID = 0x53010, BCM53010_DEVICE_ID = 0x53010,
BCM53011_DEVICE_ID = 0x53011, BCM53011_DEVICE_ID = 0x53011,
BCM53012_DEVICE_ID = 0x53012, BCM53012_DEVICE_ID = 0x53012,
@@ -186,7 +187,13 @@ static inline int is531x5(struct b53_dev @@ -191,7 +192,13 @@ static inline int is531x5(struct b53_dev
static inline int is63xx(struct b53_device *dev) static inline int is63xx(struct b53_device *dev)
{ {

View file

@ -100,7 +100,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
--- a/drivers/net/dsa/b53/b53_common.c --- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c
@@ -2609,6 +2609,20 @@ static const struct b53_chip_data b53_sw @@ -2613,6 +2613,20 @@ static const struct b53_chip_data b53_sw
.jumbo_pm_reg = B53_JUMBO_PORT_MASK, .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
.jumbo_size_reg = B53_JUMBO_MAX_SIZE, .jumbo_size_reg = B53_JUMBO_MAX_SIZE,
}, },
@ -121,7 +121,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
}; };
static int b53_switch_init(struct b53_device *dev) static int b53_switch_init(struct b53_device *dev)
@@ -2785,6 +2799,7 @@ int b53_switch_detect(struct b53_device @@ -2790,6 +2804,7 @@ int b53_switch_detect(struct b53_device
case BCM53012_DEVICE_ID: case BCM53012_DEVICE_ID:
case BCM53018_DEVICE_ID: case BCM53018_DEVICE_ID:
case BCM53019_DEVICE_ID: case BCM53019_DEVICE_ID:
@ -149,7 +149,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
dev_err(&mdiodev->dev, "Unsupported device: 0x%08x\n", phy_id); dev_err(&mdiodev->dev, "Unsupported device: 0x%08x\n", phy_id);
return -ENODEV; return -ENODEV;
} }
@@ -377,6 +379,7 @@ static const struct of_device_id b53_of_ @@ -375,6 +377,7 @@ static const struct of_device_id b53_of_
{ .compatible = "brcm,bcm53115" }, { .compatible = "brcm,bcm53115" },
{ .compatible = "brcm,bcm53125" }, { .compatible = "brcm,bcm53125" },
{ .compatible = "brcm,bcm53128" }, { .compatible = "brcm,bcm53128" },
@ -159,15 +159,15 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
{ .compatible = "brcm,bcm5395" }, { .compatible = "brcm,bcm5395" },
--- a/drivers/net/dsa/b53/b53_priv.h --- a/drivers/net/dsa/b53/b53_priv.h
+++ b/drivers/net/dsa/b53/b53_priv.h +++ b/drivers/net/dsa/b53/b53_priv.h
@@ -85,6 +85,7 @@ enum { @@ -80,6 +80,7 @@ enum {
BCM583XX_DEVICE_ID = 0x58300, BCM583XX_DEVICE_ID = 0x58300,
BCM7445_DEVICE_ID = 0x7445, BCM7445_DEVICE_ID = 0x7445,
BCM7278_DEVICE_ID = 0x7278, BCM7278_DEVICE_ID = 0x7278,
+ BCM53134_DEVICE_ID = 0x5075, + BCM53134_DEVICE_ID = 0x5075,
}; };
#define B53_N_PORTS 9 struct b53_pcs {
@@ -182,7 +183,8 @@ static inline int is531x5(struct b53_dev @@ -187,7 +188,8 @@ static inline int is531x5(struct b53_dev
{ {
return dev->chip_id == BCM53115_DEVICE_ID || return dev->chip_id == BCM53115_DEVICE_ID ||
dev->chip_id == BCM53125_DEVICE_ID || dev->chip_id == BCM53125_DEVICE_ID ||
@ -177,7 +177,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
} }
static inline int is63xx(struct b53_device *dev) static inline int is63xx(struct b53_device *dev)
@@ -210,7 +212,8 @@ static inline int is58xx(struct b53_devi @@ -215,7 +217,8 @@ static inline int is58xx(struct b53_devi
return dev->chip_id == BCM58XX_DEVICE_ID || return dev->chip_id == BCM58XX_DEVICE_ID ||
dev->chip_id == BCM583XX_DEVICE_ID || dev->chip_id == BCM583XX_DEVICE_ID ||
dev->chip_id == BCM7445_DEVICE_ID || dev->chip_id == BCM7445_DEVICE_ID ||

View file

@ -51,7 +51,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/arch/arm/mach-mvebu/kirkwood.c --- a/arch/arm/mach-mvebu/kirkwood.c
+++ b/arch/arm/mach-mvebu/kirkwood.c +++ b/arch/arm/mach-mvebu/kirkwood.c
@@ -14,6 +14,7 @@ @@ -11,6 +11,7 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/mbus.h> #include <linux/mbus.h>

View file

@ -20,7 +20,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
--- a/drivers/bus/mhi/host/main.c --- a/drivers/bus/mhi/host/main.c
+++ b/drivers/bus/mhi/host/main.c +++ b/drivers/bus/mhi/host/main.c
@@ -891,6 +891,7 @@ int mhi_process_ctrl_ev_ring(struct mhi_ @@ -900,6 +900,7 @@ int mhi_process_ctrl_ev_ring(struct mhi_
switch (event) { switch (event) {
case MHI_EE_SBL: case MHI_EE_SBL:
st = DEV_ST_TRANSITION_SBL; st = DEV_ST_TRANSITION_SBL;

View file

@ -16,7 +16,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
--- a/drivers/net/dsa/mt7530.c --- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c
@@ -2081,10 +2081,13 @@ mt7530_setup_mdio(struct mt7530_priv *pr @@ -2086,10 +2086,13 @@ mt7530_setup_mdio(struct mt7530_priv *pr
{ {
struct dsa_switch *ds = priv->ds; struct dsa_switch *ds = priv->ds;
struct device *dev = priv->dev; struct device *dev = priv->dev;
@ -30,7 +30,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
bus = devm_mdiobus_alloc(dev); bus = devm_mdiobus_alloc(dev);
if (!bus) if (!bus)
return -ENOMEM; return -ENOMEM;
@@ -2101,7 +2104,9 @@ mt7530_setup_mdio(struct mt7530_priv *pr @@ -2106,7 +2109,9 @@ mt7530_setup_mdio(struct mt7530_priv *pr
if (priv->irq) if (priv->irq)
mt7530_setup_mdio_irq(priv); mt7530_setup_mdio_irq(priv);

View file

@ -70,7 +70,7 @@ v1 -> v2:
--- a/drivers/gpio/Kconfig --- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig
@@ -1683,4 +1683,19 @@ config GPIO_VIRTIO @@ -1711,4 +1711,19 @@ config GPIO_SIM
endmenu endmenu
@ -92,7 +92,7 @@ v1 -> v2:
endif endif
--- a/drivers/gpio/Makefile --- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile
@@ -45,6 +45,7 @@ obj-$(CONFIG_GPIO_BD9571MWV) += gpio-bd @@ -43,6 +43,7 @@ obj-$(CONFIG_GPIO_BD9571MWV) += gpio-bd
obj-$(CONFIG_GPIO_BRCMSTB) += gpio-brcmstb.o obj-$(CONFIG_GPIO_BRCMSTB) += gpio-brcmstb.o
obj-$(CONFIG_GPIO_BT8XX) += gpio-bt8xx.o obj-$(CONFIG_GPIO_BT8XX) += gpio-bt8xx.o
obj-$(CONFIG_GPIO_CADENCE) += gpio-cadence.o obj-$(CONFIG_GPIO_CADENCE) += gpio-cadence.o

View file

@ -17,11 +17,9 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
include/linux/pm_opp.h | 11 ++++++----- include/linux/pm_opp.h | 11 ++++++-----
3 files changed, 15 insertions(+), 12 deletions(-) 3 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/drivers/devfreq/tegra30-devfreq.c b/drivers/devfreq/tegra30-devfreq.c
index 503376b894b6..92cdb6bf9a89 100644
--- a/drivers/devfreq/tegra30-devfreq.c --- a/drivers/devfreq/tegra30-devfreq.c
+++ b/drivers/devfreq/tegra30-devfreq.c +++ b/drivers/devfreq/tegra30-devfreq.c
@@ -823,8 +823,9 @@ static int devm_tegra_devfreq_init_hw(struct device *dev, @@ -823,8 +823,9 @@ static int devm_tegra_devfreq_init_hw(st
static int tegra_devfreq_config_clks_nop(struct device *dev, static int tegra_devfreq_config_clks_nop(struct device *dev,
struct opp_table *opp_table, struct opp_table *opp_table,
@ -33,11 +31,9 @@ index 503376b894b6..92cdb6bf9a89 100644
{ {
/* We want to skip clk configuration via dev_pm_opp_set_opp() */ /* We want to skip clk configuration via dev_pm_opp_set_opp() */
return 0; return 0;
diff --git a/drivers/opp/core.c b/drivers/opp/core.c
index e87567dbe99f..2f44ceaf8d3c 100644
--- a/drivers/opp/core.c --- a/drivers/opp/core.c
+++ b/drivers/opp/core.c +++ b/drivers/opp/core.c
@@ -816,7 +816,8 @@ static int _set_opp_voltage(struct device *dev, struct regulator *reg, @@ -816,7 +816,8 @@ static int _set_opp_voltage(struct devic
static int static int
_opp_config_clk_single(struct device *dev, struct opp_table *opp_table, _opp_config_clk_single(struct device *dev, struct opp_table *opp_table,
@ -47,7 +43,7 @@ index e87567dbe99f..2f44ceaf8d3c 100644
{ {
unsigned long *target = data; unsigned long *target = data;
unsigned long freq; unsigned long freq;
@@ -848,8 +849,8 @@ _opp_config_clk_single(struct device *dev, struct opp_table *opp_table, @@ -848,8 +849,8 @@ _opp_config_clk_single(struct device *de
* the order in which they are present in the array while scaling up. * the order in which they are present in the array while scaling up.
*/ */
int dev_pm_opp_config_clks_simple(struct device *dev, int dev_pm_opp_config_clks_simple(struct device *dev,
@ -58,7 +54,7 @@ index e87567dbe99f..2f44ceaf8d3c 100644
{ {
int ret, i; int ret, i;
@@ -1121,7 +1122,7 @@ static int _set_opp(struct device *dev, struct opp_table *opp_table, @@ -1121,7 +1122,7 @@ static int _set_opp(struct device *dev,
} }
if (opp_table->config_clks) { if (opp_table->config_clks) {
@ -67,7 +63,7 @@ index e87567dbe99f..2f44ceaf8d3c 100644
if (ret) if (ret)
return ret; return ret;
} }
@@ -1196,7 +1197,7 @@ int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq) @@ -1196,7 +1197,7 @@ int dev_pm_opp_set_rate(struct device *d
* equivalent to a clk_set_rate() * equivalent to a clk_set_rate()
*/ */
if (!_get_opp_count(opp_table)) { if (!_get_opp_count(opp_table)) {
@ -76,11 +72,9 @@ index e87567dbe99f..2f44ceaf8d3c 100644
&target_freq, false); &target_freq, false);
goto put_opp_table; goto put_opp_table;
} }
diff --git a/include/linux/pm_opp.h b/include/linux/pm_opp.h
index dc1fb5890792..6c24a4f9fc49 100644
--- a/include/linux/pm_opp.h --- a/include/linux/pm_opp.h
+++ b/include/linux/pm_opp.h +++ b/include/linux/pm_opp.h
@@ -61,7 +61,8 @@ typedef int (*config_regulators_t)(struct device *dev, @@ -61,7 +61,8 @@ typedef int (*config_regulators_t)(struc
struct dev_pm_opp *old_opp, struct dev_pm_opp *new_opp, struct dev_pm_opp *old_opp, struct dev_pm_opp *new_opp,
struct regulator **regulators, unsigned int count); struct regulator **regulators, unsigned int count);
@ -90,7 +84,7 @@ index dc1fb5890792..6c24a4f9fc49 100644
struct dev_pm_opp *opp, void *data, bool scaling_down); struct dev_pm_opp *opp, void *data, bool scaling_down);
/** /**
@@ -160,8 +161,8 @@ int dev_pm_opp_set_config(struct device *dev, struct dev_pm_opp_config *config); @@ -160,8 +161,8 @@ int dev_pm_opp_set_config(struct device
int devm_pm_opp_set_config(struct device *dev, struct dev_pm_opp_config *config); int devm_pm_opp_set_config(struct device *dev, struct dev_pm_opp_config *config);
void dev_pm_opp_clear_config(int token); void dev_pm_opp_clear_config(int token);
int dev_pm_opp_config_clks_simple(struct device *dev, int dev_pm_opp_config_clks_simple(struct device *dev,
@ -101,7 +95,7 @@ index dc1fb5890792..6c24a4f9fc49 100644
struct dev_pm_opp *dev_pm_opp_xlate_required_opp(struct opp_table *src_table, struct opp_table *dst_table, struct dev_pm_opp *src_opp); struct dev_pm_opp *dev_pm_opp_xlate_required_opp(struct opp_table *src_table, struct opp_table *dst_table, struct dev_pm_opp *src_opp);
int dev_pm_opp_xlate_performance_state(struct opp_table *src_table, struct opp_table *dst_table, unsigned int pstate); int dev_pm_opp_xlate_performance_state(struct opp_table *src_table, struct opp_table *dst_table, unsigned int pstate);
@@ -346,8 +347,8 @@ static inline int devm_pm_opp_set_config(struct device *dev, struct dev_pm_opp_c @@ -346,8 +347,8 @@ static inline int devm_pm_opp_set_config
static inline void dev_pm_opp_clear_config(int token) {} static inline void dev_pm_opp_clear_config(int token) {}
static inline int dev_pm_opp_config_clks_simple(struct device *dev, static inline int dev_pm_opp_config_clks_simple(struct device *dev,
@ -112,6 +106,3 @@ index dc1fb5890792..6c24a4f9fc49 100644
{ {
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
--
2.37.2

View file

@ -25,7 +25,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/pci/quirks.c --- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c
@@ -206,6 +206,7 @@ static void quirk_mmio_always_on(struct @@ -207,6 +207,7 @@ static void quirk_mmio_always_on(struct
DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID, DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID,
PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on); PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on);
@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
/* /*
* The Mellanox Tavor device gives false positive parity errors. Disable * The Mellanox Tavor device gives false positive parity errors. Disable
* parity error reporting. * parity error reporting.
@@ -3363,6 +3364,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I @@ -3388,6 +3389,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
@ -42,7 +42,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
/* /*
* Ivytown NTB BAR sizes are misreported by the hardware due to an erratum. * Ivytown NTB BAR sizes are misreported by the hardware due to an erratum.
* To work around this, query the size it should be configured to by the * To work around this, query the size it should be configured to by the
@@ -3388,6 +3391,8 @@ static void quirk_intel_ntb(struct pci_d @@ -3413,6 +3416,8 @@ static void quirk_intel_ntb(struct pci_d
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e08, quirk_intel_ntb); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e08, quirk_intel_ntb);
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e0d, quirk_intel_ntb); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e0d, quirk_intel_ntb);
@ -51,7 +51,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
/* /*
* Some BIOS implementations leave the Intel GPU interrupts enabled, even * Some BIOS implementations leave the Intel GPU interrupts enabled, even
* though no one is handling them (e.g., if the i915 driver is never * though no one is handling them (e.g., if the i915 driver is never
@@ -3426,6 +3431,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN @@ -3451,6 +3456,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);

View file

@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#endif /* __LINUX_USB_PCI_QUIRKS_H */ #endif /* __LINUX_USB_PCI_QUIRKS_H */
--- a/include/linux/usb/hcd.h --- a/include/linux/usb/hcd.h
+++ b/include/linux/usb/hcd.h +++ b/include/linux/usb/hcd.h
@@ -497,7 +497,14 @@ extern int usb_hcd_pci_probe(struct pci_ @@ -483,7 +483,14 @@ extern int usb_hcd_pci_probe(struct pci_
extern void usb_hcd_pci_remove(struct pci_dev *dev); extern void usb_hcd_pci_remove(struct pci_dev *dev);
extern void usb_hcd_pci_shutdown(struct pci_dev *dev); extern void usb_hcd_pci_shutdown(struct pci_dev *dev);

View file

@ -45,7 +45,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
depends on ACPI depends on ACPI
--- a/drivers/ata/libata-core.c --- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c
@@ -656,6 +656,19 @@ u64 ata_tf_read_block(const struct ata_t @@ -663,6 +663,19 @@ u64 ata_tf_read_block(const struct ata_t
return block; return block;
} }
@ -64,18 +64,18 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
+ +
/** /**
* ata_build_rw_tf - Build ATA taskfile for given read/write request * ata_build_rw_tf - Build ATA taskfile for given read/write request
* @tf: Target ATA taskfile * @qc: Metadata associated with the taskfile to build
@@ -4576,6 +4589,9 @@ struct ata_queued_cmd *ata_qc_new_init(s @@ -4622,6 +4635,9 @@ void __ata_qc_complete(struct ata_queued
if (tag < 0) link->active_tag = ATA_TAG_POISON;
return NULL; ap->nr_active_links--;
} }
+#ifdef CONFIG_ATA_LEDS +#ifdef CONFIG_ATA_LEDS
+ ata_led_act(ap); + ata_led_act(ap);
+#endif +#endif
qc = __ata_qc_from_tag(ap, tag); /* clear exclusive status */
qc->tag = qc->hw_tag = tag; if (unlikely(qc->flags & ATA_QCFLAG_CLEAR_EXCL &&
@@ -5354,6 +5370,9 @@ struct ata_port *ata_port_alloc(struct a @@ -5328,6 +5344,9 @@ struct ata_port *ata_port_alloc(struct a
ap->stats.unhandled_irq = 1; ap->stats.unhandled_irq = 1;
ap->stats.idle_irq = 1; ap->stats.idle_irq = 1;
#endif #endif
@ -85,7 +85,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
ata_sff_port_init(ap); ata_sff_port_init(ap);
return ap; return ap;
@@ -5389,6 +5408,12 @@ static void ata_host_release(struct kref @@ -5363,6 +5382,12 @@ static void ata_host_release(struct kref
kfree(ap->pmp_link); kfree(ap->pmp_link);
kfree(ap->slave_link); kfree(ap->slave_link);
@ -98,7 +98,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
kfree(ap); kfree(ap);
host->ports[i] = NULL; host->ports[i] = NULL;
} }
@@ -5795,7 +5820,23 @@ int ata_host_register(struct ata_host *h @@ -5765,7 +5790,23 @@ int ata_host_register(struct ata_host *h
host->ports[i]->print_id = atomic_inc_return(&ata_print_id); host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
host->ports[i]->local_port_no = i + 1; host->ports[i]->local_port_no = i + 1;
} }
@ -134,7 +134,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
/* /*
* Define if arch has non-standard setup. This is a _PCI_ standard * Define if arch has non-standard setup. This is a _PCI_ standard
@@ -894,6 +897,12 @@ struct ata_port { @@ -857,6 +860,12 @@ struct ata_port {
#ifdef CONFIG_ATA_ACPI #ifdef CONFIG_ATA_ACPI
struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */ struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */
#endif #endif

View file

@ -33,7 +33,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
--- a/drivers/pci/controller/pci-aardvark.c --- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c
@@ -274,7 +274,6 @@ struct advk_pcie { @@ -277,7 +277,6 @@ struct advk_pcie {
u8 wins_count; u8 wins_count;
struct irq_domain *rp_irq_domain; struct irq_domain *rp_irq_domain;
struct irq_domain *irq_domain; struct irq_domain *irq_domain;
@ -41,7 +41,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
raw_spinlock_t irq_lock; raw_spinlock_t irq_lock;
struct irq_domain *msi_domain; struct irq_domain *msi_domain;
struct irq_domain *msi_inner_domain; struct irq_domain *msi_inner_domain;
@@ -1330,14 +1329,19 @@ static void advk_pcie_irq_unmask(struct @@ -1426,14 +1425,19 @@ static void advk_pcie_irq_unmask(struct
raw_spin_unlock_irqrestore(&pcie->irq_lock, flags); raw_spin_unlock_irqrestore(&pcie->irq_lock, flags);
} }
@ -63,7 +63,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
irq_set_chip_data(virq, pcie); irq_set_chip_data(virq, pcie);
return 0; return 0;
@@ -1396,7 +1400,6 @@ static int advk_pcie_init_irq_domain(str @@ -1492,7 +1496,6 @@ static int advk_pcie_init_irq_domain(str
struct device *dev = &pcie->pdev->dev; struct device *dev = &pcie->pdev->dev;
struct device_node *node = dev->of_node; struct device_node *node = dev->of_node;
struct device_node *pcie_intc_node; struct device_node *pcie_intc_node;
@ -71,7 +71,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
int ret = 0; int ret = 0;
raw_spin_lock_init(&pcie->irq_lock); raw_spin_lock_init(&pcie->irq_lock);
@@ -1407,28 +1410,14 @@ static int advk_pcie_init_irq_domain(str @@ -1503,28 +1506,14 @@ static int advk_pcie_init_irq_domain(str
return -ENODEV; return -ENODEV;
} }

View file

@ -13,7 +13,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
--- a/init/Kconfig --- a/init/Kconfig
+++ b/init/Kconfig +++ b/init/Kconfig
@@ -1814,6 +1814,15 @@ config EMBEDDED @@ -1826,6 +1826,15 @@ config EMBEDDED
an embedded system so certain expert options are available an embedded system so certain expert options are available
for configuration. for configuration.
@ -31,7 +31,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
help help
--- a/init/main.c --- a/init/main.c
+++ b/init/main.c +++ b/init/main.c
@@ -615,6 +615,29 @@ static inline void setup_nr_cpu_ids(void @@ -609,6 +609,29 @@ static inline void setup_nr_cpu_ids(void
static inline void smp_prepare_cpus(unsigned int maxcpus) { } static inline void smp_prepare_cpus(unsigned int maxcpus) { }
#endif #endif
@ -61,7 +61,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
/* /*
* We need to store the untouched command line for future reference. * We need to store the untouched command line for future reference.
* We also need to store the touched command line since the parameter * We also need to store the touched command line since the parameter
@@ -955,6 +978,7 @@ asmlinkage __visible void __init __no_sa @@ -957,6 +980,7 @@ asmlinkage __visible void __init __no_sa
pr_notice("%s", linux_banner); pr_notice("%s", linux_banner);
early_security_init(); early_security_init();
setup_arch(&command_line); setup_arch(&command_line);