From 85161b432f7b72f56063125e79f8c95792c3290e Mon Sep 17 00:00:00 2001 From: John Audia Date: Wed, 18 Sep 2024 15:29:06 -0400 Subject: [PATCH] kernel: bump 6.6 to 6.6.52 Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.52 Removed upstreamed: backport-6.6/819-v6.8-0010-nvmem-core-add-nvmem_dev_size-helper.patch[1] backport-6.6/819-v6.8-0011-nvmem-u-boot-env-use-nvmem_add_one_cell-nvmemsubsys.patch[2] backport-6.6/819-v6.8-0012-nvmem-u-boot-env-use-nvmem-device-helpers.patch[3] backport-6.6/819-v6.8-0013-nvmem-u-boot-env-improve-coding-style.patch[4] backport-6.6/822-v6.11-0011-nvmem-u-boot-env-error-if-NVMEM-device-is-too-small.patch[5] Manually rebased: starfive/patches-6.6/0048-riscv-dts-starfive-Add-full-support-except-VIN-and-V.patch All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.52&id=820b1b981aeb8b8e60db2835ddd430c9d1bc6072 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.52&id=ae91c9c7b67d4d47206fe8cbb2ab89687d283dcc 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.52&id=2eea394c31cbc3d853a26ef2ddb8f5bd24d4d002 4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.52&id=368fa77b7945bdbdf0e3bb26b5abcae4fba25a20 5. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.52&id=2278629c3ebb1a912fe0a1f19f088312600742a4 Build system: x86/64 Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Run-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Signed-off-by: John Audia Link: https://github.com/openwrt/openwrt/pull/16422 Signed-off-by: Hauke Mehrtens --- include/kernel-6.6 | 4 +- ...ce-quirks-for-Freeway-Airmouse-T3-an.patch | 2 +- ...mem_layout_get_container-in-another-.patch | 4 +- ...rk-layouts-to-become-regular-devices.patch | 2 +- ...nvmem-core-add-nvmem_dev_size-helper.patch | 53 -------- ...-use-nvmem_add_one_cell-nvmem-subsys.patch | 126 ------------------ ...-u-boot-env-use-nvmem-device-helpers.patch | 81 ----------- ...vmem-u-boot-env-improve-coding-style.patch | 62 --------- ...dd-missing-MODULE_DESCRIPTION-macros.patch | 2 +- ...v-error-if-NVMEM-device-is-too-small.patch | 40 ------ ...ve-Add-full-support-except-VIN-and-V.patch | 23 +--- 11 files changed, 12 insertions(+), 387 deletions(-) delete mode 100644 target/linux/generic/backport-6.6/819-v6.8-0010-nvmem-core-add-nvmem_dev_size-helper.patch delete mode 100644 target/linux/generic/backport-6.6/819-v6.8-0011-nvmem-u-boot-env-use-nvmem_add_one_cell-nvmem-subsys.patch delete mode 100644 target/linux/generic/backport-6.6/819-v6.8-0012-nvmem-u-boot-env-use-nvmem-device-helpers.patch delete mode 100644 target/linux/generic/backport-6.6/819-v6.8-0013-nvmem-u-boot-env-improve-coding-style.patch delete mode 100644 target/linux/generic/backport-6.6/822-v6.11-0011-nvmem-u-boot-env-error-if-NVMEM-device-is-too-small.patch diff --git a/include/kernel-6.6 b/include/kernel-6.6 index 485ec8eef59e..094066fe77e9 100644 --- a/include/kernel-6.6 +++ b/include/kernel-6.6 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.6 = .51 -LINUX_KERNEL_HASH-6.6.51 = 1c0c9a14650879c4913efdbac428ba31a540c3d987155ddf34d33e11eca008b3 +LINUX_VERSION-6.6 = .52 +LINUX_KERNEL_HASH-6.6.52 = 1591ab348399d4aa53121158525056a69c8cf0fe0e90935b0095e9a58e37b4b8 diff --git a/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch b/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch index c3c3353f919d..b102bc33fc46 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0169-hid-usb-Add-device-quirks-for-Freeway-Airmouse-T3-an.patch @@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell #define USB_VENDOR_ID_BELKIN 0x050d #define USB_DEVICE_ID_FLIP_KVM 0x3201 -@@ -1407,6 +1410,9 @@ +@@ -1409,6 +1412,9 @@ #define USB_VENDOR_ID_XIAOMI 0x2717 #define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014 diff --git a/target/linux/generic/backport-6.6/819-v6.8-0001-nvmem-Move-of_nvmem_layout_get_container-in-another-.patch b/target/linux/generic/backport-6.6/819-v6.8-0001-nvmem-Move-of_nvmem_layout_get_container-in-another-.patch index 7ca426e87aff..0290d648984b 100644 --- a/target/linux/generic/backport-6.6/819-v6.8-0001-nvmem-Move-of_nvmem_layout_get_container-in-another-.patch +++ b/target/linux/generic/backport-6.6/819-v6.8-0001-nvmem-Move-of_nvmem_layout_get_container-in-another-.patch @@ -42,7 +42,7 @@ Signed-off-by: Greg Kroah-Hartman return of_get_child_by_name(nvmem->dev.of_node, "nvmem-layout"); --- a/include/linux/nvmem-consumer.h +++ b/include/linux/nvmem-consumer.h -@@ -241,7 +241,6 @@ struct nvmem_cell *of_nvmem_cell_get(str +@@ -242,7 +242,6 @@ struct nvmem_cell *of_nvmem_cell_get(str const char *id); struct nvmem_device *of_nvmem_device_get(struct device_node *np, const char *name); @@ -50,7 +50,7 @@ Signed-off-by: Greg Kroah-Hartman #else static inline struct nvmem_cell *of_nvmem_cell_get(struct device_node *np, const char *id) -@@ -254,12 +253,6 @@ static inline struct nvmem_device *of_nv +@@ -255,12 +254,6 @@ static inline struct nvmem_device *of_nv { return ERR_PTR(-EOPNOTSUPP); } diff --git a/target/linux/generic/backport-6.6/819-v6.8-0005-nvmem-core-Rework-layouts-to-become-regular-devices.patch b/target/linux/generic/backport-6.6/819-v6.8-0005-nvmem-core-Rework-layouts-to-become-regular-devices.patch index 1a41050d0892..c846c485e024 100644 --- a/target/linux/generic/backport-6.6/819-v6.8-0005-nvmem-core-Rework-layouts-to-become-regular-devices.patch +++ b/target/linux/generic/backport-6.6/819-v6.8-0005-nvmem-core-Rework-layouts-to-become-regular-devices.patch @@ -330,7 +330,7 @@ Signed-off-by: Greg Kroah-Hartman } EXPORT_SYMBOL_GPL(nvmem_cell_put); -@@ -2103,11 +2044,22 @@ EXPORT_SYMBOL_GPL(nvmem_dev_name); +@@ -2116,11 +2057,22 @@ EXPORT_SYMBOL_GPL(nvmem_dev_size); static int __init nvmem_init(void) { diff --git a/target/linux/generic/backport-6.6/819-v6.8-0010-nvmem-core-add-nvmem_dev_size-helper.patch b/target/linux/generic/backport-6.6/819-v6.8-0010-nvmem-core-add-nvmem_dev_size-helper.patch deleted file mode 100644 index 93fd1ce6adf7..000000000000 --- a/target/linux/generic/backport-6.6/819-v6.8-0010-nvmem-core-add-nvmem_dev_size-helper.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 33cf42e68efc8ff529a7eee08a4f0ba8c8d0a207 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Date: Thu, 21 Dec 2023 18:34:17 +0100 -Subject: [PATCH] nvmem: core: add nvmem_dev_size() helper -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This is required by layouts that need to read whole NVMEM content. It's -especially useful for NVMEM devices without hardcoded layout (like -U-Boot environment data block). - -Signed-off-by: Rafał Miłecki -Reviewed-by: Miquel Raynal -Link: https://lore.kernel.org/r/20231221173421.13737-2-zajec5@gmail.com -Signed-off-by: Greg Kroah-Hartman ---- - drivers/nvmem/core.c | 13 +++++++++++++ - include/linux/nvmem-consumer.h | 1 + - 2 files changed, 14 insertions(+) - ---- a/drivers/nvmem/core.c -+++ b/drivers/nvmem/core.c -@@ -2162,6 +2162,19 @@ const char *nvmem_dev_name(struct nvmem_ - } - EXPORT_SYMBOL_GPL(nvmem_dev_name); - -+/** -+ * nvmem_dev_size() - Get the size of a given nvmem device. -+ * -+ * @nvmem: nvmem device. -+ * -+ * Return: size of the nvmem device. -+ */ -+size_t nvmem_dev_size(struct nvmem_device *nvmem) -+{ -+ return nvmem->size; -+} -+EXPORT_SYMBOL_GPL(nvmem_dev_size); -+ - static int __init nvmem_init(void) - { - int ret; ---- a/include/linux/nvmem-consumer.h -+++ b/include/linux/nvmem-consumer.h -@@ -81,6 +81,7 @@ int nvmem_device_cell_write(struct nvmem - struct nvmem_cell_info *info, void *buf); - - const char *nvmem_dev_name(struct nvmem_device *nvmem); -+size_t nvmem_dev_size(struct nvmem_device *nvmem); - - void nvmem_add_cell_lookups(struct nvmem_cell_lookup *entries, - size_t nentries); diff --git a/target/linux/generic/backport-6.6/819-v6.8-0011-nvmem-u-boot-env-use-nvmem_add_one_cell-nvmem-subsys.patch b/target/linux/generic/backport-6.6/819-v6.8-0011-nvmem-u-boot-env-use-nvmem_add_one_cell-nvmem-subsys.patch deleted file mode 100644 index fc826f3f7e4e..000000000000 --- a/target/linux/generic/backport-6.6/819-v6.8-0011-nvmem-u-boot-env-use-nvmem_add_one_cell-nvmem-subsys.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 7c8979b42b1a9c5604f431ba804928e55919263c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Date: Thu, 21 Dec 2023 18:34:18 +0100 -Subject: [PATCH] nvmem: u-boot-env: use nvmem_add_one_cell() nvmem subsystem - helper -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Simplify adding NVMEM cells. - -Signed-off-by: Rafał Miłecki -Reviewed-by: Miquel Raynal -Link: https://lore.kernel.org/r/20231221173421.13737-3-zajec5@gmail.com -Signed-off-by: Greg Kroah-Hartman ---- - drivers/nvmem/u-boot-env.c | 55 +++++++++++++++----------------------- - 1 file changed, 21 insertions(+), 34 deletions(-) - ---- a/drivers/nvmem/u-boot-env.c -+++ b/drivers/nvmem/u-boot-env.c -@@ -23,13 +23,10 @@ enum u_boot_env_format { - - struct u_boot_env { - struct device *dev; -+ struct nvmem_device *nvmem; - enum u_boot_env_format format; - - struct mtd_info *mtd; -- -- /* Cells */ -- struct nvmem_cell_info *cells; -- int ncells; - }; - - struct u_boot_env_image_single { -@@ -94,43 +91,36 @@ static int u_boot_env_read_post_process_ - static int u_boot_env_add_cells(struct u_boot_env *priv, uint8_t *buf, - size_t data_offset, size_t data_len) - { -+ struct nvmem_device *nvmem = priv->nvmem; - struct device *dev = priv->dev; - char *data = buf + data_offset; - char *var, *value, *eq; -- int idx; -- -- priv->ncells = 0; -- for (var = data; var < data + data_len && *var; var += strlen(var) + 1) -- priv->ncells++; -- -- priv->cells = devm_kcalloc(dev, priv->ncells, sizeof(*priv->cells), GFP_KERNEL); -- if (!priv->cells) -- return -ENOMEM; - -- for (var = data, idx = 0; -+ for (var = data; - var < data + data_len && *var; -- var = value + strlen(value) + 1, idx++) { -+ var = value + strlen(value) + 1) { -+ struct nvmem_cell_info info = {}; -+ - eq = strchr(var, '='); - if (!eq) - break; - *eq = '\0'; - value = eq + 1; - -- priv->cells[idx].name = devm_kstrdup(dev, var, GFP_KERNEL); -- if (!priv->cells[idx].name) -+ info.name = devm_kstrdup(dev, var, GFP_KERNEL); -+ if (!info.name) - return -ENOMEM; -- priv->cells[idx].offset = data_offset + value - data; -- priv->cells[idx].bytes = strlen(value); -- priv->cells[idx].np = of_get_child_by_name(dev->of_node, priv->cells[idx].name); -+ info.offset = data_offset + value - data; -+ info.bytes = strlen(value); -+ info.np = of_get_child_by_name(dev->of_node, info.name); - if (!strcmp(var, "ethaddr")) { -- priv->cells[idx].raw_len = strlen(value); -- priv->cells[idx].bytes = ETH_ALEN; -- priv->cells[idx].read_post_process = u_boot_env_read_post_process_ethaddr; -+ info.raw_len = strlen(value); -+ info.bytes = ETH_ALEN; -+ info.read_post_process = u_boot_env_read_post_process_ethaddr; - } -- } - -- if (WARN_ON(idx != priv->ncells)) -- priv->ncells = idx; -+ nvmem_add_one_cell(nvmem, &info); -+ } - - return 0; - } -@@ -209,7 +199,6 @@ static int u_boot_env_probe(struct platf - struct device *dev = &pdev->dev; - struct device_node *np = dev->of_node; - struct u_boot_env *priv; -- int err; - - priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); - if (!priv) -@@ -224,17 +213,15 @@ static int u_boot_env_probe(struct platf - return PTR_ERR(priv->mtd); - } - -- err = u_boot_env_parse(priv); -- if (err) -- return err; -- - config.dev = dev; -- config.cells = priv->cells; -- config.ncells = priv->ncells; - config.priv = priv; - config.size = priv->mtd->size; - -- return PTR_ERR_OR_ZERO(devm_nvmem_register(dev, &config)); -+ priv->nvmem = devm_nvmem_register(dev, &config); -+ if (IS_ERR(priv->nvmem)) -+ return PTR_ERR(priv->nvmem); -+ -+ return u_boot_env_parse(priv); - } - - static const struct of_device_id u_boot_env_of_match_table[] = { diff --git a/target/linux/generic/backport-6.6/819-v6.8-0012-nvmem-u-boot-env-use-nvmem-device-helpers.patch b/target/linux/generic/backport-6.6/819-v6.8-0012-nvmem-u-boot-env-use-nvmem-device-helpers.patch deleted file mode 100644 index 70abc7cf1439..000000000000 --- a/target/linux/generic/backport-6.6/819-v6.8-0012-nvmem-u-boot-env-use-nvmem-device-helpers.patch +++ /dev/null @@ -1,81 +0,0 @@ -From a832556d23c5a11115f300011a5874d6107a0d62 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Date: Thu, 21 Dec 2023 18:34:19 +0100 -Subject: [PATCH] nvmem: u-boot-env: use nvmem device helpers -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Use nvmem_dev_size() and nvmem_device_read() to make this driver less -mtd dependent. - -Signed-off-by: Rafał Miłecki -Reviewed-by: Miquel Raynal -Link: https://lore.kernel.org/r/20231221173421.13737-4-zajec5@gmail.com -Signed-off-by: Greg Kroah-Hartman ---- - drivers/nvmem/u-boot-env.c | 23 +++++++++++++++-------- - 1 file changed, 15 insertions(+), 8 deletions(-) - ---- a/drivers/nvmem/u-boot-env.c -+++ b/drivers/nvmem/u-boot-env.c -@@ -127,27 +127,34 @@ static int u_boot_env_add_cells(struct u - - static int u_boot_env_parse(struct u_boot_env *priv) - { -+ struct nvmem_device *nvmem = priv->nvmem; - struct device *dev = priv->dev; - size_t crc32_data_offset; - size_t crc32_data_len; - size_t crc32_offset; - size_t data_offset; - size_t data_len; -+ size_t dev_size; - uint32_t crc32; - uint32_t calc; -- size_t bytes; - uint8_t *buf; -+ int bytes; - int err; - -- buf = kcalloc(1, priv->mtd->size, GFP_KERNEL); -+ dev_size = nvmem_dev_size(nvmem); -+ -+ buf = kcalloc(1, dev_size, GFP_KERNEL); - if (!buf) { - err = -ENOMEM; - goto err_out; - } - -- err = mtd_read(priv->mtd, 0, priv->mtd->size, &bytes, buf); -- if ((err && !mtd_is_bitflip(err)) || bytes != priv->mtd->size) { -- dev_err(dev, "Failed to read from mtd: %d\n", err); -+ bytes = nvmem_device_read(nvmem, 0, dev_size, buf); -+ if (bytes < 0) { -+ err = bytes; -+ goto err_kfree; -+ } else if (bytes != dev_size) { -+ err = -EIO; - goto err_kfree; - } - -@@ -169,8 +176,8 @@ static int u_boot_env_parse(struct u_boo - break; - } - crc32 = le32_to_cpu(*(__le32 *)(buf + crc32_offset)); -- crc32_data_len = priv->mtd->size - crc32_data_offset; -- data_len = priv->mtd->size - data_offset; -+ crc32_data_len = dev_size - crc32_data_offset; -+ data_len = dev_size - data_offset; - - calc = crc32(~0, buf + crc32_data_offset, crc32_data_len) ^ ~0L; - if (calc != crc32) { -@@ -179,7 +186,7 @@ static int u_boot_env_parse(struct u_boo - goto err_kfree; - } - -- buf[priv->mtd->size - 1] = '\0'; -+ buf[dev_size - 1] = '\0'; - err = u_boot_env_add_cells(priv, buf, data_offset, data_len); - if (err) - dev_err(dev, "Failed to add cells: %d\n", err); diff --git a/target/linux/generic/backport-6.6/819-v6.8-0013-nvmem-u-boot-env-improve-coding-style.patch b/target/linux/generic/backport-6.6/819-v6.8-0013-nvmem-u-boot-env-improve-coding-style.patch deleted file mode 100644 index 273cfed8743c..000000000000 --- a/target/linux/generic/backport-6.6/819-v6.8-0013-nvmem-u-boot-env-improve-coding-style.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 6bafe07c930676d6430be471310958070816a595 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Date: Thu, 21 Dec 2023 18:34:20 +0100 -Subject: [PATCH] nvmem: u-boot-env: improve coding style -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -1. Prefer kzalloc() over kcalloc() - See memory-allocation.rst which says: "to be on the safe side it's - best to use routines that set memory to zero, like kzalloc()" -2. Drop dev_err() for u_boot_env_add_cells() fail - It can fail only on -ENOMEM. We don't want to print error then. -3. Add extra "crc32_addr" variable - It makes code reading header's crc32 easier to understand / review. - -Signed-off-by: Rafał Miłecki -Reviewed-by: Miquel Raynal -Link: https://lore.kernel.org/r/20231221173421.13737-5-zajec5@gmail.com -Signed-off-by: Greg Kroah-Hartman ---- - drivers/nvmem/u-boot-env.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - ---- a/drivers/nvmem/u-boot-env.c -+++ b/drivers/nvmem/u-boot-env.c -@@ -132,6 +132,7 @@ static int u_boot_env_parse(struct u_boo - size_t crc32_data_offset; - size_t crc32_data_len; - size_t crc32_offset; -+ __le32 *crc32_addr; - size_t data_offset; - size_t data_len; - size_t dev_size; -@@ -143,7 +144,7 @@ static int u_boot_env_parse(struct u_boo - - dev_size = nvmem_dev_size(nvmem); - -- buf = kcalloc(1, dev_size, GFP_KERNEL); -+ buf = kzalloc(dev_size, GFP_KERNEL); - if (!buf) { - err = -ENOMEM; - goto err_out; -@@ -175,7 +176,8 @@ static int u_boot_env_parse(struct u_boo - data_offset = offsetof(struct u_boot_env_image_broadcom, data); - break; - } -- crc32 = le32_to_cpu(*(__le32 *)(buf + crc32_offset)); -+ crc32_addr = (__le32 *)(buf + crc32_offset); -+ crc32 = le32_to_cpu(*crc32_addr); - crc32_data_len = dev_size - crc32_data_offset; - data_len = dev_size - data_offset; - -@@ -188,8 +190,6 @@ static int u_boot_env_parse(struct u_boo - - buf[dev_size - 1] = '\0'; - err = u_boot_env_add_cells(priv, buf, data_offset, data_len); -- if (err) -- dev_err(dev, "Failed to add cells: %d\n", err); - - err_kfree: - kfree(buf); diff --git a/target/linux/generic/backport-6.6/822-v6.11-0001-nvmem-add-missing-MODULE_DESCRIPTION-macros.patch b/target/linux/generic/backport-6.6/822-v6.11-0001-nvmem-add-missing-MODULE_DESCRIPTION-macros.patch index a8ce832408f8..ec3fb14d60e9 100644 --- a/target/linux/generic/backport-6.6/822-v6.11-0001-nvmem-add-missing-MODULE_DESCRIPTION-macros.patch +++ b/target/linux/generic/backport-6.6/822-v6.11-0001-nvmem-add-missing-MODULE_DESCRIPTION-macros.patch @@ -39,7 +39,7 @@ Signed-off-by: Greg Kroah-Hartman MODULE_DEVICE_TABLE(of, brcm_nvram_of_match_table); --- a/drivers/nvmem/u-boot-env.c +++ b/drivers/nvmem/u-boot-env.c -@@ -249,5 +249,6 @@ static struct platform_driver u_boot_env +@@ -256,5 +256,6 @@ static struct platform_driver u_boot_env module_platform_driver(u_boot_env_driver); MODULE_AUTHOR("Rafał Miłecki"); diff --git a/target/linux/generic/backport-6.6/822-v6.11-0011-nvmem-u-boot-env-error-if-NVMEM-device-is-too-small.patch b/target/linux/generic/backport-6.6/822-v6.11-0011-nvmem-u-boot-env-error-if-NVMEM-device-is-too-small.patch deleted file mode 100644 index 70d420f205fb..000000000000 --- a/target/linux/generic/backport-6.6/822-v6.11-0011-nvmem-u-boot-env-error-if-NVMEM-device-is-too-small.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 8679e8b4a1ebdb40c4429e49368d29353e07b601 Mon Sep 17 00:00:00 2001 -From: John Thomson -Date: Mon, 2 Sep 2024 15:25:08 +0100 -Subject: [PATCH] nvmem: u-boot-env: error if NVMEM device is too small -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Verify data size before trying to parse it to avoid reading out of -buffer. This could happen in case of problems at MTD level or invalid DT -bindings. - -Signed-off-by: John Thomson -Cc: stable -Fixes: d5542923f200 ("nvmem: add driver handling U-Boot environment variables") -[rmilecki: simplify commit description & rebase] -Signed-off-by: Rafał Miłecki -Signed-off-by: Srinivas Kandagatla -Link: https://lore.kernel.org/r/20240902142510.71096-2-srinivas.kandagatla@linaro.org -Signed-off-by: Greg Kroah-Hartman ---- - drivers/nvmem/u-boot-env.c | 7 +++++++ - 1 file changed, 7 insertions(+) - ---- a/drivers/nvmem/u-boot-env.c -+++ b/drivers/nvmem/u-boot-env.c -@@ -176,6 +176,13 @@ static int u_boot_env_parse(struct u_boo - data_offset = offsetof(struct u_boot_env_image_broadcom, data); - break; - } -+ -+ if (dev_size < data_offset) { -+ dev_err(dev, "Device too small for u-boot-env\n"); -+ err = -EIO; -+ goto err_kfree; -+ } -+ - crc32_addr = (__le32 *)(buf + crc32_offset); - crc32 = le32_to_cpu(*crc32_addr); - crc32_data_len = dev_size - crc32_data_offset; diff --git a/target/linux/starfive/patches-6.6/0048-riscv-dts-starfive-Add-full-support-except-VIN-and-V.patch b/target/linux/starfive/patches-6.6/0048-riscv-dts-starfive-Add-full-support-except-VIN-and-V.patch index ad6626cd797f..75dd965c9403 100644 --- a/target/linux/starfive/patches-6.6/0048-riscv-dts-starfive-Add-full-support-except-VIN-and-V.patch +++ b/target/linux/starfive/patches-6.6/0048-riscv-dts-starfive-Add-full-support-except-VIN-and-V.patch @@ -57,7 +57,7 @@ Signed-off-by: Hal Feng }; &dvp_clk { -@@ -202,8 +231,28 @@ +@@ -202,6 +231,24 @@ status = "okay"; }; @@ -81,21 +81,8 @@ Signed-off-by: Hal Feng + &mmc0 { max-frequency = <100000000>; -+ assigned-clocks = <&syscrg JH7110_SYSCLK_SDIO0_SDCARD>; -+ assigned-clock-rates = <50000000>; - bus-width = <8>; - cap-mmc-highspeed; - mmc-ddr-1_8v; -@@ -220,6 +269,8 @@ - - &mmc1 { - max-frequency = <100000000>; -+ assigned-clocks = <&syscrg JH7110_SYSCLK_SDIO1_SDCARD>; -+ assigned-clock-rates = <50000000>; - bus-width = <4>; - no-sdio; - no-mmc; -@@ -231,6 +282,34 @@ + assigned-clocks = <&syscrg JH7110_SYSCLK_SDIO0_SDCARD>; +@@ -235,6 +282,34 @@ status = "okay"; }; @@ -130,7 +117,7 @@ Signed-off-by: Hal Feng &qspi { #address-cells = <1>; #size-cells = <0>; -@@ -336,6 +415,46 @@ +@@ -340,6 +415,46 @@ }; }; @@ -177,7 +164,7 @@ Signed-off-by: Hal Feng mmc0_pins: mmc0-0 { rst-pins { pinmux = ; }; };