linux/generic/hack-5.15: add missing patch headers

This patches does not have a valid patch headers and does not apply on
an external git tree with 'git am'. To fix this add the missing headers.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
This commit is contained in:
Florian Eckert 2022-07-14 08:55:58 +02:00 committed by Christian Marangi
parent 2ed7f6cbb0
commit 8857387913
No known key found for this signature in database
GPG key ID: AC001D09ADBFEAD7
10 changed files with 268 additions and 53 deletions

View file

@ -1,3 +1,14 @@
From 300d26562ce4dc427154cb247beb75db4b1f0774 Mon Sep 17 00:00:00 2001
From: OpenWrt community <openwrt-devel@lists.openwrt.org>
Date: Wed, 13 Jul 2022 13:29:57 +0200
Subject: [PATCH] scripts/Kconfig: Kconfig exit
---
scripts/kconfig/conf.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
index 5d84b44a2a2a..d279d95aac92 100644
--- a/scripts/kconfig/conf.c --- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c +++ b/scripts/kconfig/conf.c
@@ -435,6 +435,8 @@ static int conf_sym(struct menu *menu) @@ -435,6 +435,8 @@ static int conf_sym(struct menu *menu)
@ -9,3 +20,5 @@
newval = oldval; newval = oldval;
break; break;
case '?': case '?':
--

View file

@ -1,3 +1,14 @@
From 4487708144118bfd5e1b1da7003a486951fb9c5a Mon Sep 17 00:00:00 2001
From: OpenWrt community <openwrt-devel@lists.openwrt.org>
Date: Wed, 13 Jul 2022 13:31:51 +0200
Subject: [PATCH] net/ipv4: add udp tunnel tristate string
---
net/ipv4/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig
index 87983e70f03f..426b44d39277 100644
--- a/net/ipv4/Kconfig --- a/net/ipv4/Kconfig
+++ b/net/ipv4/Kconfig +++ b/net/ipv4/Kconfig
@@ -315,7 +315,7 @@ config NET_IPVTI @@ -315,7 +315,7 @@ config NET_IPVTI
@ -9,3 +20,5 @@
select NET_IP_TUNNEL select NET_IP_TUNNEL
default n default n
--

View file

@ -1,3 +1,15 @@
From dcd966fa7ca63f38cf7147e1184d13d66e2ca340 Mon Sep 17 00:00:00 2001
From: OpenWrt community <openwrt-devel@lists.openwrt.org>
Date: Wed, 13 Jul 2022 13:33:30 +0200
Subject: [PATCH] Kconfig: add tristate for OID and ASNI string
---
init/Kconfig | 2 +-
lib/Kconfig | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/init/Kconfig b/init/Kconfig
index 5a2514bbb11d..32ba9490a6e4 100644
--- a/init/Kconfig --- a/init/Kconfig
+++ b/init/Kconfig +++ b/init/Kconfig
@@ -2384,7 +2384,7 @@ config PADATA @@ -2384,7 +2384,7 @@ config PADATA
@ -9,6 +21,8 @@
help help
Build a simple ASN.1 grammar compiler that produces a bytecode output Build a simple ASN.1 grammar compiler that produces a bytecode output
that can be interpreted by the ASN.1 stream decoder and used to that can be interpreted by the ASN.1 stream decoder and used to
diff --git a/lib/Kconfig b/lib/Kconfig
index d6c6cfd1fac9..6595c53abd3c 100644
--- a/lib/Kconfig --- a/lib/Kconfig
+++ b/lib/Kconfig +++ b/lib/Kconfig
@@ -614,7 +614,7 @@ config LIBFDT @@ -614,7 +614,7 @@ config LIBFDT
@ -20,3 +34,5 @@
help help
Enable fast lookup object identifier registry. Enable fast lookup object identifier registry.
--

View file

@ -1,7 +1,18 @@
From 241e5d3f7b0dd3c01f8c7fa83cbc9a3882286d53 Mon Sep 17 00:00:00 2001
From: OpenWrt community <openwrt-devel@lists.openwrt.org>
Date: Wed, 13 Jul 2022 13:35:18 +0200
Subject: [PATCH] lib/crypto: add tristate string for ARC4
This makes it possible to select CONFIG_CRYPTO_LIB_ARC4 directly. We This makes it possible to select CONFIG_CRYPTO_LIB_ARC4 directly. We
need this to be able to compile this into the kernel and make use of it need this to be able to compile this into the kernel and make use of it
from backports. from backports.
---
lib/crypto/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/crypto/Kconfig b/lib/crypto/Kconfig
index 5056663c2aff..8a4d4e5bcd7a 100644
--- a/lib/crypto/Kconfig --- a/lib/crypto/Kconfig
+++ b/lib/crypto/Kconfig +++ b/lib/crypto/Kconfig
@@ -6,7 +6,7 @@ config CRYPTO_LIB_AES @@ -6,7 +6,7 @@ config CRYPTO_LIB_AES
@ -13,3 +24,5 @@ from backports.
config CRYPTO_ARCH_HAVE_LIB_BLAKE2S config CRYPTO_ARCH_HAVE_LIB_BLAKE2S
bool bool
--

View file

@ -1,6 +1,27 @@
From 69357074558daf6ff24c9f58714935e9e095a865 Mon Sep 17 00:00:00 2001
From: OpenWrt community <openwrt-devel@lists.openwrt.org>
Date: Wed, 13 Jul 2022 13:37:33 +0200
Subject: [PATCH] kernel: add block fit partition parser
---
block/blk.h | 2 ++
block/partitions/Kconfig | 7 +++++++
block/partitions/Makefile | 1 +
block/partitions/check.h | 3 +++
block/partitions/core.c | 17 +++++++++++++++++
block/partitions/efi.c | 8 ++++++++
block/partitions/efi.h | 3 +++
block/partitions/msdos.c | 10 ++++++++++
drivers/mtd/mtd_blkdevs.c | 2 ++
drivers/mtd/ubi/block.c | 3 +++
include/linux/msdos_partition.h | 1 +
11 files changed, 57 insertions(+)
diff --git a/block/blk.h b/block/blk.h
index aab72194d226..ed23a4fac950 100644
--- a/block/blk.h --- a/block/blk.h
+++ b/block/blk.h +++ b/block/blk.h
@@ -354,6 +354,8 @@ void blk_free_ext_minor(unsigned int min @@ -354,6 +354,8 @@ void blk_free_ext_minor(unsigned int minor);
#define ADDPART_FLAG_NONE 0 #define ADDPART_FLAG_NONE 0
#define ADDPART_FLAG_RAID 1 #define ADDPART_FLAG_RAID 1
#define ADDPART_FLAG_WHOLEDISK 2 #define ADDPART_FLAG_WHOLEDISK 2
@ -9,6 +30,8 @@
int bdev_add_partition(struct gendisk *disk, int partno, sector_t start, int bdev_add_partition(struct gendisk *disk, int partno, sector_t start,
sector_t length); sector_t length);
int bdev_del_partition(struct gendisk *disk, int partno); int bdev_del_partition(struct gendisk *disk, int partno);
diff --git a/block/partitions/Kconfig b/block/partitions/Kconfig
index 278593b8e4e9..d4cd2f36ea95 100644
--- a/block/partitions/Kconfig --- a/block/partitions/Kconfig
+++ b/block/partitions/Kconfig +++ b/block/partitions/Kconfig
@@ -101,6 +101,13 @@ config ATARI_PARTITION @@ -101,6 +101,13 @@ config ATARI_PARTITION
@ -25,6 +48,8 @@
config IBM_PARTITION config IBM_PARTITION
bool "IBM disk label and partition support" bool "IBM disk label and partition support"
depends on PARTITION_ADVANCED && S390 depends on PARTITION_ADVANCED && S390
diff --git a/block/partitions/Makefile b/block/partitions/Makefile
index a7f05cdb02a8..d319eb1deba9 100644
--- a/block/partitions/Makefile --- a/block/partitions/Makefile
+++ b/block/partitions/Makefile +++ b/block/partitions/Makefile
@@ -8,6 +8,7 @@ obj-$(CONFIG_ACORN_PARTITION) += acorn.o @@ -8,6 +8,7 @@ obj-$(CONFIG_ACORN_PARTITION) += acorn.o
@ -35,9 +60,11 @@
obj-$(CONFIG_CMDLINE_PARTITION) += cmdline.o obj-$(CONFIG_CMDLINE_PARTITION) += cmdline.o
obj-$(CONFIG_MAC_PARTITION) += mac.o obj-$(CONFIG_MAC_PARTITION) += mac.o
obj-$(CONFIG_LDM_PARTITION) += ldm.o obj-$(CONFIG_LDM_PARTITION) += ldm.o
diff --git a/block/partitions/check.h b/block/partitions/check.h
index d5b28e309d64..1b2fd18b2480 100644
--- a/block/partitions/check.h --- a/block/partitions/check.h
+++ b/block/partitions/check.h +++ b/block/partitions/check.h
@@ -58,6 +58,7 @@ int amiga_partition(struct parsed_partit @@ -58,6 +58,7 @@ int amiga_partition(struct parsed_partitions *state);
int atari_partition(struct parsed_partitions *state); int atari_partition(struct parsed_partitions *state);
int cmdline_partition(struct parsed_partitions *state); int cmdline_partition(struct parsed_partitions *state);
int efi_partition(struct parsed_partitions *state); int efi_partition(struct parsed_partitions *state);
@ -45,12 +72,14 @@
int ibm_partition(struct parsed_partitions *); int ibm_partition(struct parsed_partitions *);
int karma_partition(struct parsed_partitions *state); int karma_partition(struct parsed_partitions *state);
int ldm_partition(struct parsed_partitions *state); int ldm_partition(struct parsed_partitions *state);
@@ -68,3 +69,5 @@ int sgi_partition(struct parsed_partitio @@ -68,3 +69,5 @@ int sgi_partition(struct parsed_partitions *state);
int sun_partition(struct parsed_partitions *state); int sun_partition(struct parsed_partitions *state);
int sysv68_partition(struct parsed_partitions *state); int sysv68_partition(struct parsed_partitions *state);
int ultrix_partition(struct parsed_partitions *state); int ultrix_partition(struct parsed_partitions *state);
+ +
+int parse_fit_partitions(struct parsed_partitions *state, u64 start_sector, u64 nr_sectors, int *slot, int add_remain); +int parse_fit_partitions(struct parsed_partitions *state, u64 start_sector, u64 nr_sectors, int *slot, int add_remain);
diff --git a/block/partitions/core.c b/block/partitions/core.c
index b9e9af84f518..176f7fe79c56 100644
--- a/block/partitions/core.c --- a/block/partitions/core.c
+++ b/block/partitions/core.c +++ b/block/partitions/core.c
@@ -12,6 +12,10 @@ @@ -12,6 +12,10 @@
@ -64,7 +93,7 @@
#include "check.h" #include "check.h"
static int (*check_part[])(struct parsed_partitions *) = { static int (*check_part[])(struct parsed_partitions *) = {
@@ -48,6 +52,9 @@ static int (*check_part[])(struct parsed @@ -48,6 +52,9 @@ static int (*check_part[])(struct parsed_partitions *) = {
#ifdef CONFIG_EFI_PARTITION #ifdef CONFIG_EFI_PARTITION
efi_partition, /* this must come before msdos */ efi_partition, /* this must come before msdos */
#endif #endif
@ -74,7 +103,7 @@
#ifdef CONFIG_SGI_PARTITION #ifdef CONFIG_SGI_PARTITION
sgi_partition, sgi_partition,
#endif #endif
@@ -408,6 +415,11 @@ static struct block_device *add_partitio @@ -408,6 +415,11 @@ static struct block_device *add_partition(struct gendisk *disk, int partno,
goto out_del; goto out_del;
} }
@ -86,7 +115,7 @@
/* everything is up and running, commence */ /* everything is up and running, commence */
err = xa_insert(&disk->part_tbl, partno, bdev, GFP_KERNEL); err = xa_insert(&disk->part_tbl, partno, bdev, GFP_KERNEL);
if (err) if (err)
@@ -598,6 +610,11 @@ static bool blk_add_partition(struct gen @@ -598,6 +610,11 @@ static bool blk_add_partition(struct gendisk *disk,
(state->parts[p].flags & ADDPART_FLAG_RAID)) (state->parts[p].flags & ADDPART_FLAG_RAID))
md_autodetect_dev(part->bd_dev); md_autodetect_dev(part->bd_dev);
@ -98,32 +127,11 @@
return true; return true;
} }
--- a/drivers/mtd/ubi/block.c diff --git a/block/partitions/efi.c b/block/partitions/efi.c
+++ b/drivers/mtd/ubi/block.c index 7ca5c4c374d4..9ecd2b3d5674 100644
@@ -428,6 +428,9 @@ int ubiblock_create(struct ubi_volume_in
goto out_cleanup_disk;
}
gd->private_data = dev;
+#ifdef CONFIG_FIT_PARTITION
+ gd->flags |= GENHD_FL_EXT_DEVT;
+#endif
sprintf(gd->disk_name, "ubiblock%d_%d", dev->ubi_num, dev->vol_id);
set_capacity(gd, disk_capacity);
dev->gd = gd;
--- a/drivers/mtd/mtd_blkdevs.c
+++ b/drivers/mtd/mtd_blkdevs.c
@@ -345,6 +345,8 @@ int add_mtd_blktrans_dev(struct mtd_blkt
gd->first_minor = (new->devnum) << tr->part_bits;
gd->minors = 1 << tr->part_bits;
gd->fops = &mtd_block_ops;
+ if (IS_ENABLED(CONFIG_FIT_PARTITION) && !mtd_type_is_nand(new->mtd))
+ gd->flags |= GENHD_FL_EXT_DEVT;
if (tr->part_bits)
if (new->devnum < 26)
--- a/block/partitions/efi.c --- a/block/partitions/efi.c
+++ b/block/partitions/efi.c +++ b/block/partitions/efi.c
@@ -716,6 +716,9 @@ int efi_partition(struct parsed_partitio @@ -716,6 +716,9 @@ int efi_partition(struct parsed_partitions *state)
gpt_entry *ptes = NULL; gpt_entry *ptes = NULL;
u32 i; u32 i;
unsigned ssz = queue_logical_block_size(state->disk->queue) / 512; unsigned ssz = queue_logical_block_size(state->disk->queue) / 512;
@ -133,7 +141,7 @@
if (!find_valid_gpt(state, &gpt, &ptes) || !gpt || !ptes) { if (!find_valid_gpt(state, &gpt, &ptes) || !gpt || !ptes) {
kfree(gpt); kfree(gpt);
@@ -749,6 +752,11 @@ int efi_partition(struct parsed_partitio @@ -749,6 +752,11 @@ int efi_partition(struct parsed_partitions *state)
ARRAY_SIZE(ptes[i].partition_name)); ARRAY_SIZE(ptes[i].partition_name));
utf16_le_to_7bit(ptes[i].partition_name, label_max, info->volname); utf16_le_to_7bit(ptes[i].partition_name, label_max, info->volname);
state->parts[i + 1].has_info = true; state->parts[i + 1].has_info = true;
@ -145,6 +153,8 @@
} }
kfree(ptes); kfree(ptes);
kfree(gpt); kfree(gpt);
diff --git a/block/partitions/efi.h b/block/partitions/efi.h
index 8cc2b88d0aa8..b5807e35bafc 100644
--- a/block/partitions/efi.h --- a/block/partitions/efi.h
+++ b/block/partitions/efi.h +++ b/block/partitions/efi.h
@@ -52,6 +52,9 @@ @@ -52,6 +52,9 @@
@ -157,9 +167,11 @@
typedef struct _gpt_header { typedef struct _gpt_header {
__le64 signature; __le64 signature;
diff --git a/block/partitions/msdos.c b/block/partitions/msdos.c
index b5d5c229cc3b..ff7e74911359 100644
--- a/block/partitions/msdos.c --- a/block/partitions/msdos.c
+++ b/block/partitions/msdos.c +++ b/block/partitions/msdos.c
@@ -564,6 +564,15 @@ static void parse_minix(struct parsed_pa @@ -564,6 +564,15 @@ static void parse_minix(struct parsed_partitions *state,
#endif /* CONFIG_MINIX_SUBPARTITION */ #endif /* CONFIG_MINIX_SUBPARTITION */
} }
@ -183,6 +195,35 @@
{0, NULL}, {0, NULL},
}; };
diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c
index 65470d1b8fc8..5dd9b54d6555 100644
--- a/drivers/mtd/mtd_blkdevs.c
+++ b/drivers/mtd/mtd_blkdevs.c
@@ -345,6 +345,8 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
gd->first_minor = (new->devnum) << tr->part_bits;
gd->minors = 1 << tr->part_bits;
gd->fops = &mtd_block_ops;
+ if (IS_ENABLED(CONFIG_FIT_PARTITION) && !mtd_type_is_nand(new->mtd))
+ gd->flags |= GENHD_FL_EXT_DEVT;
if (tr->part_bits)
if (new->devnum < 26)
diff --git a/drivers/mtd/ubi/block.c b/drivers/mtd/ubi/block.c
index 57b984dd73b4..5982070e470b 100644
--- a/drivers/mtd/ubi/block.c
+++ b/drivers/mtd/ubi/block.c
@@ -428,6 +428,9 @@ int ubiblock_create(struct ubi_volume_info *vi)
goto out_cleanup_disk;
}
gd->private_data = dev;
+#ifdef CONFIG_FIT_PARTITION
+ gd->flags |= GENHD_FL_EXT_DEVT;
+#endif
sprintf(gd->disk_name, "ubiblock%d_%d", dev->ubi_num, dev->vol_id);
set_capacity(gd, disk_capacity);
dev->gd = gd;
diff --git a/include/linux/msdos_partition.h b/include/linux/msdos_partition.h
index 2cb82db2a43c..c15b6c759aca 100644
--- a/include/linux/msdos_partition.h --- a/include/linux/msdos_partition.h
+++ b/include/linux/msdos_partition.h +++ b/include/linux/msdos_partition.h
@@ -31,6 +31,7 @@ enum msdos_sys_ind { @@ -31,6 +31,7 @@ enum msdos_sys_ind {
@ -193,3 +234,5 @@
SOLARIS_X86_PARTITION = 0x82, /* also Linux swap partitions */ SOLARIS_X86_PARTITION = 0x82, /* also Linux swap partitions */
NEW_SOLARIS_X86_PARTITION = 0xbf, NEW_SOLARIS_X86_PARTITION = 0xbf,
--

View file

@ -1,3 +1,15 @@
From ac84397efb3b3868c71c10ad7521161773228a17 Mon Sep 17 00:00:00 2001
From: OpenWrt community <openwrt-devel@lists.openwrt.org>
Date: Wed, 13 Jul 2022 13:41:44 +0200
Subject: [PATCH] mtd/nand: add MediaTek NAND bad block managment table
---
drivers/mtd/nand/Kconfig | 4 ++++
drivers/mtd/nand/Makefile | 1 +
2 files changed, 5 insertions(+)
diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig
index b40455234cbd..72ef18c59cee 100644
--- a/drivers/mtd/nand/Kconfig --- a/drivers/mtd/nand/Kconfig
+++ b/drivers/mtd/nand/Kconfig +++ b/drivers/mtd/nand/Kconfig
@@ -46,6 +46,10 @@ config MTD_NAND_ECC_SW_BCH @@ -46,6 +46,10 @@ config MTD_NAND_ECC_SW_BCH
@ -11,6 +23,8 @@
endmenu endmenu
endmenu endmenu
diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile
index 1c0b46960eb1..b9d97626bb47 100644
--- a/drivers/mtd/nand/Makefile --- a/drivers/mtd/nand/Makefile
+++ b/drivers/mtd/nand/Makefile +++ b/drivers/mtd/nand/Makefile
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
@ -21,3 +35,5 @@
obj-y += onenand/ obj-y += onenand/
obj-y += raw/ obj-y += raw/
--

View file

@ -1,3 +1,30 @@
From 11c3fae5afa6cac444d12622e2cf5af60a99c1ef Mon Sep 17 00:00:00 2001
From: OpenWrt community <openwrt-devel@lists.openwrt.org>
Date: Wed, 13 Jul 2022 13:43:15 +0200
Subject: [PATCH] net/bridge: add bridge offload
---
include/linux/if_bridge.h | 1 +
net/bridge/Makefile | 2 +-
net/bridge/br.c | 8 +
net/bridge/br_device.c | 2 +
net/bridge/br_fdb.c | 5 +
net/bridge/br_forward.c | 3 +
net/bridge/br_if.c | 6 +-
net/bridge/br_input.c | 5 +
net/bridge/br_offload.c | 438 ++++++++++++++++++++++++++++++++
net/bridge/br_private.h | 22 +-
net/bridge/br_private_offload.h | 23 ++
net/bridge/br_stp.c | 3 +
net/bridge/br_sysfs_br.c | 35 +++
net/bridge/br_sysfs_if.c | 2 +
net/bridge/br_vlan_tunnel.c | 3 +
15 files changed, 555 insertions(+), 3 deletions(-)
create mode 100644 net/bridge/br_offload.c
create mode 100644 net/bridge/br_private_offload.h
diff --git a/include/linux/if_bridge.h b/include/linux/if_bridge.h
index 18d3b264b754..944630df0ec3 100644
--- a/include/linux/if_bridge.h --- a/include/linux/if_bridge.h
+++ b/include/linux/if_bridge.h +++ b/include/linux/if_bridge.h
@@ -59,6 +59,7 @@ struct br_ip_list { @@ -59,6 +59,7 @@ struct br_ip_list {
@ -8,6 +35,8 @@
#define BR_DEFAULT_AGEING_TIME (300 * HZ) #define BR_DEFAULT_AGEING_TIME (300 * HZ)
diff --git a/net/bridge/Makefile b/net/bridge/Makefile
index 7fb9a021873b..0ebf3665c216 100644
--- a/net/bridge/Makefile --- a/net/bridge/Makefile
+++ b/net/bridge/Makefile +++ b/net/bridge/Makefile
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
@ -19,6 +48,8 @@
br_ioctl.o br_stp.o br_stp_bpdu.o \ br_ioctl.o br_stp.o br_stp_bpdu.o \
br_stp_if.o br_stp_timer.o br_netlink.o \ br_stp_if.o br_stp_timer.o br_netlink.o \
br_netlink_tunnel.o br_arp_nd_proxy.o br_netlink_tunnel.o br_arp_nd_proxy.o
diff --git a/net/bridge/br.c b/net/bridge/br.c
index d3a32c6813e0..42e4d4fec604 100644
--- a/net/bridge/br.c --- a/net/bridge/br.c
+++ b/net/bridge/br.c +++ b/net/bridge/br.c
@@ -18,6 +18,7 @@ @@ -18,6 +18,7 @@
@ -40,7 +71,7 @@
err = register_pernet_subsys(&br_net_ops); err = register_pernet_subsys(&br_net_ops);
if (err) if (err)
goto err_out1; goto err_out1;
@@ -430,6 +435,8 @@ err_out3: @@ -430,6 +435,8 @@ static int __init br_init(void)
err_out2: err_out2:
unregister_pernet_subsys(&br_net_ops); unregister_pernet_subsys(&br_net_ops);
err_out1: err_out1:
@ -57,9 +88,11 @@
br_fdb_fini(); br_fdb_fini();
} }
diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c
index 8d6bab244c4a..d69d8e9ed7aa 100644
--- a/net/bridge/br_device.c --- a/net/bridge/br_device.c
+++ b/net/bridge/br_device.c +++ b/net/bridge/br_device.c
@@ -524,6 +524,8 @@ void br_dev_setup(struct net_device *dev @@ -524,6 +524,8 @@ void br_dev_setup(struct net_device *dev)
br->bridge_hello_time = br->hello_time = 2 * HZ; br->bridge_hello_time = br->hello_time = 2 * HZ;
br->bridge_forward_delay = br->forward_delay = 15 * HZ; br->bridge_forward_delay = br->forward_delay = 15 * HZ;
br->bridge_ageing_time = br->ageing_time = BR_DEFAULT_AGEING_TIME; br->bridge_ageing_time = br->ageing_time = BR_DEFAULT_AGEING_TIME;
@ -68,6 +101,8 @@
dev->max_mtu = ETH_MAX_MTU; dev->max_mtu = ETH_MAX_MTU;
br_netfilter_rtable_init(br); br_netfilter_rtable_init(br);
diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c
index 46812b659710..20ea8f75d140 100644
--- a/net/bridge/br_fdb.c --- a/net/bridge/br_fdb.c
+++ b/net/bridge/br_fdb.c +++ b/net/bridge/br_fdb.c
@@ -23,6 +23,7 @@ @@ -23,6 +23,7 @@
@ -78,7 +113,7 @@
static const struct rhashtable_params br_fdb_rht_params = { static const struct rhashtable_params br_fdb_rht_params = {
.head_offset = offsetof(struct net_bridge_fdb_entry, rhnode), .head_offset = offsetof(struct net_bridge_fdb_entry, rhnode),
@@ -518,6 +519,8 @@ static struct net_bridge_fdb_entry *fdb_ @@ -518,6 +519,8 @@ static struct net_bridge_fdb_entry *fdb_create(struct net_bridge *br,
fdb->key.vlan_id = vid; fdb->key.vlan_id = vid;
fdb->flags = flags; fdb->flags = flags;
fdb->updated = fdb->used = jiffies; fdb->updated = fdb->used = jiffies;
@ -87,7 +122,7 @@
if (rhashtable_lookup_insert_fast(&br->fdb_hash_tbl, if (rhashtable_lookup_insert_fast(&br->fdb_hash_tbl,
&fdb->rhnode, &fdb->rhnode,
br_fdb_rht_params)) { br_fdb_rht_params)) {
@@ -794,6 +797,8 @@ static void fdb_notify(struct net_bridge @@ -794,6 +797,8 @@ static void fdb_notify(struct net_bridge *br,
struct sk_buff *skb; struct sk_buff *skb;
int err = -ENOBUFS; int err = -ENOBUFS;
@ -96,6 +131,8 @@
if (swdev_notify) if (swdev_notify)
br_switchdev_fdb_notify(br, fdb, type); br_switchdev_fdb_notify(br, fdb, type);
diff --git a/net/bridge/br_forward.c b/net/bridge/br_forward.c
index 9fe5c888f27d..6d9025106d9d 100644
--- a/net/bridge/br_forward.c --- a/net/bridge/br_forward.c
+++ b/net/bridge/br_forward.c +++ b/net/bridge/br_forward.c
@@ -16,6 +16,7 @@ @@ -16,6 +16,7 @@
@ -106,7 +143,7 @@
/* Don't forward packets to originating port or forwarding disabled */ /* Don't forward packets to originating port or forwarding disabled */
static inline int should_deliver(const struct net_bridge_port *p, static inline int should_deliver(const struct net_bridge_port *p,
@@ -32,6 +33,8 @@ static inline int should_deliver(const s @@ -32,6 +33,8 @@ static inline int should_deliver(const struct net_bridge_port *p,
int br_dev_queue_push_xmit(struct net *net, struct sock *sk, struct sk_buff *skb) int br_dev_queue_push_xmit(struct net *net, struct sock *sk, struct sk_buff *skb)
{ {
@ -115,6 +152,8 @@
skb_push(skb, ETH_HLEN); skb_push(skb, ETH_HLEN);
if (!is_skb_forwardable(skb->dev, skb)) if (!is_skb_forwardable(skb->dev, skb))
goto drop; goto drop;
diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
index 4a02f8bb278a..b1d3295b861c 100644
--- a/net/bridge/br_if.c --- a/net/bridge/br_if.c
+++ b/net/bridge/br_if.c +++ b/net/bridge/br_if.c
@@ -25,6 +25,7 @@ @@ -25,6 +25,7 @@
@ -125,7 +164,7 @@
/* /*
* Determine initial path cost based on speed. * Determine initial path cost based on speed.
@@ -428,7 +429,7 @@ static struct net_bridge_port *new_nbp(s @@ -428,7 +429,7 @@ static struct net_bridge_port *new_nbp(struct net_bridge *br,
p->path_cost = port_cost(dev); p->path_cost = port_cost(dev);
p->priority = 0x8000 >> BR_PORT_BITS; p->priority = 0x8000 >> BR_PORT_BITS;
p->port_no = index; p->port_no = index;
@ -134,7 +173,7 @@
br_init_port(p); br_init_port(p);
br_set_state(p, BR_STATE_DISABLED); br_set_state(p, BR_STATE_DISABLED);
br_stp_port_timer_init(p); br_stp_port_timer_init(p);
@@ -771,6 +772,9 @@ void br_port_flags_change(struct net_bri @@ -771,6 +772,9 @@ void br_port_flags_change(struct net_bridge_port *p, unsigned long mask)
if (mask & BR_NEIGH_SUPPRESS) if (mask & BR_NEIGH_SUPPRESS)
br_recalculate_neigh_suppress_enabled(br); br_recalculate_neigh_suppress_enabled(br);
@ -144,6 +183,8 @@
} }
bool br_port_flag_is_set(const struct net_device *dev, unsigned long flag) bool br_port_flag_is_set(const struct net_device *dev, unsigned long flag)
diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c
index 65416af73714..b0601e6aed8c 100644
--- a/net/bridge/br_input.c --- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c +++ b/net/bridge/br_input.c
@@ -22,6 +22,7 @@ @@ -22,6 +22,7 @@
@ -154,7 +195,7 @@
static int static int
br_netif_receive_skb(struct net *net, struct sock *sk, struct sk_buff *skb) br_netif_receive_skb(struct net *net, struct sock *sk, struct sk_buff *skb)
@@ -171,6 +172,7 @@ int br_handle_frame_finish(struct net *n @@ -171,6 +172,7 @@ int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb
dst->used = now; dst->used = now;
br_forward(dst->dst, skb, local_rcv, false); br_forward(dst->dst, skb, local_rcv, false);
} else { } else {
@ -162,7 +203,7 @@
if (!mcast_hit) if (!mcast_hit)
br_flood(br, skb, pkt_type, local_rcv, false); br_flood(br, skb, pkt_type, local_rcv, false);
else else
@@ -304,6 +306,9 @@ static rx_handler_result_t br_handle_fra @@ -304,6 +306,9 @@ static rx_handler_result_t br_handle_frame(struct sk_buff **pskb)
memset(skb->cb, 0, sizeof(struct br_input_skb_cb)); memset(skb->cb, 0, sizeof(struct br_input_skb_cb));
p = br_port_get_rcu(skb->dev); p = br_port_get_rcu(skb->dev);
@ -172,6 +213,9 @@
if (p->flags & BR_VLAN_TUNNEL) if (p->flags & BR_VLAN_TUNNEL)
br_handle_ingress_vlan_tunnel(skb, p, nbp_vlan_group_rcu(p)); br_handle_ingress_vlan_tunnel(skb, p, nbp_vlan_group_rcu(p));
diff --git a/net/bridge/br_offload.c b/net/bridge/br_offload.c
new file mode 100644
index 000000000000..88173ed11093
--- /dev/null --- /dev/null
+++ b/net/bridge/br_offload.c +++ b/net/bridge/br_offload.c
@@ -0,0 +1,438 @@ @@ -0,0 +1,438 @@
@ -613,6 +657,8 @@
+{ +{
+ kmem_cache_destroy(offload_cache); + kmem_cache_destroy(offload_cache);
+} +}
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
index bd218c2b2cd9..951ba1d993ca 100644
--- a/net/bridge/br_private.h --- a/net/bridge/br_private.h
+++ b/net/bridge/br_private.h +++ b/net/bridge/br_private.h
@@ -268,7 +268,13 @@ struct net_bridge_fdb_entry { @@ -268,7 +268,13 @@ struct net_bridge_fdb_entry {
@ -672,6 +718,9 @@
#ifdef CONFIG_NET_SWITCHDEV #ifdef CONFIG_NET_SWITCHDEV
/* Set if TX data plane offloading is used towards at least one /* Set if TX data plane offloading is used towards at least one
diff --git a/net/bridge/br_private_offload.h b/net/bridge/br_private_offload.h
new file mode 100644
index 000000000000..97c13af2866b
--- /dev/null --- /dev/null
+++ b/net/bridge/br_private_offload.h +++ b/net/bridge/br_private_offload.h
@@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
@ -698,6 +747,8 @@
+} +}
+ +
+#endif +#endif
diff --git a/net/bridge/br_stp.c b/net/bridge/br_stp.c
index 1d80f34a139c..b57788b53d24 100644
--- a/net/bridge/br_stp.c --- a/net/bridge/br_stp.c
+++ b/net/bridge/br_stp.c +++ b/net/bridge/br_stp.c
@@ -12,6 +12,7 @@ @@ -12,6 +12,7 @@
@ -708,7 +759,7 @@
/* since time values in bpdu are in jiffies and then scaled (1/256) /* since time values in bpdu are in jiffies and then scaled (1/256)
* before sending, make sure that is at least one STP tick. * before sending, make sure that is at least one STP tick.
@@ -52,6 +53,8 @@ void br_set_state(struct net_bridge_port @@ -52,6 +53,8 @@ void br_set_state(struct net_bridge_port *p, unsigned int state)
(unsigned int) p->port_no, p->dev->name, (unsigned int) p->port_no, p->dev->name,
br_port_state_names[p->state]); br_port_state_names[p->state]);
@ -717,6 +768,8 @@
if (p->br->stp_enabled == BR_KERNEL_STP) { if (p->br->stp_enabled == BR_KERNEL_STP) {
switch (p->state) { switch (p->state) {
case BR_STATE_BLOCKING: case BR_STATE_BLOCKING:
diff --git a/net/bridge/br_sysfs_br.c b/net/bridge/br_sysfs_br.c
index 7b0c19772111..814cbfb77d25 100644
--- a/net/bridge/br_sysfs_br.c --- a/net/bridge/br_sysfs_br.c
+++ b/net/bridge/br_sysfs_br.c +++ b/net/bridge/br_sysfs_br.c
@@ -18,6 +18,7 @@ @@ -18,6 +18,7 @@
@ -727,7 +780,7 @@
/* IMPORTANT: new bridge options must be added with netlink support only /* IMPORTANT: new bridge options must be added with netlink support only
* please do not add new sysfs entries * please do not add new sysfs entries
@@ -930,6 +931,38 @@ static ssize_t vlan_stats_per_port_store @@ -930,6 +931,38 @@ static ssize_t vlan_stats_per_port_store(struct device *d,
static DEVICE_ATTR_RW(vlan_stats_per_port); static DEVICE_ATTR_RW(vlan_stats_per_port);
#endif #endif
@ -766,7 +819,7 @@
static struct attribute *bridge_attrs[] = { static struct attribute *bridge_attrs[] = {
&dev_attr_forward_delay.attr, &dev_attr_forward_delay.attr,
&dev_attr_hello_time.attr, &dev_attr_hello_time.attr,
@@ -984,6 +1017,8 @@ static struct attribute *bridge_attrs[] @@ -984,6 +1017,8 @@ static struct attribute *bridge_attrs[] = {
&dev_attr_vlan_stats_enabled.attr, &dev_attr_vlan_stats_enabled.attr,
&dev_attr_vlan_stats_per_port.attr, &dev_attr_vlan_stats_per_port.attr,
#endif #endif
@ -775,9 +828,11 @@
NULL NULL
}; };
diff --git a/net/bridge/br_sysfs_if.c b/net/bridge/br_sysfs_if.c
index 9ee9c60738e2..2b44e5fb19e4 100644
--- a/net/bridge/br_sysfs_if.c --- a/net/bridge/br_sysfs_if.c
+++ b/net/bridge/br_sysfs_if.c +++ b/net/bridge/br_sysfs_if.c
@@ -241,6 +241,7 @@ BRPORT_ATTR_FLAG(broadcast_flood, BR_BCA @@ -241,6 +241,7 @@ BRPORT_ATTR_FLAG(broadcast_flood, BR_BCAST_FLOOD);
BRPORT_ATTR_FLAG(neigh_suppress, BR_NEIGH_SUPPRESS); BRPORT_ATTR_FLAG(neigh_suppress, BR_NEIGH_SUPPRESS);
BRPORT_ATTR_FLAG(isolated, BR_ISOLATED); BRPORT_ATTR_FLAG(isolated, BR_ISOLATED);
BRPORT_ATTR_FLAG(bpdu_filter, BR_BPDU_FILTER); BRPORT_ATTR_FLAG(bpdu_filter, BR_BPDU_FILTER);
@ -785,7 +840,7 @@
#ifdef CONFIG_BRIDGE_IGMP_SNOOPING #ifdef CONFIG_BRIDGE_IGMP_SNOOPING
static ssize_t show_multicast_router(struct net_bridge_port *p, char *buf) static ssize_t show_multicast_router(struct net_bridge_port *p, char *buf)
@@ -295,6 +296,7 @@ static const struct brport_attribute *br @@ -295,6 +296,7 @@ static const struct brport_attribute *brport_attrs[] = {
&brport_attr_isolated, &brport_attr_isolated,
&brport_attr_bpdu_filter, &brport_attr_bpdu_filter,
&brport_attr_backup_port, &brport_attr_backup_port,
@ -793,6 +848,8 @@
NULL NULL
}; };
diff --git a/net/bridge/br_vlan_tunnel.c b/net/bridge/br_vlan_tunnel.c
index 6399a8a69d07..ffc65dc4eea8 100644
--- a/net/bridge/br_vlan_tunnel.c --- a/net/bridge/br_vlan_tunnel.c
+++ b/net/bridge/br_vlan_tunnel.c +++ b/net/bridge/br_vlan_tunnel.c
@@ -15,6 +15,7 @@ @@ -15,6 +15,7 @@
@ -803,7 +860,7 @@
static inline int br_vlan_tunid_cmp(struct rhashtable_compare_arg *arg, static inline int br_vlan_tunid_cmp(struct rhashtable_compare_arg *arg,
const void *ptr) const void *ptr)
@@ -180,6 +181,7 @@ void br_handle_ingress_vlan_tunnel(struc @@ -180,6 +181,7 @@ void br_handle_ingress_vlan_tunnel(struct sk_buff *skb,
skb_dst_drop(skb); skb_dst_drop(skb);
__vlan_hwaccel_put_tag(skb, p->br->vlan_proto, vlan->vid); __vlan_hwaccel_put_tag(skb, p->br->vlan_proto, vlan->vid);
@ -811,7 +868,7 @@
} }
int br_handle_egress_vlan_tunnel(struct sk_buff *skb, int br_handle_egress_vlan_tunnel(struct sk_buff *skb,
@@ -201,6 +203,7 @@ int br_handle_egress_vlan_tunnel(struct @@ -201,6 +203,7 @@ int br_handle_egress_vlan_tunnel(struct sk_buff *skb,
if (err) if (err)
return err; return err;
@ -819,3 +876,5 @@
tunnel_dst = rcu_dereference(vlan->tinfo.tunnel_dst); tunnel_dst = rcu_dereference(vlan->tinfo.tunnel_dst);
if (tunnel_dst && dst_hold_safe(&tunnel_dst->dst)) if (tunnel_dst && dst_hold_safe(&tunnel_dst->dst))
skb_dst_set(skb, &tunnel_dst->dst); skb_dst_set(skb, &tunnel_dst->dst);
--

View file

@ -1,6 +1,17 @@
From ebd924d773223593142d417c41d4ee6fa16f1805 Mon Sep 17 00:00:00 2001
From: OpenWrt community <openwrt-devel@lists.openwrt.org>
Date: Wed, 13 Jul 2022 13:45:56 +0200
Subject: [PATCH] net/dsa/mv88e6xxx: disable ATU violation
---
drivers/net/dsa/mv88e6xxx/chip.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index cad98ab421d7..790e1887d73b 100644
--- 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
@@ -2981,6 +2981,9 @@ static int mv88e6xxx_setup_port(struct m @@ -2981,6 +2981,9 @@ static int mv88e6xxx_setup_port(struct mv88e6xxx_chip *chip, int port)
else else
reg = 1 << port; reg = 1 << port;
@ -10,3 +21,5 @@
err = mv88e6xxx_port_write(chip, port, MV88E6XXX_PORT_ASSOC_VECTOR, err = mv88e6xxx_port_write(chip, port, MV88E6XXX_PORT_ASSOC_VECTOR,
reg); reg);
if (err) if (err)
--

View file

@ -1,6 +1,18 @@
From f81700b6bb2eda3756247bce472d8eaf6f466f61 Mon Sep 17 00:00:00 2001
From: OpenWrt community <openwrt-devel@lists.openwrt.org>
Date: Wed, 13 Jul 2022 13:49:26 +0200
Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
---
drivers/net/usb/qmi_wwan.c | 1 +
drivers/usb/serial/option.c | 7 +++++++
2 files changed, 8 insertions(+)
diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
index 8f1487f41085..d992985d599e 100644
--- a/drivers/net/usb/qmi_wwan.c --- a/drivers/net/usb/qmi_wwan.c
+++ b/drivers/net/usb/qmi_wwan.c +++ b/drivers/net/usb/qmi_wwan.c
@@ -1085,6 +1085,7 @@ static const struct usb_device_id produc @@ -1085,6 +1085,7 @@ static const struct usb_device_id products[] = {
{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0512)}, /* Quectel EG12/EM12 */ {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0512)}, /* Quectel EG12/EM12 */
{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0620)}, /* Quectel EM160R-GL */ {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0620)}, /* Quectel EM160R-GL */
{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0800)}, /* Quectel RM500Q-GL */ {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0800)}, /* Quectel RM500Q-GL */
@ -8,9 +20,11 @@
/* 3. Combined interface devices matching on interface number */ /* 3. Combined interface devices matching on interface number */
{QMI_FIXED_INTF(0x0408, 0xea42, 4)}, /* Yota / Megafon M100-1 */ {QMI_FIXED_INTF(0x0408, 0xea42, 4)}, /* Yota / Megafon M100-1 */
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index de59fa919540..9f00d047f5e9 100644
--- a/drivers/usb/serial/option.c --- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c
@@ -243,6 +243,8 @@ static void option_instat_callback(struc @@ -243,6 +243,8 @@ static void option_instat_callback(struct urb *urb);
#define UBLOX_PRODUCT_R6XX 0x90fa #define UBLOX_PRODUCT_R6XX 0x90fa
/* These Yuga products use Qualcomm's vendor ID */ /* These Yuga products use Qualcomm's vendor ID */
#define YUGA_PRODUCT_CLM920_NC5 0x9625 #define YUGA_PRODUCT_CLM920_NC5 0x9625
@ -19,7 +33,7 @@
#define QUECTEL_VENDOR_ID 0x2c7c #define QUECTEL_VENDOR_ID 0x2c7c
/* These Quectel products use Quectel's vendor ID */ /* These Quectel products use Quectel's vendor ID */
@@ -1133,6 +1135,11 @@ static const struct usb_device_id option @@ -1133,6 +1135,11 @@ static const struct usb_device_id option_ids[] = {
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0, 0) }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EG95, 0xff, 0, 0) },
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96), { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
.driver_info = RSVD(4) }, .driver_info = RSVD(4) },
@ -31,3 +45,5 @@
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff), { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff),
.driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 }, .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 },
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) },
--

View file

@ -1,6 +1,17 @@
From e08bcbbaa52fcc41f02743fd2e62a33255ce52da Mon Sep 17 00:00:00 2001
From: OpenWrt community <openwrt-devel@lists.openwrt.org>
Date: Wed, 13 Jul 2022 13:52:28 +0200
Subject: [PATCH] of/ftd: add device tree cmdline
---
drivers/of/fdt.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index 59a7a9ee58ef..3b0b62b410dd 100644
--- a/drivers/of/fdt.c --- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c +++ b/drivers/of/fdt.c
@@ -1158,6 +1158,9 @@ int __init early_init_dt_scan_chosen(uns @@ -1158,6 +1158,9 @@ int __init early_init_dt_scan_chosen(unsigned long node, const char *uname,
p = of_get_flat_dt_prop(node, "bootargs", &l); p = of_get_flat_dt_prop(node, "bootargs", &l);
if (p != NULL && l > 0) if (p != NULL && l > 0)
strlcpy(data, p, min(l, COMMAND_LINE_SIZE)); strlcpy(data, p, min(l, COMMAND_LINE_SIZE));
@ -10,3 +21,5 @@
/* /*
* CONFIG_CMDLINE is meant to be a default in case nothing else * CONFIG_CMDLINE is meant to be a default in case nothing else
--