mirror of
https://github.com/openwrt/openwrt.git
synced 2025-04-07 11:27:09 +00:00
generic: 6.6: manually refresh pending patches
Refresh pending patches for kernel 6.6. Signed-off-by: Daniel Golle <daniel@makrotopia.org> Signed-off-by: Weijie Gao <hackpascal@gmail.com>
This commit is contained in:
parent
a76397cd47
commit
5b6bca812d
@ -69,9 +69,9 @@ previously calculated offset is zero for the named platform it is able to boot
|
||||
Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
|
||||
---
|
||||
|
||||
--- a/mm/page_alloc.c
|
||||
+++ b/mm/page_alloc.c
|
||||
@@ -7897,7 +7897,7 @@ static void __init alloc_node_mem_map(st
|
||||
--- a/mm/mm_init.c
|
||||
+++ b/mm/mm_init.c
|
||||
@@ -1673,7 +1673,7 @@ static void __init alloc_node_mem_map(st
|
||||
if (pgdat == NODE_DATA(0)) {
|
||||
mem_map = NODE_DATA(0)->node_mem_map;
|
||||
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
|
||||
|
@ -8,18 +8,18 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/fs/jffs2/dir.c
|
||||
+++ b/fs/jffs2/dir.c
|
||||
@@ -614,8 +614,8 @@ static int jffs2_rmdir (struct inode *di
|
||||
@@ -617,8 +617,8 @@ static int jffs2_rmdir (struct inode *di
|
||||
return ret;
|
||||
}
|
||||
|
||||
-static int jffs2_mknod (struct user_namespace *mnt_userns, struct inode *dir_i,
|
||||
-static int jffs2_mknod (struct mnt_idmap *idmap, struct inode *dir_i,
|
||||
- struct dentry *dentry, umode_t mode, dev_t rdev)
|
||||
+static int __jffs2_mknod (struct user_namespace *mnt_userns, struct inode *dir_i,
|
||||
+ struct dentry *dentry, umode_t mode, dev_t rdev, bool whiteout)
|
||||
+static int __jffs2_mknod (struct mnt_idmap *idmap, struct inode *dir_i,
|
||||
+ struct dentry *dentry, umode_t mode, dev_t rdev, bool whiteout)
|
||||
{
|
||||
struct jffs2_inode_info *f, *dir_f;
|
||||
struct jffs2_sb_info *c;
|
||||
@@ -754,7 +754,11 @@ static int jffs2_mknod (struct user_name
|
||||
@@ -758,7 +758,11 @@ static int jffs2_mknod (struct mnt_idmap
|
||||
mutex_unlock(&dir_f->sem);
|
||||
jffs2_complete_reservation(c);
|
||||
|
||||
@ -32,27 +32,27 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
return 0;
|
||||
|
||||
fail:
|
||||
@@ -762,6 +766,19 @@ static int jffs2_mknod (struct user_name
|
||||
@@ -766,6 +770,19 @@ static int jffs2_mknod (struct mnt_idmap
|
||||
return ret;
|
||||
}
|
||||
|
||||
+static int jffs2_mknod (struct user_namespace *mnt_userns, struct inode *dir_i,
|
||||
+ struct dentry *dentry, umode_t mode, dev_t rdev)
|
||||
+static int jffs2_mknod (struct mnt_idmap *idmap, struct inode *dir_i,
|
||||
+ struct dentry *dentry, umode_t mode, dev_t rdev)
|
||||
+{
|
||||
+ return __jffs2_mknod(mnt_userns, dir_i, dentry, mode, rdev, false);
|
||||
+ return __jffs2_mknod(idmap, dir_i, dentry, mode, rdev, false);
|
||||
+}
|
||||
+
|
||||
+static int jffs2_whiteout (struct user_namespace *mnt_userns, struct inode *old_dir,
|
||||
+ struct dentry *old_dentry)
|
||||
+static int jffs2_whiteout (struct mnt_idmap *idmap, struct inode *old_dir,
|
||||
+ struct dentry *old_dentry)
|
||||
+{
|
||||
+ return __jffs2_mknod(mnt_userns, old_dir, old_dentry, S_IFCHR | WHITEOUT_MODE,
|
||||
+ return __jffs2_mknod(idmap, old_dir, old_dentry, S_IFCHR | WHITEOUT_MODE,
|
||||
+ WHITEOUT_DEV, true);
|
||||
+}
|
||||
+
|
||||
static int jffs2_rename (struct user_namespace *mnt_userns,
|
||||
static int jffs2_rename (struct mnt_idmap *idmap,
|
||||
struct inode *old_dir_i, struct dentry *old_dentry,
|
||||
struct inode *new_dir_i, struct dentry *new_dentry,
|
||||
@@ -773,7 +790,7 @@ static int jffs2_rename (struct user_nam
|
||||
@@ -777,7 +794,7 @@ static int jffs2_rename (struct mnt_idma
|
||||
uint8_t type;
|
||||
uint32_t now;
|
||||
|
||||
@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
return -EINVAL;
|
||||
|
||||
/* The VFS will check for us and prevent trying to rename a
|
||||
@@ -839,9 +856,14 @@ static int jffs2_rename (struct user_nam
|
||||
@@ -843,9 +860,14 @@ static int jffs2_rename (struct mnt_idma
|
||||
if (d_is_dir(old_dentry) && !victim_f)
|
||||
inc_nlink(new_dir_i);
|
||||
|
||||
@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
- old_dentry->d_name.name, old_dentry->d_name.len, NULL, now);
|
||||
+ if (flags & RENAME_WHITEOUT)
|
||||
+ /* Replace with whiteout */
|
||||
+ ret = jffs2_whiteout(mnt_userns, old_dir_i, old_dentry);
|
||||
+ ret = jffs2_whiteout(idmap, old_dir_i, old_dentry);
|
||||
+ else
|
||||
+ /* Unlink the original */
|
||||
+ ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i),
|
||||
|
@ -6,7 +6,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/fs/jffs2/dir.c
|
||||
+++ b/fs/jffs2/dir.c
|
||||
@@ -787,18 +787,31 @@ static int jffs2_rename (struct user_nam
|
||||
@@ -791,18 +791,31 @@ static int jffs2_rename (struct mnt_idma
|
||||
int ret;
|
||||
struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb);
|
||||
struct jffs2_inode_info *victim_f = NULL;
|
||||
@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
victim_f = JFFS2_INODE_INFO(d_inode(new_dentry));
|
||||
if (d_is_dir(new_dentry)) {
|
||||
struct jffs2_full_dirent *fd;
|
||||
@@ -833,7 +846,7 @@ static int jffs2_rename (struct user_nam
|
||||
@@ -837,7 +850,7 @@ static int jffs2_rename (struct mnt_idma
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@ -49,10 +49,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
/* There was a victim. Kill it off nicely */
|
||||
if (d_is_dir(new_dentry))
|
||||
clear_nlink(d_inode(new_dentry));
|
||||
@@ -859,6 +872,12 @@ static int jffs2_rename (struct user_nam
|
||||
@@ -863,6 +876,12 @@ static int jffs2_rename (struct mnt_idma
|
||||
if (flags & RENAME_WHITEOUT)
|
||||
/* Replace with whiteout */
|
||||
ret = jffs2_whiteout(mnt_userns, old_dir_i, old_dentry);
|
||||
ret = jffs2_whiteout(idmap, old_dir_i, old_dentry);
|
||||
+ else if (flags & RENAME_EXCHANGE)
|
||||
+ /* Replace the original */
|
||||
+ ret = jffs2_do_link(c, JFFS2_INODE_INFO(old_dir_i),
|
||||
@ -62,7 +62,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
else
|
||||
/* Unlink the original */
|
||||
ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i),
|
||||
@@ -890,7 +909,7 @@ static int jffs2_rename (struct user_nam
|
||||
@@ -895,7 +914,7 @@ static int jffs2_rename (struct mnt_idma
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -70,4 +70,4 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+ if (d_is_dir(old_dentry) && !(flags & RENAME_EXCHANGE))
|
||||
drop_nlink(old_dir_i);
|
||||
|
||||
new_dir_i->i_mtime = new_dir_i->i_ctime = old_dir_i->i_mtime = old_dir_i->i_ctime = ITIME(now);
|
||||
old_dir_i->i_mtime = inode_set_ctime_to_ts(old_dir_i, ITIME(now));
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
.open = generic_file_open,
|
||||
.read_iter = generic_file_read_iter,
|
||||
.write_iter = generic_file_write_iter,
|
||||
+ .splice_read = generic_file_splice_read,
|
||||
+ .splice_read = filemap_splice_read,
|
||||
+ .splice_write = iter_file_splice_write,
|
||||
.unlocked_ioctl=jffs2_ioctl,
|
||||
.mmap = generic_file_readonly_mmap,
|
||||
|
@ -17,8 +17,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+++ b/net/bridge/br_arp_nd_proxy.c
|
||||
@@ -204,7 +204,10 @@ void br_do_proxy_suppress_arp(struct sk_
|
||||
if ((p && (p->flags & BR_PROXYARP)) ||
|
||||
(f->dst && (f->dst->flags & (BR_PROXYARP_WIFI |
|
||||
BR_NEIGH_SUPPRESS)))) {
|
||||
(f->dst && (f->dst->flags & BR_PROXYARP_WIFI)) ||
|
||||
br_is_neigh_suppress_enabled(f->dst, vid)) {
|
||||
- if (!vid)
|
||||
+ replied = true;
|
||||
+ if (!memcmp(n->ha, sha, dev->addr_len))
|
||||
|
@ -26,8 +26,8 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
|
||||
dev_dbg(&client->dev, "%s\n", __func__);
|
||||
|
||||
@@ -868,6 +869,12 @@ static int rs5c372_probe(struct i2c_clie
|
||||
else
|
||||
rs5c372->type = id->driver_data;
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_OF
|
||||
+ if(of_property_read_bool(client->dev.of_node,
|
||||
|
@ -66,8 +66,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static int base_relative;
|
||||
static int lto_clang;
|
||||
@@ -608,6 +609,9 @@ static void write_src(void)
|
||||
(unsigned char)(table[i]->seq >> 0));
|
||||
printf("\n");
|
||||
|
||||
free(markers);
|
||||
|
||||
+ if (uncompressed)
|
||||
+ return;
|
||||
|
@ -32,8 +32,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+ mod = __module_address(value);
|
||||
+ if (mod)
|
||||
+ snprintf(sym + len, sizeof(sym) - len, " [%s@%p+0x%x]",
|
||||
+ mod->name, mod->core_layout.base,
|
||||
+ mod->core_layout.size);
|
||||
+ mod->name, mod->mem[MOD_TEXT].base,
|
||||
+ mod->mem[MOD_TEXT].size);
|
||||
#endif
|
||||
+ return string(buf, end, sym, spec);
|
||||
}
|
||||
|
@ -17,6 +17,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
#
|
||||
-cflags-y += -G 0 -mno-abicalls -fno-pic -pipe
|
||||
+cflags-y += -G 0 -mno-abicalls -fno-pic -pipe -mno-branch-likely
|
||||
cflags-y += -msoft-float
|
||||
cflags-y += -msoft-float -Wa,-msoft-float
|
||||
LDFLAGS_vmlinux += -G 0 -static -n -nostdlib
|
||||
KBUILD_AFLAGS_MODULE += -mlong-calls
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+++ b/arch/mips/Makefile
|
||||
@@ -97,8 +97,18 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin
|
||||
cflags-y += -G 0 -mno-abicalls -fno-pic -pipe -mno-branch-likely
|
||||
cflags-y += -msoft-float
|
||||
cflags-y += -msoft-float -Wa,-msoft-float
|
||||
LDFLAGS_vmlinux += -G 0 -static -n -nostdlib
|
||||
+ifdef CONFIG_64BIT
|
||||
KBUILD_AFLAGS_MODULE += -mlong-calls
|
||||
|
@ -74,7 +74,7 @@ Signed-off-by: Evgeniy Didin <Evgeniy.Didin@synopsys.com>
|
||||
+ *
|
||||
+ * Note: "OWRTDTB:" won't be overwritten with .dtb, .dtb will follow it.
|
||||
+ */
|
||||
+ .owrt : {
|
||||
+ .owrt : {
|
||||
+ *(.owrt)
|
||||
+ . = ALIGN(PAGE_SIZE);
|
||||
+ }
|
||||
|
@ -43,6 +43,6 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
+ of_device_is_compatible(node, "brcm,env"))
|
||||
+ return 0;
|
||||
+
|
||||
config.id = -1;
|
||||
config.id = NVMEM_DEVID_NONE;
|
||||
config.dev = &mtd->dev;
|
||||
config.name = dev_name(&mtd->dev);
|
||||
|
@ -25,7 +25,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
+#include <linux/namei.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/mtd/ubi.h>
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/blkdev.h>
|
||||
@@ -67,10 +68,10 @@ struct ubiblock_pdu {
|
||||
};
|
||||
|
||||
|
@ -21,10 +21,10 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
+
|
||||
#include "check.h"
|
||||
|
||||
static int (*check_part[])(struct parsed_partitions *) = {
|
||||
static int (*const check_part[])(struct parsed_partitions *) = {
|
||||
@@ -298,6 +300,43 @@ static ssize_t whole_disk_show(struct de
|
||||
}
|
||||
static DEVICE_ATTR(whole_disk, 0444, whole_disk_show, NULL);
|
||||
static const DEVICE_ATTR(whole_disk, 0444, whole_disk_show, NULL);
|
||||
|
||||
+static struct fwnode_handle *find_partition_fwnode(struct block_device *bdev)
|
||||
+{
|
||||
|
@ -33,7 +33,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
+
|
||||
source "block/partitions/Kconfig"
|
||||
|
||||
config BLOCK_COMPAT
|
||||
config BLK_MQ_PCI
|
||||
--- a/block/Makefile
|
||||
+++ b/block/Makefile
|
||||
@@ -35,6 +35,7 @@ obj-$(CONFIG_BLK_DEV_ZONED) += blk-zoned
|
||||
@ -97,7 +97,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
+ if (!bnv->bdev->bd_disk->fops->open)
|
||||
+ return -EIO;
|
||||
+
|
||||
+ ret = bnv->bdev->bd_disk->fops->open(bnv->bdev, FMODE_READ);
|
||||
+ ret = bnv->bdev->bd_disk->fops->open(bnv->bdev->bd_disk, BLK_OPEN_READ);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
@ -119,12 +119,12 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
+ }
|
||||
+
|
||||
+err_release_bdev:
|
||||
+ bnv->bdev->bd_disk->fops->release(bnv->bdev->bd_disk, FMODE_READ);
|
||||
+ bnv->bdev->bd_disk->fops->release(bnv->bdev->bd_disk);
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static int blk_nvmem_register(struct device *dev, struct class_interface *iface)
|
||||
+static int blk_nvmem_register(struct device *dev)
|
||||
+{
|
||||
+ struct device_node *np = dev_of_node(dev);
|
||||
+ struct block_device *bdev = dev_to_bdev(dev);
|
||||
@ -192,7 +192,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static void blk_nvmem_unregister(struct device *dev, struct class_interface *iface)
|
||||
+static void blk_nvmem_unregister(struct device *dev)
|
||||
+{
|
||||
+ struct block_device *bdev = dev_to_bdev(dev);
|
||||
+ struct blk_nvmem *bnv_c, *bnv = NULL;
|
||||
|
@ -13,8 +13,8 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
--- a/drivers/mmc/core/bus.c
|
||||
+++ b/drivers/mmc/core/bus.c
|
||||
@@ -363,6 +363,8 @@ int mmc_add_card(struct mmc_card *card)
|
||||
|
||||
mmc_add_card_debugfs(card);
|
||||
#endif
|
||||
card->dev.of_node = mmc_of_find_child_device(card->host, 0);
|
||||
+ if (card->dev.of_node && !card->dev.fwnode)
|
||||
+ card->dev.fwnode = &card->dev.of_node->fwnode;
|
||||
|
@ -36,4 +36,4 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
+
|
||||
string_get_size((u64)size, 512, STRING_UNITS_2,
|
||||
cap_str, sizeof(cap_str));
|
||||
pr_info("%s: %s %s %s %s\n",
|
||||
pr_info("%s: %s %s %s%s\n",
|
||||
|
@ -8,11 +8,11 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/drivers/mtd/spi-nor/macronix.c
|
||||
+++ b/drivers/mtd/spi-nor/macronix.c
|
||||
@@ -106,6 +106,7 @@ static void macronix_nor_default_init(st
|
||||
@@ -115,6 +115,7 @@ static void macronix_nor_default_init(st
|
||||
{
|
||||
nor->params->quad_enable = spi_nor_sr1_bit6_quad_enable;
|
||||
nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode;
|
||||
if (!nor->params->set_4byte_addr_mode)
|
||||
nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode_en4b_ex4b;
|
||||
+ nor->flags |= SNOR_F_HAS_LOCK;
|
||||
}
|
||||
|
||||
static const struct spi_nor_fixups macronix_nor_fixups = {
|
||||
return 0;
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+ &spi_nor_xtx,
|
||||
};
|
||||
|
||||
static const struct flash_info *spi_nor_match_id(struct spi_nor *nor,
|
||||
static const struct flash_info spi_nor_generic_flash = {
|
||||
--- a/drivers/mtd/spi-nor/core.h
|
||||
+++ b/drivers/mtd/spi-nor/core.h
|
||||
@@ -633,6 +633,7 @@ extern const struct spi_nor_manufacturer
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
|
||||
|
||||
static const struct flash_info gigadevice_nor_parts[] = {
|
||||
+ { "gd25q05", INFO(0xc84010, 0, 64 * 1024, 1)
|
||||
+ FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
|
||||
+ FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
|
||||
+ NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
|
||||
+ SPI_NOR_QUAD_READ) },
|
||||
{ "gd25q16", INFO(0xc84015, 0, 64 * 1024, 32)
|
||||
|
@ -40,15 +40,17 @@ Submitted-by: Daniel Danzberger <daniel@dd-wrt.com>
|
||||
|
||||
--- a/drivers/mtd/nand/spi/Makefile
|
||||
+++ b/drivers/mtd/nand/spi/Makefile
|
||||
@@ -1,3 +1,3 @@
|
||||
@@ -1,4 +1,4 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
-spinand-objs := core.o ato.o esmt.o gigadevice.o macronix.o micron.o paragon.o toshiba.o winbond.o xtx.o
|
||||
+spinand-objs := core.o ato.o esmt.o etron.o gigadevice.o macronix.o micron.o paragon.o toshiba.o winbond.o xtx.o
|
||||
-spinand-objs := core.o alliancememory.o ato.o esmt.o gigadevice.o macronix.o
|
||||
-spinand-objs += micron.o paragon.o toshiba.o winbond.o xtx.o
|
||||
+spinand-objs := core.o alliancememory.o ato.o esmt.o etron.o gigadevice.o
|
||||
+spinand-objs += macronix.o micron.o paragon.o toshiba.o winbond.o xtx.o
|
||||
obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
|
||||
--- a/drivers/mtd/nand/spi/core.c
|
||||
+++ b/drivers/mtd/nand/spi/core.c
|
||||
@@ -939,6 +939,7 @@ static const struct nand_ops spinand_ops
|
||||
static const struct spinand_manufacturer *spinand_manufacturers[] = {
|
||||
@@ -940,6 +940,7 @@ static const struct spinand_manufacturer
|
||||
&alliancememory_spinand_manufacturer,
|
||||
&ato_spinand_manufacturer,
|
||||
&esmt_c8_spinand_manufacturer,
|
||||
+ &etron_spinand_manufacturer,
|
||||
@ -158,8 +160,8 @@ Submitted-by: Daniel Danzberger <daniel@dd-wrt.com>
|
||||
+};
|
||||
--- a/include/linux/mtd/spinand.h
|
||||
+++ b/include/linux/mtd/spinand.h
|
||||
@@ -262,6 +262,7 @@ struct spinand_manufacturer {
|
||||
/* SPI NAND manufacturers */
|
||||
@@ -263,6 +263,7 @@ struct spinand_manufacturer {
|
||||
extern const struct spinand_manufacturer alliancememory_spinand_manufacturer;
|
||||
extern const struct spinand_manufacturer ato_spinand_manufacturer;
|
||||
extern const struct spinand_manufacturer esmt_c8_spinand_manufacturer;
|
||||
+extern const struct spinand_manufacturer etron_spinand_manufacturer;
|
||||
|
@ -40,14 +40,15 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
#ifdef CONFIG_ROOT_NFS
|
||||
|
||||
#define NFSROOT_TIMEOUT_MIN 5
|
||||
@@ -579,6 +602,10 @@ void __init mount_root(void)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
@@ -408,6 +408,11 @@ void __init mount_root(void)
|
||||
|
||||
void __init mount_root(char *root_device_name)
|
||||
{
|
||||
+#ifdef CONFIG_MTD_ROOTFS_ROOT_DEV
|
||||
+ if (!mount_ubi_rootfs())
|
||||
+ return;
|
||||
+#endif
|
||||
if (ROOT_DEV == 0 && root_device_name && root_fs_names) {
|
||||
if (mount_nodev_root() == 0)
|
||||
return;
|
||||
+
|
||||
switch (ROOT_DEV) {
|
||||
case Root_NFS:
|
||||
mount_nfs_root();
|
||||
|
@ -31,4 +31,4 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
+
|
||||
return 0;
|
||||
|
||||
out_destroy_wq:
|
||||
out_remove_minor:
|
||||
|
@ -20,11 +20,11 @@ Signed-off-by: Nick Hainke <vincent@systemli.org>
|
||||
|
||||
--- a/drivers/mtd/spi-nor/macronix.c
|
||||
+++ b/drivers/mtd/spi-nor/macronix.c
|
||||
@@ -107,6 +107,7 @@ static void macronix_nor_default_init(st
|
||||
@@ -115,6 +115,7 @@ static void macronix_nor_default_init(st
|
||||
{
|
||||
nor->params->quad_enable = spi_nor_sr1_bit6_quad_enable;
|
||||
nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode;
|
||||
if (!nor->params->set_4byte_addr_mode)
|
||||
nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode_en4b_ex4b;
|
||||
+ nor->flags &= ~SNOR_F_HAS_16BIT_SR;
|
||||
nor->flags |= SNOR_F_HAS_LOCK;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -17,9 +17,9 @@ Subject: [PATCH] fs: add cdrom dependency
|
||||
tristate "Apple Macintosh file system support"
|
||||
depends on BLOCK
|
||||
+ select CDROM
|
||||
select BUFFER_HEAD
|
||||
select NLS
|
||||
help
|
||||
If you say Y here, you will be able to mount Macintosh-formatted
|
||||
select LEGACY_DIRECT_IO
|
||||
--- a/fs/hfsplus/Kconfig
|
||||
+++ b/fs/hfsplus/Kconfig
|
||||
@@ -2,6 +2,7 @@
|
||||
@ -27,9 +27,9 @@ Subject: [PATCH] fs: add cdrom dependency
|
||||
tristate "Apple Extended HFS file system support"
|
||||
depends on BLOCK
|
||||
+ select CDROM
|
||||
select BUFFER_HEAD
|
||||
select NLS
|
||||
select NLS_UTF8
|
||||
help
|
||||
--- a/fs/isofs/Kconfig
|
||||
+++ b/fs/isofs/Kconfig
|
||||
@@ -1,6 +1,7 @@
|
||||
@ -37,9 +37,9 @@ Subject: [PATCH] fs: add cdrom dependency
|
||||
config ISO9660_FS
|
||||
tristate "ISO 9660 CDROM file system support"
|
||||
+ select CDROM
|
||||
select BUFFER_HEAD
|
||||
help
|
||||
This is the standard file system used on CD-ROMs. It was previously
|
||||
known as "High Sierra File System" and is called "hsfs" on other
|
||||
--- a/fs/udf/Kconfig
|
||||
+++ b/fs/udf/Kconfig
|
||||
@@ -1,6 +1,7 @@
|
||||
@ -47,6 +47,6 @@ Subject: [PATCH] fs: add cdrom dependency
|
||||
config UDF_FS
|
||||
tristate "UDF file system support"
|
||||
+ select CDROM
|
||||
select BUFFER_HEAD
|
||||
select CRC_ITU_T
|
||||
select NLS
|
||||
help
|
||||
|
@ -13,13 +13,13 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
|
||||
--- a/init/do_mounts.c
|
||||
+++ b/init/do_mounts.c
|
||||
@@ -645,7 +645,8 @@ void __init prepare_namespace(void)
|
||||
@@ -463,7 +463,8 @@ static dev_t __init parse_root_device(char
|
||||
int error;
|
||||
dev_t dev;
|
||||
|
||||
if (saved_root_name[0]) {
|
||||
root_device_name = saved_root_name;
|
||||
- if (!strncmp(root_device_name, "mtd", 3) ||
|
||||
+ if (!strncmp(root_device_name, "fit", 3) ||
|
||||
+ !strncmp(root_device_name, "mtd", 3) ||
|
||||
!strncmp(root_device_name, "ubi", 3)) {
|
||||
mount_block_root(root_device_name, root_mountflags);
|
||||
goto out;
|
||||
- if (!strncmp(root_device_name, "mtd", 3) ||
|
||||
+ if (!strncmp(root_device_name, "fit", 3) ||
|
||||
+ !strncmp(root_device_name, "mtd", 3) ||
|
||||
!strncmp(root_device_name, "ubi", 3))
|
||||
return Root_Generic;
|
||||
if (strcmp(root_device_name, "/dev/nfs") == 0)
|
||||
|
@ -66,26 +66,33 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
|
||||
+CFLAGS_compr_lzma.o += -Iinclude/linux -Ilib/lzma
|
||||
--- a/fs/jffs2/compr.c
|
||||
+++ b/fs/jffs2/compr.c
|
||||
@@ -378,6 +378,9 @@ int __init jffs2_compressors_init(void)
|
||||
#ifdef CONFIG_JFFS2_LZO
|
||||
jffs2_lzo_init();
|
||||
#endif
|
||||
+#ifdef CONFIG_JFFS2_LZMA
|
||||
+ jffs2_lzma_init();
|
||||
+#endif
|
||||
@@ -381,6 +381,9 @@ int __init jffs2_compressors_init(void)
|
||||
ret = jffs2_lzo_init();
|
||||
if (ret)
|
||||
goto exit_dynrubin;
|
||||
+ ret = jffs2_lzma_init();
|
||||
+ if (ret)
|
||||
+ goto exit_lzo;
|
||||
|
||||
|
||||
/* Setting default compression mode */
|
||||
#ifdef CONFIG_JFFS2_CMODE_NONE
|
||||
jffs2_compression_mode = JFFS2_COMPR_MODE_NONE;
|
||||
@@ -401,6 +404,9 @@ int __init jffs2_compressors_init(void)
|
||||
@@ -402,6 +405,8 @@ int __init jffs2_compressors_init(void)
|
||||
#endif
|
||||
return 0;
|
||||
|
||||
+exit_lzo:
|
||||
+ jffs2_lzo_exit();
|
||||
exit_dynrubin:
|
||||
jffs2_dynrubin_exit();
|
||||
exit_runinmips:
|
||||
@@ -417,6 +422,7 @@ int __init jffs2_compressors_init(void)
|
||||
int jffs2_compressors_exit(void)
|
||||
{
|
||||
/* Unregistering compressors */
|
||||
+#ifdef CONFIG_JFFS2_LZMA
|
||||
+ jffs2_lzma_exit();
|
||||
+#endif
|
||||
#ifdef CONFIG_JFFS2_LZO
|
||||
jffs2_lzo_exit();
|
||||
#endif
|
||||
jffs2_dynrubin_exit();
|
||||
jffs2_rubinmips_exit();
|
||||
--- a/fs/jffs2/compr.h
|
||||
+++ b/fs/jffs2/compr.h
|
||||
@@ -29,9 +29,9 @@
|
||||
@ -101,13 +108,16 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
|
||||
|
||||
#define JFFS2_RUBINMIPS_DISABLED /* RUBINs will be used only */
|
||||
#define JFFS2_DYNRUBIN_DISABLED /* for decompression */
|
||||
@@ -101,5 +101,9 @@ void jffs2_zlib_exit(void);
|
||||
int jffs2_lzo_init(void);
|
||||
void jffs2_lzo_exit(void);
|
||||
@@ -115,5 +115,12 @@ extern void jffs2_lzo_exit(void);
|
||||
static inline int jffs2_lzo_init(void) { return 0; }
|
||||
static inline void jffs2_lzo_exit(void) {}
|
||||
#endif
|
||||
+#ifdef CONFIG_JFFS2_LZMA
|
||||
+int jffs2_lzma_init(void);
|
||||
+void jffs2_lzma_exit(void);
|
||||
+extern int jffs2_lzma_init(void);
|
||||
+extern void jffs2_lzma_exit(void);
|
||||
+#else
|
||||
+static inline int jffs2_lzma_init(void) { return 0; }
|
||||
+static inline void jffs2_lzma_exit(void) {}
|
||||
+#endif
|
||||
|
||||
#endif /* __JFFS2_COMPR_H__ */
|
||||
|
@ -21,10 +21,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
/* Packet socket options */
|
||||
|
||||
@@ -59,6 +61,7 @@ struct sockaddr_ll {
|
||||
#define PACKET_ROLLOVER_STATS 21
|
||||
#define PACKET_FANOUT_DATA 22
|
||||
#define PACKET_IGNORE_OUTGOING 23
|
||||
+#define PACKET_RECV_TYPE 24
|
||||
#define PACKET_VNET_HDR_SZ 24
|
||||
+#define PACKET_RECV_TYPE 25
|
||||
|
||||
#define PACKET_FANOUT_HASH 0
|
||||
#define PACKET_FANOUT_LB 1
|
||||
@ -96,7 +96,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (sock->type == SOCK_PACKET)
|
||||
po->prot_hook.func = packet_rcv_spkt;
|
||||
@@ -4013,6 +4016,16 @@ packet_setsockopt(struct socket *sock, i
|
||||
WRITE_ONCE(po->xmit, val ? packet_direct_xmit : dev_queue_xmit);
|
||||
packet_sock_flag_set(po, PACKET_SOCK_QDISC_BYPASS, val);
|
||||
return 0;
|
||||
}
|
||||
+ case PACKET_RECV_TYPE:
|
||||
@ -113,8 +113,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
return -ENOPROTOOPT;
|
||||
}
|
||||
@@ -4069,6 +4082,13 @@ static int packet_getsockopt(struct sock
|
||||
case PACKET_VNET_HDR:
|
||||
val = po->has_vnet_hdr;
|
||||
case PACKET_VNET_HDR_SZ:
|
||||
val = READ_ONCE(po->vnet_hdr_sz);
|
||||
break;
|
||||
+ case PACKET_RECV_TYPE:
|
||||
+ if (len > sizeof(unsigned int))
|
||||
@ -129,10 +129,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
--- a/net/packet/internal.h
|
||||
+++ b/net/packet/internal.h
|
||||
@@ -136,6 +136,7 @@ struct packet_sock {
|
||||
int (*xmit)(struct sk_buff *skb);
|
||||
struct net_device __rcu *cached_dev;
|
||||
struct packet_type prot_hook ____cacheline_aligned_in_smp;
|
||||
atomic_t tp_drops ____cacheline_aligned_in_smp;
|
||||
+ unsigned int pkt_type;
|
||||
};
|
||||
|
||||
static inline struct packet_sock *pkt_sk(struct sock *sk)
|
||||
#define pkt_sk(ptr) container_of_const(ptr, struct packet_sock, sk)
|
||||
|
@ -125,7 +125,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
|
||||
+static const struct rt6_info ip6_policy_failed_entry_template = {
|
||||
+ .dst = {
|
||||
+ .__refcnt = ATOMIC_INIT(1),
|
||||
+ .__rcuref = RCUREF_INIT(1),
|
||||
+ .__use = 1,
|
||||
+ .obsolete = DST_OBSOLETE_FORCE_CHK,
|
||||
+ .error = -EACCES,
|
||||
@ -137,7 +137,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
+
|
||||
static const struct rt6_info ip6_blk_hole_entry_template = {
|
||||
.dst = {
|
||||
.__refcnt = ATOMIC_INIT(1),
|
||||
.__rcuref = RCUREF_INIT(1),
|
||||
@@ -1039,6 +1053,7 @@ static const int fib6_prop[RTN_MAX + 1]
|
||||
[RTN_BLACKHOLE] = -EINVAL,
|
||||
[RTN_UNREACHABLE] = -EHOSTUNREACH,
|
||||
@ -213,7 +213,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
GFP_KERNEL);
|
||||
@@ -6499,11 +6535,21 @@ static int __net_init ip6_route_net_init
|
||||
ip6_template_metrics, true);
|
||||
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
|
||||
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->dst.rt_uncached);
|
||||
|
||||
+ net->ipv6.ip6_policy_failed_entry =
|
||||
+ kmemdup(&ip6_policy_failed_entry_template,
|
||||
@ -223,7 +223,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
+ net->ipv6.ip6_policy_failed_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
||||
+ dst_init_metrics(&net->ipv6.ip6_policy_failed_entry->dst,
|
||||
+ ip6_template_metrics, true);
|
||||
+ INIT_LIST_HEAD(&net->ipv6.ip6_policy_failed_entry->rt6i_uncached);
|
||||
+ INIT_LIST_HEAD(&net->ipv6.ip6_policy_failed_entry->dst.rt_uncached);
|
||||
+
|
||||
net->ipv6.ip6_blk_hole_entry = kmemdup(&ip6_blk_hole_entry_template,
|
||||
sizeof(*net->ipv6.ip6_blk_hole_entry),
|
||||
|
@ -28,13 +28,13 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
#endif
|
||||
+ __u8 gro_skip:1;
|
||||
|
||||
#if IS_ENABLED(CONFIG_IP_VS)
|
||||
__u8 ipvs_property:1;
|
||||
__u8 inner_protocol_type:1;
|
||||
--- a/net/core/gro.c
|
||||
+++ b/net/core/gro.c
|
||||
@@ -491,6 +491,9 @@ static enum gro_result dev_gro_receive(s
|
||||
enum gro_result ret;
|
||||
int same_flow;
|
||||
int grow;
|
||||
|
||||
+ if (skb->gro_skip)
|
||||
+ goto normal;
|
||||
@ -109,9 +109,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER,
|
||||
&changeupper_info.info);
|
||||
|
||||
@@ -8824,6 +8868,7 @@ int dev_set_mac_address(struct net_devic
|
||||
if (err)
|
||||
return err;
|
||||
@@ -8821,6 +8865,7 @@ int dev_set_mac_address(struct net_devic
|
||||
return err;
|
||||
}
|
||||
dev->addr_assign_type = NET_ADDR_SET;
|
||||
+ netdev_update_addr_mask(dev);
|
||||
call_netdevice_notifiers(NETDEV_CHANGEADDR, dev);
|
||||
|
@ -18,8 +18,8 @@ property. This way, the MAC address can be accessed using procfs.
|
||||
--- a/net/core/of_net.c
|
||||
+++ b/net/core/of_net.c
|
||||
@@ -95,6 +95,27 @@ static int of_get_mac_addr_nvmem(struct
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(of_get_mac_address_nvmem);
|
||||
|
||||
+static int of_add_mac_address(struct device_node *np, u8* addr)
|
||||
+{
|
||||
@ -62,8 +62,8 @@ property. This way, the MAC address can be accessed using procfs.
|
||||
- return 0;
|
||||
+ goto found;
|
||||
|
||||
- return of_get_mac_addr_nvmem(np, addr);
|
||||
+ ret = of_get_mac_addr_nvmem(np, addr);
|
||||
- return of_get_mac_address_nvmem(np, addr);
|
||||
+ ret = of_get_mac_address_nvmem(np, addr);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
|
@ -11,9 +11,9 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
|
||||
--- a/drivers/net/phy/phy_device.c
|
||||
+++ b/drivers/net/phy/phy_device.c
|
||||
@@ -1850,6 +1850,9 @@ void phy_detach(struct phy_device *phyde
|
||||
struct module *ndev_owner = NULL;
|
||||
struct mii_bus *bus;
|
||||
@@ -1753,6 +1753,9 @@ void phy_detach(struct phy_device *phyde
|
||||
if (phydev->devlink)
|
||||
device_link_del(phydev->devlink);
|
||||
|
||||
+ if (phydev->drv && phydev->drv->detach)
|
||||
+ phydev->drv->detach(phydev);
|
||||
|
@ -15,18 +15,18 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
--- a/include/linux/if_bridge.h
|
||||
+++ b/include/linux/if_bridge.h
|
||||
@@ -59,6 +59,7 @@ struct br_ip_list {
|
||||
#define BR_MRP_LOST_IN_CONT BIT(19)
|
||||
#define BR_TX_FWD_OFFLOAD BIT(20)
|
||||
#define BR_PORT_LOCKED BIT(21)
|
||||
+#define BR_BPDU_FILTER BIT(22)
|
||||
#define BR_PORT_MAB BIT(22)
|
||||
#define BR_NEIGH_VLAN_SUPPRESS BIT(23)
|
||||
+#define BR_BPDU_FILTER BIT(24)
|
||||
|
||||
#define BR_DEFAULT_AGEING_TIME (300 * HZ)
|
||||
|
||||
--- a/net/bridge/br_forward.c
|
||||
+++ b/net/bridge/br_forward.c
|
||||
@@ -199,6 +199,7 @@ out:
|
||||
void br_flood(struct net_bridge *br, struct sk_buff *skb,
|
||||
enum br_pkt_type pkt_type, bool local_rcv, bool local_orig)
|
||||
enum br_pkt_type pkt_type, bool local_rcv, bool local_orig,
|
||||
u16 vid)
|
||||
{
|
||||
+ const unsigned char *dest = eth_hdr(skb)->h_dest;
|
||||
struct net_bridge_port *prev = NULL;
|
||||
@ -107,9 +107,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
--- a/include/uapi/linux/if_link.h
|
||||
+++ b/include/uapi/linux/if_link.h
|
||||
@@ -561,6 +561,7 @@ enum {
|
||||
IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT,
|
||||
IFLA_BRPORT_MCAST_EHT_HOSTS_CNT,
|
||||
IFLA_BRPORT_LOCKED,
|
||||
IFLA_BRPORT_MCAST_MAX_GROUPS,
|
||||
IFLA_BRPORT_NEIGH_VLAN_SUPPRESS,
|
||||
IFLA_BRPORT_BACKUP_NHID,
|
||||
+ IFLA_BRPORT_BPDU_FILTER,
|
||||
__IFLA_BRPORT_MAX
|
||||
};
|
||||
@ -117,47 +117,47 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
--- a/net/bridge/br_netlink.c
|
||||
+++ b/net/bridge/br_netlink.c
|
||||
@@ -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_ISOLATED */
|
||||
+ nla_total_size(1) /* IFLA_BRPORT_LOCKED */
|
||||
+ nla_total_size(1) /* IFLA_BRPORT_MAB */
|
||||
+ nla_total_size(1) /* IFLA_BRPORT_NEIGH_VLAN_SUPPRESS */
|
||||
+ + nla_total_size(1) /* IFLA_BRPORT_BPDU_FILTER */
|
||||
+ 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(u16)) /* IFLA_BRPORT_DESIGNATED_PORT */
|
||||
@@ -274,7 +275,8 @@ static int br_port_fill_attrs(struct sk_
|
||||
nla_put_u8(skb, IFLA_BRPORT_MRP_IN_OPEN,
|
||||
!!(p->flags & BR_MRP_LOST_IN_CONT)) ||
|
||||
nla_put_u8(skb, IFLA_BRPORT_ISOLATED, !!(p->flags & BR_ISOLATED)) ||
|
||||
- nla_put_u8(skb, IFLA_BRPORT_LOCKED, !!(p->flags & BR_PORT_LOCKED)))
|
||||
+ nla_put_u8(skb, IFLA_BRPORT_LOCKED, !!(p->flags & BR_PORT_LOCKED)) ||
|
||||
nla_put_u8(skb, IFLA_BRPORT_LOCKED, !!(p->flags & BR_PORT_LOCKED)) ||
|
||||
nla_put_u8(skb, IFLA_BRPORT_MAB, !!(p->flags & BR_PORT_MAB)) ||
|
||||
nla_put_u8(skb, IFLA_BRPORT_NEIGH_VLAN_SUPPRESS,
|
||||
- !!(p->flags & BR_NEIGH_VLAN_SUPPRESS)))
|
||||
+ !!(p->flags & BR_NEIGH_VLAN_SUPPRESS)) ||
|
||||
+ nla_put_u8(skb, IFLA_BRPORT_BPDU_FILTER, !!(p->flags & BR_BPDU_FILTER)))
|
||||
return -EMSGSIZE;
|
||||
|
||||
timerval = br_timer_value(&p->message_age_timer);
|
||||
@@ -878,6 +880,7 @@ static const struct nla_policy br_port_p
|
||||
[IFLA_BRPORT_LOCKED] = { .type = NLA_U8 },
|
||||
[IFLA_BRPORT_BACKUP_PORT] = { .type = NLA_U32 },
|
||||
[IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT] = { .type = NLA_U32 },
|
||||
[IFLA_BRPORT_MCAST_MAX_GROUPS] = { .type = NLA_U32 },
|
||||
[IFLA_BRPORT_NEIGH_VLAN_SUPPRESS] = NLA_POLICY_MAX(NLA_U8, 1),
|
||||
[IFLA_BRPORT_BACKUP_NHID] = { .type = NLA_U32 },
|
||||
+ [IFLA_BRPORT_BPDU_FILTER] = { .type = NLA_U8 },
|
||||
};
|
||||
|
||||
/* Change the state of the port and notify spanning tree */
|
||||
@@ -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_ISOLATED, BR_ISOLATED);
|
||||
br_set_port_flag(p, tb, IFLA_BRPORT_LOCKED, BR_PORT_LOCKED);
|
||||
br_set_port_flag(p, tb, IFLA_BRPORT_MAB, BR_PORT_MAB);
|
||||
br_set_port_flag(p, tb, IFLA_BRPORT_NEIGH_VLAN_SUPPRESS,
|
||||
BR_NEIGH_VLAN_SUPPRESS);
|
||||
+ br_set_port_flag(p, tb, IFLA_BRPORT_BPDU_FILTER, BR_BPDU_FILTER);
|
||||
|
||||
changed_mask = old_flags ^ p->flags;
|
||||
|
||||
if ((p->flags & BR_PORT_MAB) &&
|
||||
(!(p->flags & BR_PORT_LOCKED) || !(p->flags & BR_LEARNING))) {
|
||||
--- a/net/core/rtnetlink.c
|
||||
+++ b/net/core/rtnetlink.c
|
||||
@@ -57,7 +57,7 @@
|
||||
#include "dev.h"
|
||||
|
||||
#define RTNL_MAX_TYPE 50
|
||||
-#define RTNL_SLAVE_MAX_TYPE 40
|
||||
+#define RTNL_SLAVE_MAX_TYPE 41
|
||||
-#define RTNL_SLAVE_MAX_TYPE 44
|
||||
+#define RTNL_SLAVE_MAX_TYPE 45
|
||||
|
||||
struct rtnl_link {
|
||||
rtnl_doit_func doit;
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
+ int val;
|
||||
+ u32 id;
|
||||
+
|
||||
+ if (phydev->mdio.bus->probe_capabilities >= MDIOBUS_C45) {
|
||||
+ if (phydev->drv->read_mmd) {
|
||||
+ val = phy_read_mmd(phydev, MDIO_MMD_PMAPMD, MDIO_PKGID1);
|
||||
+ if (val < 0)
|
||||
+ return 0;
|
||||
|
@ -16,6 +16,14 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
@@ -26,6 +26,7 @@
|
||||
#include <linux/bitfield.h>
|
||||
#include <net/dsa.h>
|
||||
#include <net/dst_metadata.h>
|
||||
+#include <net/gso.h>
|
||||
#include <net/page_pool/helpers.h>
|
||||
|
||||
#include "mtk_eth_soc.h"
|
||||
@@ -1562,12 +1562,28 @@ static void mtk_wake_queue(struct mtk_et
|
||||
}
|
||||
}
|
||||
|
@ -27,13 +27,13 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
F: include/linux/pcs/pcs-mtk-lynxi.h
|
||||
+F: include/linux/pcs/pcs-mtk-usxgmii.h
|
||||
|
||||
MEDIATEK I2C CONTROLLER DRIVER
|
||||
M: Qii Wang <qii.wang@mediatek.com>
|
||||
MEDIATEK ETHERNET PHY DRIVERS
|
||||
M: Daniel Golle <daniel@makrotopia.org>
|
||||
--- a/drivers/net/pcs/Kconfig
|
||||
+++ b/drivers/net/pcs/Kconfig
|
||||
@@ -18,6 +18,17 @@ config PCS_LYNX
|
||||
This module provides helpers to phylink for managing the Lynx PCS
|
||||
which is part of the Layerscape and QorIQ Ethernet SERDES.
|
||||
This module provides helpers to phylink for managing the LynxI PCS
|
||||
which is part of MediaTek's SoC and Ethernet switch ICs.
|
||||
|
||||
+config PCS_MTK_USXGMII
|
||||
+ tristate "MediaTek USXGMII PCS"
|
||||
@ -51,10 +51,10 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
depends on OF && (ARCH_RZN1 || COMPILE_TEST)
|
||||
--- a/drivers/net/pcs/Makefile
|
||||
+++ b/drivers/net/pcs/Makefile
|
||||
@@ -8,3 +8,4 @@ obj-$(CONFIG_PCS_LYNX) += pcs-lynx.o
|
||||
obj-$(CONFIG_PCS_RZN1_MIIC) += pcs-rzn1-miic.o
|
||||
obj-$(CONFIG_PCS_ALTERA_TSE) += pcs-altera-tse.o
|
||||
@@ -8,3 +8,4 @@ obj-$(CONFIG_PCS_XPCS) += pcs_xpcs.o
|
||||
obj-$(CONFIG_PCS_LYNX) += pcs-lynx.o
|
||||
obj-$(CONFIG_PCS_MTK_LYNXI) += pcs-mtk-lynxi.o
|
||||
obj-$(CONFIG_PCS_RZN1_MIIC) += pcs-rzn1-miic.o
|
||||
+obj-$(CONFIG_PCS_MTK_USXGMII) += pcs-mtk-usxgmii.o
|
||||
--- /dev/null
|
||||
+++ b/drivers/net/pcs/pcs-mtk-usxgmii.c
|
||||
|
@ -20,10 +20,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
/**
|
||||
* napi_disable - prevent NAPI from scheduling
|
||||
@@ -3152,6 +3153,7 @@ struct softnet_data {
|
||||
@@ -3129,6 +3130,7 @@ struct softnet_data {
|
||||
/* stats */
|
||||
unsigned int processed;
|
||||
unsigned int time_squeeze;
|
||||
unsigned int received_rps;
|
||||
+ unsigned int process_queue_empty;
|
||||
#ifdef CONFIG_RPS
|
||||
struct softnet_data *rps_ipi_list;
|
||||
|
@ -80,7 +80,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
|
||||
-typedef int (*config_clks_t)(struct device *dev, struct opp_table *opp_table,
|
||||
+typedef int (*config_clks_t)(struct device *dev,
|
||||
+ struct opp_table *opp_table, struct dev_pm_opp *old_opp,
|
||||
+ struct opp_table *opp_table, struct dev_pm_opp *old_opp,
|
||||
struct dev_pm_opp *opp, void *data, bool scaling_down);
|
||||
|
||||
/**
|
||||
|
@ -10,14 +10,14 @@ string.
|
||||
|
||||
--- a/drivers/nvmem/Kconfig
|
||||
+++ b/drivers/nvmem/Kconfig
|
||||
@@ -1,6 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
@@ -2,6 +2,7 @@
|
||||
menuconfig NVMEM
|
||||
bool "NVMEM Support"
|
||||
+ select GENERIC_NET_UTILS
|
||||
imply NVMEM_LAYOUTS
|
||||
+ select GENERIC_NET_UTILS
|
||||
help
|
||||
Support for NVMEM(Non Volatile Memory) devices like EEPROM, EFUSES...
|
||||
|
||||
--- a/drivers/nvmem/core.c
|
||||
+++ b/drivers/nvmem/core.c
|
||||
@@ -7,9 +7,12 @@
|
||||
|
@ -111,5 +111,5 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+}
|
||||
+#endif
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
extern const struct dev_pm_ops usb_hcd_pci_pm_ops;
|
||||
#endif /* CONFIG_USB_PCI */
|
||||
|
@ -46,7 +46,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
--- a/drivers/ata/libata-core.c
|
||||
+++ b/drivers/ata/libata-core.c
|
||||
@@ -663,6 +663,19 @@ u64 ata_tf_read_block(const struct ata_t
|
||||
return block;
|
||||
qc->flags |= ATA_QCFLAG_HAS_CDL | ATA_QCFLAG_RESULT_TF;
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_ATA_LEDS
|
||||
@ -85,10 +85,10 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
ata_sff_port_init(ap);
|
||||
|
||||
return ap;
|
||||
@@ -5473,6 +5492,12 @@ static void ata_host_release(struct kref
|
||||
|
||||
@@ -5469,6 +5488,12 @@ static void ata_host_release(struct kref
|
||||
kfree(ap->pmp_link);
|
||||
kfree(ap->slave_link);
|
||||
kfree(ap->ncq_sense_buf);
|
||||
+#ifdef CONFIG_ATA_LEDS
|
||||
+ if (ap->ledtrig) {
|
||||
+ led_trigger_unregister(ap->ledtrig);
|
||||
@ -145,5 +145,5 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
+#endif
|
||||
+
|
||||
/* owned by EH */
|
||||
u8 *ncq_sense_buf;
|
||||
u8 sector_buf[ATA_SECT_SIZE] ____cacheline_aligned;
|
||||
};
|
||||
|
@ -24,8 +24,8 @@ Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
|
||||
arch/arm/boot/dts/imx7d-pico.dtsi | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
--- a/arch/arm/boot/dts/imx7d-pico.dtsi
|
||||
+++ b/arch/arm/boot/dts/imx7d-pico.dtsi
|
||||
--- a/arch/arm/boot/dts/nxp/imx/imx7d-pico.dtsi
|
||||
+++ b/arch/arm/boot/dts/nxp/imx/imx7d-pico.dtsi
|
||||
@@ -108,6 +108,14 @@
|
||||
assigned-clock-rates = <0>, <32768>;
|
||||
};
|
||||
|
@ -13,9 +13,9 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
|
||||
|
||||
--- a/init/Kconfig
|
||||
+++ b/init/Kconfig
|
||||
@@ -1836,6 +1836,15 @@ config EMBEDDED
|
||||
an embedded system so certain expert options are available
|
||||
for configuration.
|
||||
@@ -1827,6 +1827,15 @@ config EMBEDDED
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
+config MANGLE_BOOTARGS
|
||||
+ bool "Rename offending bootargs"
|
||||
|
Loading…
x
Reference in New Issue
Block a user