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:
parent
2ed7f6cbb0
commit
8857387913
10 changed files with 268 additions and 53 deletions
|
@ -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 '?':
|
||||||
|
--
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
--
|
||||||
|
|
||||||
|
|
|
@ -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,
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
|
|
@ -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/
|
||||||
|
--
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
--
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
--
|
||||||
|
|
||||||
|
|
|
@ -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) },
|
||||||
|
--
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
--
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue