kernel: bump 5.4 to 5.4.86
Removed upstreamed patches:
pending-5.4/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch
Manually merged:
pending-5.4/611-netfilter_match_bypass_default_table.patch
layerscape/302-dts-0112-arm64-dts-fsl-ls1028a-prepare-dts-for-overlay.patch
Build-tested: ipq806x/R7800, bcm27xx/bcm2711, ath79/{generic,tiny},
ipq40xx, octeon, ramips/mt7621, realtek, x86/64
Run-tested: ipq806x/R7800, realtek
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Tested-by: John Audia <graysky@archlinux.us>
Tested-by: Stijn Segers <foss@volatilesystems.org>
This commit is contained in:
@@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
|
||||
|
||||
--- a/mm/page_alloc.c
|
||||
+++ b/mm/page_alloc.c
|
||||
@@ -6883,7 +6883,7 @@ static void __ref alloc_node_mem_map(str
|
||||
@@ -6884,7 +6884,7 @@ static void __ref alloc_node_mem_map(str
|
||||
mem_map = NODE_DATA(0)->node_mem_map;
|
||||
#if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM)
|
||||
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
|
||||
|
||||
@@ -12,11 +12,9 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
|
||||
drivers/rtc/rtc-rs5c372.c | 48 ++++++++++++++++++++++++++++++++++-----
|
||||
1 file changed, 42 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/drivers/rtc/rtc-rs5c372.c b/drivers/rtc/rtc-rs5c372.c
|
||||
index 3bd6eaa0d..94b778c6e 100644
|
||||
--- a/drivers/rtc/rtc-rs5c372.c
|
||||
+++ b/drivers/rtc/rtc-rs5c372.c
|
||||
@@ -393,7 +393,9 @@ static int rs5c_read_alarm(struct device *dev, struct rtc_wkalrm *t)
|
||||
@@ -393,7 +393,9 @@ static int rs5c_read_alarm(struct device
|
||||
{
|
||||
struct i2c_client *client = to_i2c_client(dev);
|
||||
struct rs5c372 *rs5c = i2c_get_clientdata(client);
|
||||
@@ -27,7 +25,7 @@ index 3bd6eaa0d..94b778c6e 100644
|
||||
|
||||
status = rs5c_get_regs(rs5c);
|
||||
if (status < 0)
|
||||
@@ -403,6 +405,30 @@ static int rs5c_read_alarm(struct device *dev, struct rtc_wkalrm *t)
|
||||
@@ -403,6 +405,30 @@ static int rs5c_read_alarm(struct device
|
||||
t->time.tm_sec = 0;
|
||||
t->time.tm_min = bcd2bin(rs5c->regs[RS5C_REG_ALARM_A_MIN] & 0x7f);
|
||||
t->time.tm_hour = rs5c_reg2hr(rs5c, rs5c->regs[RS5C_REG_ALARM_A_HOURS]);
|
||||
@@ -58,7 +56,7 @@ index 3bd6eaa0d..94b778c6e 100644
|
||||
|
||||
/* ... and status */
|
||||
t->enabled = !!(rs5c->regs[RS5C_REG_CTRL1] & RS5C_CTRL1_AALE);
|
||||
@@ -417,12 +443,20 @@ static int rs5c_set_alarm(struct device *dev, struct rtc_wkalrm *t)
|
||||
@@ -417,12 +443,20 @@ static int rs5c_set_alarm(struct device
|
||||
struct rs5c372 *rs5c = i2c_get_clientdata(client);
|
||||
int status, addr, i;
|
||||
unsigned char buf[3];
|
||||
@@ -83,7 +81,7 @@ index 3bd6eaa0d..94b778c6e 100644
|
||||
|
||||
/* REVISIT: round up tm_sec */
|
||||
|
||||
@@ -443,7 +477,9 @@ static int rs5c_set_alarm(struct device *dev, struct rtc_wkalrm *t)
|
||||
@@ -443,7 +477,9 @@ static int rs5c_set_alarm(struct device
|
||||
/* set alarm */
|
||||
buf[0] = bin2bcd(t->time.tm_min);
|
||||
buf[1] = rs5c_hr2reg(rs5c, t->time.tm_hour);
|
||||
|
||||
@@ -15,11 +15,9 @@ Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
|
||||
drivers/rtc/rtc-rs5c372.c | 16 ++++++++++++++++
|
||||
1 file changed, 16 insertions(+)
|
||||
|
||||
diff --git a/drivers/rtc/rtc-rs5c372.c b/drivers/rtc/rtc-rs5c372.c
|
||||
index 94b778c6e..76775d66e 100644
|
||||
--- a/drivers/rtc/rtc-rs5c372.c
|
||||
+++ b/drivers/rtc/rtc-rs5c372.c
|
||||
@@ -654,6 +654,7 @@ static int rs5c372_probe(struct i2c_client *client,
|
||||
@@ -654,6 +654,7 @@ static int rs5c372_probe(struct i2c_clie
|
||||
int err = 0;
|
||||
int smbus_mode = 0;
|
||||
struct rs5c372 *rs5c372;
|
||||
@@ -27,7 +25,7 @@ index 94b778c6e..76775d66e 100644
|
||||
|
||||
dev_dbg(&client->dev, "%s\n", __func__);
|
||||
|
||||
@@ -689,6 +690,12 @@ static int rs5c372_probe(struct i2c_client *client,
|
||||
@@ -689,6 +690,12 @@ static int rs5c372_probe(struct i2c_clie
|
||||
else
|
||||
rs5c372->type = id->driver_data;
|
||||
|
||||
@@ -40,7 +38,7 @@ index 94b778c6e..76775d66e 100644
|
||||
/* we read registers 0x0f then 0x00-0x0f; skip the first one */
|
||||
rs5c372->regs = &rs5c372->buf[1];
|
||||
rs5c372->smbus = smbus_mode;
|
||||
@@ -722,6 +729,8 @@ static int rs5c372_probe(struct i2c_client *client,
|
||||
@@ -722,6 +729,8 @@ static int rs5c372_probe(struct i2c_clie
|
||||
goto exit;
|
||||
}
|
||||
|
||||
@@ -49,7 +47,7 @@ index 94b778c6e..76775d66e 100644
|
||||
/* if the oscillator lost power and no other software (like
|
||||
* the bootloader) set it up, do it here.
|
||||
*
|
||||
@@ -748,6 +757,10 @@ static int rs5c372_probe(struct i2c_client *client,
|
||||
@@ -748,6 +757,10 @@ static int rs5c372_probe(struct i2c_clie
|
||||
);
|
||||
|
||||
/* REVISIT use client->irq to register alarm irq ... */
|
||||
@@ -60,7 +58,7 @@ index 94b778c6e..76775d66e 100644
|
||||
rs5c372->rtc = devm_rtc_device_register(&client->dev,
|
||||
rs5c372_driver.driver.name,
|
||||
&rs5c372_rtc_ops, THIS_MODULE);
|
||||
@@ -761,6 +774,9 @@ static int rs5c372_probe(struct i2c_client *client,
|
||||
@@ -761,6 +774,9 @@ static int rs5c372_probe(struct i2c_clie
|
||||
if (err)
|
||||
goto exit;
|
||||
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
From: Sven Eckelmann <sven@narfation.org>
|
||||
Date: Sun, 22 Nov 2020 00:48:33 +0100
|
||||
Subject: [PATCH RFC] mtd: parser: cmdline: Fix parsing of part-names with colons
|
||||
|
||||
Some devices (especially QCA ones) are already using hardcoded partition
|
||||
names with colons in it. The OpenMesh A62 for example provides following
|
||||
mtd relevant information via cmdline:
|
||||
|
||||
root=31:11 mtdparts=spi0.0:256k(0:SBL1),128k(0:MIBIB),384k(0:QSEE),64k(0:CDT),64k(0:DDRPARAMS),64k(0:APPSBLENV),512k(0:APPSBL),64k(0:ART),64k(custom),64k(0:KEYS),0x002b0000(kernel),0x00c80000(rootfs),15552k(inactive) rootfsname=rootfs rootwait
|
||||
|
||||
The change to split only on the last colon between mtd-id and partitions
|
||||
will cause newpart to see following string for the first partition:
|
||||
|
||||
KEYS),0x002b0000(kernel),0x00c80000(rootfs),15552k(inactive)
|
||||
|
||||
Such a partition list cannot be parsed and thus the device fails to boot.
|
||||
|
||||
Avoid this behavior by making sure that the start of the first part-name
|
||||
("(") will also be the last byte the mtd-id split algorithm is using for
|
||||
its colon search.
|
||||
|
||||
Forwarded: https://patchwork.ozlabs.org/project/linux-mtd/patch/20201122001533.985641-1-sven@narfation.org/
|
||||
Fixes: eb13fa022741 ("mtd: parser: cmdline: Support MTD names containing one or more colons")
|
||||
Signed-off-by: Sven Eckelmann <sven@narfation.org>
|
||||
|
||||
--- a/drivers/mtd/parsers/cmdlinepart.c
|
||||
+++ b/drivers/mtd/parsers/cmdlinepart.c
|
||||
@@ -218,7 +218,7 @@ static int mtdpart_setup_real(char *s)
|
||||
struct cmdline_mtd_partition *this_mtd;
|
||||
struct mtd_partition *parts;
|
||||
int mtd_id_len, num_parts;
|
||||
- char *p, *mtd_id, *semicol;
|
||||
+ char *p, *mtd_id, *semicol, *open_parenth;
|
||||
|
||||
/*
|
||||
* Replace the first ';' by a NULL char so strrchr can work
|
||||
@@ -228,6 +228,13 @@ static int mtdpart_setup_real(char *s)
|
||||
if (semicol)
|
||||
*semicol = '\0';
|
||||
|
||||
+ /* make sure that part-names with ":" will not be handled as
|
||||
+ * part of the mtd-id with an ":"
|
||||
+ */
|
||||
+ open_parenth = strchr(s, '(');
|
||||
+ if (open_parenth)
|
||||
+ *open_parenth = '\0';
|
||||
+
|
||||
mtd_id = s;
|
||||
|
||||
/*
|
||||
@@ -237,6 +244,10 @@ static int mtdpart_setup_real(char *s)
|
||||
*/
|
||||
p = strrchr(s, ':');
|
||||
|
||||
+ /* Restore the '(' now. */
|
||||
+ if (open_parenth)
|
||||
+ *open_parenth = '(';
|
||||
+
|
||||
/* Restore the ';' now. */
|
||||
if (semicol)
|
||||
*semicol = ';';
|
||||
@@ -244,7 +244,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
|
||||
+}
|
||||
--- a/fs/jffs2/super.c
|
||||
+++ b/fs/jffs2/super.c
|
||||
@@ -360,14 +360,41 @@ static int __init init_jffs2_fs(void)
|
||||
@@ -377,14 +377,41 @@ static int __init init_jffs2_fs(void)
|
||||
BUILD_BUG_ON(sizeof(struct jffs2_raw_inode) != 68);
|
||||
BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32);
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
return -ENOMEM;
|
||||
|
||||
@@ -818,6 +846,7 @@ copy_entries_to_user(unsigned int total_
|
||||
const struct xt_table_info *private = table->private;
|
||||
const struct xt_table_info *private = xt_table_get_private_protected(table);
|
||||
int ret = 0;
|
||||
const void *loc_cpu_entry;
|
||||
+ u8 flags;
|
||||
|
||||
@@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
/* Initialization */
|
||||
+ WARN_ON(!(table->valid_hooks & (1 << hook)));
|
||||
+ local_bh_disable();
|
||||
+ private = READ_ONCE(table->private); /* Address dependency. */
|
||||
+ private = rcu_access_pointer(table->private);
|
||||
+ cpu = smp_processor_id();
|
||||
+ table_base = private->entries;
|
||||
+
|
||||
@@ -80,7 +80,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
- WARN_ON(!(table->valid_hooks & (1 << hook)));
|
||||
- local_bh_disable();
|
||||
addend = xt_write_recseq_begin();
|
||||
- private = READ_ONCE(table->private); /* Address dependency. */
|
||||
- private = rcu_access_pointer(table->private);
|
||||
- cpu = smp_processor_id();
|
||||
- table_base = private->entries;
|
||||
jumpstack = (struct ipt_entry **)private->jumpstack[cpu];
|
||||
|
||||
Reference in New Issue
Block a user