From 9b1b89229f0efef43a738f91875e0fd9fcc42277 Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Thu, 31 Dec 2020 19:25:45 +0100 Subject: 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 Tested-by: John Audia Tested-by: Stijn Segers --- ...c_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch | 2 +- ...0-rtc-rs5c372-support_alarms_up_to_1_week.patch | 10 ++-- ...let_the_alarm_to_be_used_as_wakeup_source.patch | 12 ++--- ...cmdline-Fix-parsing-of-part-names-with-co.patch | 61 ---------------------- .../530-jffs2_make_lzma_available.patch | 2 +- ...610-netfilter_match_bypass_default_checks.patch | 2 +- .../611-netfilter_match_bypass_default_table.patch | 4 +- 7 files changed, 14 insertions(+), 79 deletions(-) delete mode 100644 target/linux/generic/pending-5.4/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch (limited to 'target/linux/generic/pending-5.4') diff --git a/target/linux/generic/pending-5.4/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch b/target/linux/generic/pending-5.4/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch index 942ce27a3a..6acb2dc386 100644 --- a/target/linux/generic/pending-5.4/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch +++ b/target/linux/generic/pending-5.4/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch @@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf --- 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) diff --git a/target/linux/generic/pending-5.4/190-rtc-rs5c372-support_alarms_up_to_1_week.patch b/target/linux/generic/pending-5.4/190-rtc-rs5c372-support_alarms_up_to_1_week.patch index 83cab4e6d7..13b79b5c09 100644 --- a/target/linux/generic/pending-5.4/190-rtc-rs5c372-support_alarms_up_to_1_week.patch +++ b/target/linux/generic/pending-5.4/190-rtc-rs5c372-support_alarms_up_to_1_week.patch @@ -12,11 +12,9 @@ Signed-off-by: Daniel González Cabanelas 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); diff --git a/target/linux/generic/pending-5.4/191-rtc-rs5c372-let_the_alarm_to_be_used_as_wakeup_source.patch b/target/linux/generic/pending-5.4/191-rtc-rs5c372-let_the_alarm_to_be_used_as_wakeup_source.patch index d5c8c23f65..7e9d0e66c0 100644 --- a/target/linux/generic/pending-5.4/191-rtc-rs5c372-let_the_alarm_to_be_used_as_wakeup_source.patch +++ b/target/linux/generic/pending-5.4/191-rtc-rs5c372-let_the_alarm_to_be_used_as_wakeup_source.patch @@ -15,11 +15,9 @@ Signed-off-by: Daniel González Cabanelas 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; diff --git a/target/linux/generic/pending-5.4/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch b/target/linux/generic/pending-5.4/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch deleted file mode 100644 index 8724c1b7d3..0000000000 --- a/target/linux/generic/pending-5.4/499-mtd-parser-cmdline-Fix-parsing-of-part-names-with-co.patch +++ /dev/null @@ -1,61 +0,0 @@ -From: Sven Eckelmann -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 - ---- 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 = ';'; diff --git a/target/linux/generic/pending-5.4/530-jffs2_make_lzma_available.patch b/target/linux/generic/pending-5.4/530-jffs2_make_lzma_available.patch index 46c04408a5..eb0e51d574 100644 --- a/target/linux/generic/pending-5.4/530-jffs2_make_lzma_available.patch +++ b/target/linux/generic/pending-5.4/530-jffs2_make_lzma_available.patch @@ -244,7 +244,7 @@ Signed-off-by: Alexandros C. Couloumbis +} --- 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); diff --git a/target/linux/generic/pending-5.4/610-netfilter_match_bypass_default_checks.patch b/target/linux/generic/pending-5.4/610-netfilter_match_bypass_default_checks.patch index 703ac8215e..7a49ce0c39 100644 --- a/target/linux/generic/pending-5.4/610-netfilter_match_bypass_default_checks.patch +++ b/target/linux/generic/pending-5.4/610-netfilter_match_bypass_default_checks.patch @@ -69,7 +69,7 @@ Signed-off-by: Felix Fietkau 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; diff --git a/target/linux/generic/pending-5.4/611-netfilter_match_bypass_default_table.patch b/target/linux/generic/pending-5.4/611-netfilter_match_bypass_default_table.patch index baf738a8d2..1792534835 100644 --- a/target/linux/generic/pending-5.4/611-netfilter_match_bypass_default_table.patch +++ b/target/linux/generic/pending-5.4/611-netfilter_match_bypass_default_table.patch @@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau /* 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 - 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]; -- cgit v1.2.3