Skip to content
Snippets Groups Projects
Verified Commit f703348e authored by Michal Hrusecky's avatar Michal Hrusecky :mouse:
Browse files

Merge 'hotfix/7.0.1-release' into hbl

parents b6e34c45 fc31dda5
Branches
Tags
No related merge requests found
Pipeline #127353 passed with stages
in 8 minutes and 37 seconds
Showing with 2766 additions and 8757 deletions
7.0.1
-----
🚀 New Features
• Backport support for more SFP modules from mainline kernel
📌 Updates
• ethtool: Update to 6.6
• iproute2: Update to 6.7.0
• kernel: Update to 5.15.156
• openssh: Update to 9.8p1 (Security update)
• schnapps: Update to 2.13.1 - support for Turris 1.x
🐛 Bug Fixes
• transmission: Downgrade to version 3 as new version seems to have some issues
• modem-manager-autosetup: Proceed with configuration even for unknown service providers
💥 Breaking Changes
• Drop experimental mwifiex-nxp driver (not used anywhere)
7.0.0
-----
......
......@@ -349,6 +349,7 @@ Subject: [PATCH] Backport backported patches for Linux kernel 5.15
create mode 100644 target/linux/generic/backport-5.15/050-v5.16-04-mips-bpf-Add-JIT-workarounds-for-CPU-errata.patch
create mode 100644 target/linux/generic/backport-5.15/050-v5.16-05-mips-bpf-Enable-eBPF-JITs.patch
create mode 100644 target/linux/generic/backport-5.15/050-v5.16-06-mips-bpf-Remove-old-BPF-JIT-implementations.patch
create mode 100644 target/linux/generic/backport-5.15/081-v5.17-regmap-allow-to-define-reg_update_bits-for-no-bus.patch
create mode 100644 target/linux/generic/backport-5.15/100-v5.18-tty-serial-bcm63xx-use-more-precise-Kconfig-symbol.patch
create mode 100644 target/linux/generic/backport-5.15/200-v5.18-tools-resolve_btfids-Build-with-host-flags.patch
create mode 100644 target/linux/generic/backport-5.15/201-v5.16-scripts-dtc-Update-to-upstream-version-v1.6.1-19-g0a.patch
......@@ -10921,6 +10922,64 @@ index 0000000000..e25c336831
+-fault:
+- jr $r_ra
+- addiu $r_ret, zero, 1
diff --git a/target/linux/generic/backport-5.15/081-v5.17-regmap-allow-to-define-reg_update_bits-for-no-bus.patch b/target/linux/generic/backport-5.15/081-v5.17-regmap-allow-to-define-reg_update_bits-for-no-bus.patch
new file mode 100644
index 0000000000..e4c0833ae7
--- /dev/null
+++ b/target/linux/generic/backport-5.15/081-v5.17-regmap-allow-to-define-reg_update_bits-for-no-bus.patch
@@ -0,0 +1,52 @@
+From 02d6fdecb9c38de19065f6bed8d5214556fd061d Mon Sep 17 00:00:00 2001
+From: Ansuel Smith <ansuelsmth@gmail.com>
+Date: Thu, 4 Nov 2021 16:00:40 +0100
+Subject: regmap: allow to define reg_update_bits for no bus configuration
+
+Some device requires a special handling for reg_update_bits and can't use
+the normal regmap read write logic. An example is when locking is
+handled by the device and rmw operations requires to do atomic operations.
+Allow to declare a dedicated function in regmap_config for
+reg_update_bits in no bus configuration.
+
+Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
+Link: https://lore.kernel.org/r/20211104150040.1260-1-ansuelsmth@gmail.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+---
+ drivers/base/regmap/regmap.c | 1 +
+ include/linux/regmap.h | 7 +++++++
+ 2 files changed, 8 insertions(+)
+
+--- a/drivers/base/regmap/regmap.c
++++ b/drivers/base/regmap/regmap.c
+@@ -877,6 +877,7 @@ struct regmap *__regmap_init(struct devi
+ if (!bus) {
+ map->reg_read = config->reg_read;
+ map->reg_write = config->reg_write;
++ map->reg_update_bits = config->reg_update_bits;
+
+ map->defer_caching = false;
+ goto skip_format_initialization;
+--- a/include/linux/regmap.h
++++ b/include/linux/regmap.h
+@@ -290,6 +290,11 @@ typedef void (*regmap_unlock)(void *);
+ * read operation on a bus such as SPI, I2C, etc. Most of the
+ * devices do not need this.
+ * @reg_write: Same as above for writing.
++ * @reg_update_bits: Optional callback that if filled will be used to perform
++ * all the update_bits(rmw) operation. Should only be provided
++ * if the function require special handling with lock and reg
++ * handling and the operation cannot be represented as a simple
++ * update_bits operation on a bus such as SPI, I2C, etc.
+ * @fast_io: Register IO is fast. Use a spinlock instead of a mutex
+ * to perform locking. This field is ignored if custom lock/unlock
+ * functions are used (see fields lock/unlock of struct regmap_config).
+@@ -372,6 +377,8 @@ struct regmap_config {
+
+ int (*reg_read)(void *context, unsigned int reg, unsigned int *val);
+ int (*reg_write)(void *context, unsigned int reg, unsigned int val);
++ int (*reg_update_bits)(void *context, unsigned int reg,
++ unsigned int mask, unsigned int val);
+
+ bool fast_io;
+
diff --git a/target/linux/generic/backport-5.15/100-v5.18-tty-serial-bcm63xx-use-more-precise-Kconfig-symbol.patch b/target/linux/generic/backport-5.15/100-v5.18-tty-serial-bcm63xx-use-more-precise-Kconfig-symbol.patch
new file mode 100644
index 0000000000..7de3cbbda0
......@@ -9,6 +9,7 @@ Content-Transfer-Encoding: 8bit
Signed-off-by: Marek Behún <kabel@kernel.org>
---
...read-write-callbacks-into-regmap_con.patch | 285 ++++++++++++++++++
...9-2-regmap-Add-missing-map-bus-check.patch | 31 ++
...d-QCA8K_ATU_TABLE_SIZE-define-for-fd.patch | 63 ++++
...a8k-convert-to-regmap-read-write-API.patch | 261 ++++++++++++++++
......@@ -17,6 +18,8 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
...x-potential-MDIO-bus-conflict-when-a.patch | 106 +++++++
.../9000-fix-qca8k-on-turris1x.patch | 24 ++
8 files changed, 909 insertions(+)
create mode 100644 target/linux/mpc85xx/patches-5.15/0003-v5.19-1-regmap-Add-bulk-read-write-callbacks-into-regmap_con.patch
create mode 100644 target/linux/mpc85xx/patches-5.15/0003-v5.19-2-regmap-Add-missing-map-bus-check.patch
create mode 100644 target/linux/mpc85xx/patches-5.15/0004-v6.3-1-net-dsa-qca8k-add-QCA8K_ATU_TABLE_SIZE-define-for-fd.patch
create mode 100644 target/linux/mpc85xx/patches-5.15/0004-v6.3-2-net-dsa-qca8k-convert-to-regmap-read-write-API.patch
create mode 100644 target/linux/mpc85xx/patches-5.15/0004-v6.5-3-net-dsa-qca8k-enable-use_single_write-for-qca8xxx.patch
......@@ -24,6 +27,334 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
create mode 100644 target/linux/mpc85xx/patches-5.15/0004-v6.6-5-net-dsa-qca8k-fix-potential-MDIO-bus-conflict-when-a.patch
create mode 100644 target/linux/mpc85xx/patches-5.15/9000-fix-qca8k-on-turris1x.patch
diff --git a/target/linux/mpc85xx/patches-5.15/0003-v5.19-1-regmap-Add-bulk-read-write-callbacks-into-regmap_con.patch b/target/linux/mpc85xx/patches-5.15/0003-v5.19-1-regmap-Add-bulk-read-write-callbacks-into-regmap_con.patch
new file mode 100644
index 0000000000..7b272b8388
--- /dev/null
+++ b/target/linux/mpc85xx/patches-5.15/0003-v5.19-1-regmap-Add-bulk-read-write-callbacks-into-regmap_con.patch
@@ -0,0 +1,285 @@
+From d77e745613680c54708470402e2b623dcd769681 Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex@denx.de>
+Date: Sat, 30 Apr 2022 04:51:44 +0200
+Subject: [PATCH] regmap: Add bulk read/write callbacks into regmap_config
+
+Currently the regmap_config structure only allows the user to implement
+single element register read/write using .reg_read/.reg_write callbacks.
+The regmap_bus already implements bulk counterparts of both, and is being
+misused as a workaround for the missing bulk read/write callbacks in
+regmap_config by a couple of drivers. To stop this misuse, add the bulk
+read/write callbacks to regmap_config and call them from the regmap core
+code.
+
+Signed-off-by: Marek Vasut <marex@denx.de>
+Cc: Jagan Teki <jagan@amarulasolutions.com>
+Cc: Mark Brown <broonie@kernel.org>
+Cc: Maxime Ripard <maxime@cerno.tech>
+Cc: Robert Foss <robert.foss@linaro.org>
+Cc: Sam Ravnborg <sam@ravnborg.org>
+Cc: Thomas Zimmermann <tzimmermann@suse.de>
+To: dri-devel@lists.freedesktop.org
+Link: https://lore.kernel.org/r/20220430025145.640305-1-marex@denx.de
+Signed-off-by: Mark Brown <broonie@kernel.org>
+---
+ drivers/base/regmap/internal.h | 4 ++
+ drivers/base/regmap/regmap.c | 76 ++++++++++++++++++----------------
+ include/linux/regmap.h | 12 ++++++
+ 3 files changed, 56 insertions(+), 36 deletions(-)
+
+--- a/drivers/base/regmap/internal.h
++++ b/drivers/base/regmap/internal.h
+@@ -108,6 +108,10 @@ struct regmap {
+ int (*reg_write)(void *context, unsigned int reg, unsigned int val);
+ int (*reg_update_bits)(void *context, unsigned int reg,
+ unsigned int mask, unsigned int val);
++ /* Bulk read/write */
++ int (*read)(void *context, const void *reg_buf, size_t reg_size,
++ void *val_buf, size_t val_size);
++ int (*write)(void *context, const void *data, size_t count);
+
+ bool defer_caching;
+
+--- a/drivers/base/regmap/regmap.c
++++ b/drivers/base/regmap/regmap.c
+@@ -836,12 +836,15 @@ struct regmap *__regmap_init(struct devi
+ map->reg_stride_order = ilog2(map->reg_stride);
+ else
+ map->reg_stride_order = -1;
+- map->use_single_read = config->use_single_read || !bus || !bus->read;
+- map->use_single_write = config->use_single_write || !bus || !bus->write;
+- map->can_multi_write = config->can_multi_write && bus && bus->write;
++ map->use_single_read = config->use_single_read || !(config->read || (bus && bus->read));
++ map->use_single_write = config->use_single_write || !(config->write || (bus && bus->write));
++ map->can_multi_write = config->can_multi_write && (config->write || (bus && bus->write));
+ if (bus) {
+ map->max_raw_read = bus->max_raw_read;
+ map->max_raw_write = bus->max_raw_write;
++ } else if (config->max_raw_read && config->max_raw_write) {
++ map->max_raw_read = config->max_raw_read;
++ map->max_raw_write = config->max_raw_write;
+ }
+ map->dev = dev;
+ map->bus = bus;
+@@ -875,7 +878,16 @@ struct regmap *__regmap_init(struct devi
+ map->read_flag_mask = bus->read_flag_mask;
+ }
+
+- if (!bus) {
++ if (config && config->read && config->write) {
++ map->reg_read = _regmap_bus_read;
++
++ /* Bulk read/write */
++ map->read = config->read;
++ map->write = config->write;
++
++ reg_endian = REGMAP_ENDIAN_NATIVE;
++ val_endian = REGMAP_ENDIAN_NATIVE;
++ } else if (!bus) {
+ map->reg_read = config->reg_read;
+ map->reg_write = config->reg_write;
+ map->reg_update_bits = config->reg_update_bits;
+@@ -892,10 +904,13 @@ struct regmap *__regmap_init(struct devi
+ } else {
+ map->reg_read = _regmap_bus_read;
+ map->reg_update_bits = bus->reg_update_bits;
+- }
++ /* Bulk read/write */
++ map->read = bus->read;
++ map->write = bus->write;
+
+- reg_endian = regmap_get_reg_endian(bus, config);
+- val_endian = regmap_get_val_endian(dev, bus, config);
++ reg_endian = regmap_get_reg_endian(bus, config);
++ val_endian = regmap_get_val_endian(dev, bus, config);
++ }
+
+ switch (config->reg_bits + map->reg_shift) {
+ case 2:
+@@ -1669,8 +1684,6 @@ static int _regmap_raw_write_impl(struct
+ size_t len;
+ int i;
+
+- WARN_ON(!map->bus);
+-
+ /* Check for unwritable or noinc registers in range
+ * before we start
+ */
+@@ -1750,7 +1763,7 @@ static int _regmap_raw_write_impl(struct
+ val = work_val;
+ }
+
+- if (map->async && map->bus->async_write) {
++ if (map->async && map->bus && map->bus->async_write) {
+ struct regmap_async *async;
+
+ trace_regmap_async_write_start(map, reg, val_len);
+@@ -1818,10 +1831,10 @@ static int _regmap_raw_write_impl(struct
+ * write.
+ */
+ if (val == work_val)
+- ret = map->bus->write(map->bus_context, map->work_buf,
+- map->format.reg_bytes +
+- map->format.pad_bytes +
+- val_len);
++ ret = map->write(map->bus_context, map->work_buf,
++ map->format.reg_bytes +
++ map->format.pad_bytes +
++ val_len);
+ else if (map->bus->gather_write)
+ ret = map->bus->gather_write(map->bus_context, map->work_buf,
+ map->format.reg_bytes +
+@@ -1840,7 +1853,7 @@ static int _regmap_raw_write_impl(struct
+ memcpy(buf, map->work_buf, map->format.reg_bytes);
+ memcpy(buf + map->format.reg_bytes + map->format.pad_bytes,
+ val, val_len);
+- ret = map->bus->write(map->bus_context, buf, len);
++ ret = map->write(map->bus_context, buf, len);
+
+ kfree(buf);
+ } else if (ret != 0 && !map->cache_bypass && map->format.parse_val) {
+@@ -1897,7 +1910,7 @@ static int _regmap_bus_formatted_write(v
+ struct regmap_range_node *range;
+ struct regmap *map = context;
+
+- WARN_ON(!map->bus || !map->format.format_write);
++ WARN_ON(!map->format.format_write);
+
+ range = _regmap_range_lookup(map, reg);
+ if (range) {
+@@ -1910,8 +1923,7 @@ static int _regmap_bus_formatted_write(v
+
+ trace_regmap_hw_write_start(map, reg, 1);
+
+- ret = map->bus->write(map->bus_context, map->work_buf,
+- map->format.buf_size);
++ ret = map->write(map->bus_context, map->work_buf, map->format.buf_size);
+
+ trace_regmap_hw_write_done(map, reg, 1);
+
+@@ -1931,7 +1943,7 @@ static int _regmap_bus_raw_write(void *c
+ {
+ struct regmap *map = context;
+
+- WARN_ON(!map->bus || !map->format.format_val);
++ WARN_ON(!map->format.format_val);
+
+ map->format.format_val(map->work_buf + map->format.reg_bytes
+ + map->format.pad_bytes, val, 0);
+@@ -1945,7 +1957,7 @@ static int _regmap_bus_raw_write(void *c
+
+ static inline void *_regmap_map_get_context(struct regmap *map)
+ {
+- return (map->bus) ? map : map->bus_context;
++ return (map->bus || (!map->bus && map->read)) ? map : map->bus_context;
+ }
+
+ int _regmap_write(struct regmap *map, unsigned int reg,
+@@ -2355,7 +2367,7 @@ static int _regmap_raw_multi_reg_write(s
+ u8 = buf;
+ *u8 |= map->write_flag_mask;
+
+- ret = map->bus->write(map->bus_context, buf, len);
++ ret = map->write(map->bus_context, buf, len);
+
+ kfree(buf);
+
+@@ -2661,9 +2673,7 @@ static int _regmap_raw_read(struct regma
+ struct regmap_range_node *range;
+ int ret;
+
+- WARN_ON(!map->bus);
+-
+- if (!map->bus || !map->bus->read)
++ if (!map->read)
+ return -EINVAL;
+
+ range = _regmap_range_lookup(map, reg);
+@@ -2679,9 +2689,9 @@ static int _regmap_raw_read(struct regma
+ map->read_flag_mask);
+ trace_regmap_hw_read_start(map, reg, val_len / map->format.val_bytes);
+
+- ret = map->bus->read(map->bus_context, map->work_buf,
+- map->format.reg_bytes + map->format.pad_bytes,
+- val, val_len);
++ ret = map->read(map->bus_context, map->work_buf,
++ map->format.reg_bytes + map->format.pad_bytes,
++ val, val_len);
+
+ trace_regmap_hw_read_done(map, reg, val_len / map->format.val_bytes);
+
+@@ -2792,8 +2802,6 @@ int regmap_raw_read(struct regmap *map,
+ unsigned int v;
+ int ret, i;
+
+- if (!map->bus)
+- return -EINVAL;
+ if (val_len % map->format.val_bytes)
+ return -EINVAL;
+ if (!IS_ALIGNED(reg, map->reg_stride))
+@@ -2808,7 +2816,7 @@ int regmap_raw_read(struct regmap *map,
+ size_t chunk_count, chunk_bytes;
+ size_t chunk_regs = val_count;
+
+- if (!map->bus->read) {
++ if (!map->read) {
+ ret = -ENOTSUPP;
+ goto out;
+ }
+@@ -2868,7 +2876,7 @@ EXPORT_SYMBOL_GPL(regmap_raw_read);
+ * @val: Pointer to data buffer
+ * @val_len: Length of output buffer in bytes.
+ *
+- * The regmap API usually assumes that bulk bus read operations will read a
++ * The regmap API usually assumes that bulk read operations will read a
+ * range of registers. Some devices have certain registers for which a read
+ * operation read will read from an internal FIFO.
+ *
+@@ -2886,10 +2894,6 @@ int regmap_noinc_read(struct regmap *map
+ size_t read_len;
+ int ret;
+
+- if (!map->bus)
+- return -EINVAL;
+- if (!map->bus->read)
+- return -ENOTSUPP;
+ if (val_len % map->format.val_bytes)
+ return -EINVAL;
+ if (!IS_ALIGNED(reg, map->reg_stride))
+@@ -3003,7 +3007,7 @@ int regmap_bulk_read(struct regmap *map,
+ if (val_count == 0)
+ return -EINVAL;
+
+- if (map->bus && map->format.parse_inplace && (vol || map->cache_type == REGCACHE_NONE)) {
++ if (map->format.parse_inplace && (vol || map->cache_type == REGCACHE_NONE)) {
+ ret = regmap_raw_read(map, reg, val, val_bytes * val_count);
+ if (ret != 0)
+ return ret;
+--- a/include/linux/regmap.h
++++ b/include/linux/regmap.h
+@@ -295,6 +295,12 @@ typedef void (*regmap_unlock)(void *);
+ * if the function require special handling with lock and reg
+ * handling and the operation cannot be represented as a simple
+ * update_bits operation on a bus such as SPI, I2C, etc.
++ * @read: Optional callback that if filled will be used to perform all the
++ * bulk reads from the registers. Data is returned in the buffer used
++ * to transmit data.
++ * @write: Same as above for writing.
++ * @max_raw_read: Max raw read size that can be used on the device.
++ * @max_raw_write: Max raw write size that can be used on the device.
+ * @fast_io: Register IO is fast. Use a spinlock instead of a mutex
+ * to perform locking. This field is ignored if custom lock/unlock
+ * functions are used (see fields lock/unlock of struct regmap_config).
+@@ -379,6 +385,12 @@ struct regmap_config {
+ int (*reg_write)(void *context, unsigned int reg, unsigned int val);
+ int (*reg_update_bits)(void *context, unsigned int reg,
+ unsigned int mask, unsigned int val);
++ /* Bulk read/write */
++ int (*read)(void *context, const void *reg_buf, size_t reg_size,
++ void *val_buf, size_t val_size);
++ int (*write)(void *context, const void *data, size_t count);
++ size_t max_raw_read;
++ size_t max_raw_write;
+
+ bool fast_io;
+
diff --git a/target/linux/mpc85xx/patches-5.15/0003-v5.19-2-regmap-Add-missing-map-bus-check.patch b/target/linux/mpc85xx/patches-5.15/0003-v5.19-2-regmap-Add-missing-map-bus-check.patch
new file mode 100644
index 0000000000..5a50a9600e
--- /dev/null
+++ b/target/linux/mpc85xx/patches-5.15/0003-v5.19-2-regmap-Add-missing-map-bus-check.patch
@@ -0,0 +1,31 @@
+From 5c422f0b970d287efa864b8390a02face404db5d Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex@denx.de>
+Date: Mon, 9 May 2022 02:30:35 +0200
+Subject: [PATCH] regmap: Add missing map->bus check
+
+The map->bus can be NULL here, add the missing NULL pointer check.
+
+Fixes: d77e745613680 ("regmap: Add bulk read/write callbacks into regmap_config")
+Reported-by: kernel test robot <lkp@intel.com>
+Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
+Signed-off-by: Marek Vasut <marex@denx.de>
+Cc: Dan Carpenter <dan.carpenter@oracle.com>
+Cc: Mark Brown <broonie@kernel.org>
+To: linux-kernel@vger.kernel.org
+Link: https://lore.kernel.org/r/20220509003035.225272-1-marex@denx.de
+Signed-off-by: Mark Brown <broonie@kernel.org>
+---
+ drivers/base/regmap/regmap.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/base/regmap/regmap.c
++++ b/drivers/base/regmap/regmap.c
+@@ -1835,7 +1835,7 @@ static int _regmap_raw_write_impl(struct
+ map->format.reg_bytes +
+ map->format.pad_bytes +
+ val_len);
+- else if (map->bus->gather_write)
++ else if (map->bus && map->bus->gather_write)
+ ret = map->bus->gather_write(map->bus_context, map->work_buf,
+ map->format.reg_bytes +
+ map->format.pad_bytes,
diff --git a/target/linux/mpc85xx/patches-5.15/0004-v6.3-1-net-dsa-qca8k-add-QCA8K_ATU_TABLE_SIZE-define-for-fd.patch b/target/linux/mpc85xx/patches-5.15/0004-v6.3-1-net-dsa-qca8k-add-QCA8K_ATU_TABLE_SIZE-define-for-fd.patch
new file mode 100644
index 0000000000..3a20bc6728
......
From ff760e82984bde2417a68e6b7edc7c37e049e0a0 Mon Sep 17 00:00:00 2001
From: Richard Muzik <richard.muzik@nic.cz>
Date: Mon, 4 Mar 2024 13:18:45 +0100
Subject: [PATCH] target/linux: add patch to finish compile
The flow_offload_route_init function used to return int. Now it is void
function. So chaning this not to expect int.
Reference:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/diff/net/netfilter/nft_flow_offload.c?id=v5.15.150&id2=v5.15.149
---
...netfilter-xt_FLOWOFFLOAD-int-to-void-change.patch | 12 ++++++++++++
1 file changed, 12 insertions(+)
create mode 100644 target/linux/generic/hack-5.15/940-net-netfilter-xt_FLOWOFFLOAD-int-to-void-change.patch
diff --git a/target/linux/generic/hack-5.15/940-net-netfilter-xt_FLOWOFFLOAD-int-to-void-change.patch b/target/linux/generic/hack-5.15/940-net-netfilter-xt_FLOWOFFLOAD-int-to-void-change.patch
new file mode 100644
index 0000000000..73884dc4b7
--- /dev/null
+++ b/target/linux/generic/hack-5.15/940-net-netfilter-xt_FLOWOFFLOAD-int-to-void-change.patch
@@ -0,0 +1,12 @@
+--- a/net/netfilter/xt_FLOWOFFLOAD.c
++++ b/net/netfilter/xt_FLOWOFFLOAD.c
+@@ -521,8 +521,7 @@ flowoffload_tg(struct sk_buff *skb, cons
+ if (!flow)
+ goto err_flow_alloc;
+
+- if (flow_offload_route_init(flow, &route) < 0)
+- goto err_flow_add;
++ flow_offload_route_init(flow, &route);
+
+ if (tcph) {
+ ct->proto.tcp.seen[0].flags |= IP_CT_TCP_FLAG_BE_LIBERAL;
--
2.43.2
From 1e6d3caff7e5335a2aa2f3bcf0e836ff8157a593 Mon Sep 17 00:00:00 2001
From: Michal Hrusecky <michal.hrusecky@turris.com>
Date: Fri, 26 Apr 2024 13:18:08 +0200
Subject: [PATCH] kernel: Fix compilation of 5.15.156
Drop one patch already included in upstream kernel, disable NFSv2 and
rebase another patch.
---
package/kernel/linux/modules/fs.mk | 1 +
...c-move-MAC_MCR-setting-to-mac_finish.patch | 79 -------------------
.../hack-5.15/221-module_exports.patch | 30 ++++---
3 files changed, 20 insertions(+), 90 deletions(-)
delete mode 100644 target/linux/generic/backport-5.15/704-15-v5.19-net-mtk_eth_soc-move-MAC_MCR-setting-to-mac_finish.patch
diff --git a/package/kernel/linux/modules/fs.mk b/package/kernel/linux/modules/fs.mk
index 649588543b..64bc443fb8 100644
--- a/package/kernel/linux/modules/fs.mk
+++ b/package/kernel/linux/modules/fs.mk
@@ -481,6 +481,7 @@ define KernelPackage/fs-nfsd
DEPENDS:=+kmod-fs-nfs-common +kmod-fs-exportfs +kmod-fs-nfs-common-rpcsec
KCONFIG:= \
CONFIG_NFSD \
+ CONFIG_NFSD_V2=n \
CONFIG_NFSD_V4=y \
CONFIG_NFSD_V4_SECURITY_LABEL=n \
CONFIG_NFSD_BLOCKLAYOUT=n \
diff --git a/target/linux/generic/backport-5.15/704-15-v5.19-net-mtk_eth_soc-move-MAC_MCR-setting-to-mac_finish.patch b/target/linux/generic/backport-5.15/704-15-v5.19-net-mtk_eth_soc-move-MAC_MCR-setting-to-mac_finish.patch
deleted file mode 100644
index 337c6112d6..0000000000
--- a/target/linux/generic/backport-5.15/704-15-v5.19-net-mtk_eth_soc-move-MAC_MCR-setting-to-mac_finish.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 0e37ad71b2ff772009595002da2860999e98e14e Mon Sep 17 00:00:00 2001
-From: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>
-Date: Wed, 18 May 2022 15:55:12 +0100
-Subject: [PATCH 09/12] net: mtk_eth_soc: move MAC_MCR setting to mac_finish()
-
-Move the setting of the MTK_MAC_MCR register from the end of mac_config
-into the phylink mac_finish() method, to keep it as the very last write
-that is done during configuration.
-
-Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
-Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----
- drivers/net/ethernet/mediatek/mtk_eth_soc.c | 33 ++++++++++++++-------
- 1 file changed, 22 insertions(+), 11 deletions(-)
-
---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -316,8 +316,8 @@ static void mtk_mac_config(struct phylin
- struct mtk_mac *mac = container_of(config, struct mtk_mac,
- phylink_config);
- struct mtk_eth *eth = mac->hw;
-- u32 mcr_cur, mcr_new, sid, i;
- int val, ge_mode, err = 0;
-+ u32 sid, i;
-
- /* MT76x8 has no hardware settings between for the MAC */
- if (!MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628) &&
-@@ -455,6 +455,25 @@ static void mtk_mac_config(struct phylin
- return;
- }
-
-+ return;
-+
-+err_phy:
-+ dev_err(eth->dev, "%s: GMAC%d mode %s not supported!\n", __func__,
-+ mac->id, phy_modes(state->interface));
-+ return;
-+
-+init_err:
-+ dev_err(eth->dev, "%s: GMAC%d mode %s err: %d!\n", __func__,
-+ mac->id, phy_modes(state->interface), err);
-+}
-+
-+static int mtk_mac_finish(struct phylink_config *config, unsigned int mode,
-+ phy_interface_t interface)
-+{
-+ struct mtk_mac *mac = container_of(config, struct mtk_mac,
-+ phylink_config);
-+ u32 mcr_cur, mcr_new;
-+
- /* Setup gmac */
- mcr_cur = mtk_r32(mac->hw, MTK_MAC_MCR(mac->id));
- mcr_new = mcr_cur;
-@@ -466,16 +485,7 @@ static void mtk_mac_config(struct phylin
- if (mcr_new != mcr_cur)
- mtk_w32(mac->hw, mcr_new, MTK_MAC_MCR(mac->id));
-
-- return;
--
--err_phy:
-- dev_err(eth->dev, "%s: GMAC%d mode %s not supported!\n", __func__,
-- mac->id, phy_modes(state->interface));
-- return;
--
--init_err:
-- dev_err(eth->dev, "%s: GMAC%d mode %s err: %d!\n", __func__,
-- mac->id, phy_modes(state->interface), err);
-+ return 0;
- }
-
- static void mtk_mac_pcs_get_state(struct phylink_config *config,
-@@ -582,6 +592,7 @@ static const struct phylink_mac_ops mtk_
- .mac_pcs_get_state = mtk_mac_pcs_get_state,
- .mac_an_restart = mtk_mac_an_restart,
- .mac_config = mtk_mac_config,
-+ .mac_finish = mtk_mac_finish,
- .mac_link_down = mtk_mac_link_down,
- .mac_link_up = mtk_mac_link_up,
- };
diff --git a/target/linux/generic/hack-5.15/221-module_exports.patch b/target/linux/generic/hack-5.15/221-module_exports.patch
index 405dc5f78c..1b0eaba75a 100644
--- a/target/linux/generic/hack-5.15/221-module_exports.patch
+++ b/target/linux/generic/hack-5.15/221-module_exports.patch
@@ -11,8 +11,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
scripts/Makefile.build | 2 +-
3 files changed, 24 insertions(+), 5 deletions(-)
---- a/include/asm-generic/vmlinux.lds.h
-+++ b/include/asm-generic/vmlinux.lds.h
+Index: linux-5.15.156/include/asm-generic/vmlinux.lds.h
+===================================================================
+--- linux-5.15.156.orig/include/asm-generic/vmlinux.lds.h
++++ linux-5.15.156/include/asm-generic/vmlinux.lds.h
@@ -81,6 +81,16 @@
#define RO_EXCEPTION_TABLE
#endif
@@ -27,8 +29,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+#define SYMTAB_DISCARD_GPL
+#endif
+
- /* Align . to a 8 byte boundary equals to maximum function alignment. */
- #define ALIGN_FUNCTION() . = ALIGN(8)
+ /* Align . function alignment. */
+ #define ALIGN_FUNCTION() . = ALIGN(CONFIG_FUNCTION_ALIGNMENT)
@@ -485,14 +495,14 @@
/* Kernel symbol table: Normal symbols */ \
@@ -56,7 +58,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
} \
\
/* __*init sections */ \
-@@ -1017,6 +1027,8 @@
+@@ -1022,6 +1032,8 @@
#define COMMON_DISCARDS \
SANITIZER_DISCARDS \
@@ -65,8 +67,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
*(.discard) \
*(.discard.*) \
*(.modinfo) \
---- a/include/linux/export.h
-+++ b/include/linux/export.h
+Index: linux-5.15.156/include/linux/export.h
+===================================================================
+--- linux-5.15.156.orig/include/linux/export.h
++++ linux-5.15.156/include/linux/export.h
@@ -84,6 +84,12 @@ struct kernel_symbol {
#else
@@ -89,8 +93,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
"__kstrtab_" #sym ": \n" \
" .asciz \"" #sym "\" \n" \
"__kstrtabns_" #sym ": \n" \
---- a/include/asm-generic/export.h
-+++ b/include/asm-generic/export.h
+Index: linux-5.15.156/include/asm-generic/export.h
+===================================================================
+--- linux-5.15.156.orig/include/asm-generic/export.h
++++ linux-5.15.156/include/asm-generic/export.h
@@ -26,6 +26,12 @@
#endif
.endm
@@ -113,8 +119,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
__kstrtab_\name:
.asciz "\name"
.previous
---- a/scripts/Makefile.build
-+++ b/scripts/Makefile.build
+Index: linux-5.15.156/scripts/Makefile.build
+===================================================================
+--- linux-5.15.156.orig/scripts/Makefile.build
++++ linux-5.15.156/scripts/Makefile.build
@@ -397,7 +397,7 @@ targets += $(real-dtb-y) $(lib-y) $(alwa
# Linker scripts preprocessor (.lds.S -> .lds)
# ---------------------------------------------------------------------------
--
2.44.0
......@@ -16,8 +16,8 @@ index 0000000000..4c18bc35c2
--- /dev/null
+++ b/include/kernel-5.15
@@ -0,0 +1,2 @@
+LINUX_VERSION-5.15 = .156
+LINUX_KERNEL_HASH-5.15.156 = 9f0465d14c93691056f5f94de647601f94f083ad8ce2e5d306564394b13e7778
+LINUX_VERSION-5.15 = .148
+LINUX_KERNEL_HASH-5.15.148 = c48575c97fd9f4767cbe50a13b1b2b40ee42830aba3182fabd35a03259a6e5d8
--
2.40.1
From 85ae58eecfde30d14372cb3e6f3a6d484fc568f8 Mon Sep 17 00:00:00 2001
From: John Audia <therealgraysky@proton.me>
Date: Mon, 1 Jul 2024 21:14:22 +0200
Subject: [PATCH] openssh: bump to 9.8p1
Release notes: https://www.openssh.com/txt/release-9.8
Adjusted Makefile to provide /usr/lib/sshd-session
Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne
https://github.com/openwrt/packages/pull/24494
Signed-off-by: John Audia <therealgraysky@proton.me>
---
net/openssh/Makefile | 8 +++++---
net/openssh/files/sshd.init | 5 +++++
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/net/openssh/Makefile b/net/openssh/Makefile
index 399f12dca..39b412afe 100644
--- a/net/openssh/Makefile
+++ b/net/openssh/Makefile
@@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=openssh
-PKG_VERSION:=9.7p1
+PKG_VERSION:=9.8p1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/ \
https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/
-PKG_HASH:=490426f766d82a2763fcacd8d83ea3d70798750c7bd2aff2e57dc5660f773ffd
+PKG_HASH:=dd8bd002a379b5d499dfb050dd1fa9af8029e80461f4bb6c523c49973f5a39f3
PKG_LICENSE:=BSD ISC
PKG_LICENSE_FILES:=LICENCE
@@ -236,6 +236,8 @@ define Package/openssh-server/install
$(INSTALL_BIN) ./files/sshd.failsafe $(1)/lib/preinit/99_10_failsafe_sshd
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/sshd $(1)/usr/sbin/
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/sshd-session $(1)/usr/lib/
endef
define Package/openssh-server-pam/install
diff --git a/net/openssh/files/sshd.init b/net/openssh/files/sshd.init
index e7735364d..0b859e146 100644
--- a/net/openssh/files/sshd.init
+++ b/net/openssh/files/sshd.init
@@ -27,9 +27,14 @@ start_service() {
procd_open_instance
procd_add_mdns "ssh" "tcp" "$lport"
procd_set_param command $PROG -D
+ procd_set_param respawn
procd_close_instance
}
+reload_service() {
+ procd_send_signal sshd
+}
+
shutdown() {
local pid
--
2.45.2
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment