]> git.ipfire.org Git - thirdparty/openwrt.git/commit
kernel: mtdsplit_uimage: return 0 if not fatal 19016/head
authorMarkus Stockhausen <markus.stockhausen@gmx.de>
Wed, 4 Jun 2025 07:19:40 +0000 (03:19 -0400)
committerRobert Marko <robimarko@gmail.com>
Wed, 4 Jun 2025 10:50:12 +0000 (12:50 +0200)
commitc78765213ecbe830204e2b75e15a739b7553887f
tree5ad65898993e4a832357e28b39f0c49701375406
parent53b87d660b11cfb05c5438df75007f0107cd5c97
kernel: mtdsplit_uimage: return 0 if not fatal

Introduced with Linux 6.7, in commit:
5c2f7727d437 ("mtd: mtdpart: check for subpartitions parsing result"),
when a parser returns an error, this will be passed up, and
consequently, all parent mtd partitions get torn down.

Adjust the mtdsplit_uimage driver to only return an error if there is a
critical problem in reading from the mtd device or allocating memory.
Otherwise return 0 to indicate that no partitions were found.
Also add logging to indicate what went wrong.

E.g. on Realtek devices that are booted for the first time through
initramfs with OpenWrt never installed before boot log will show

[    0.932985] Creating 8 MTD partitions on "spi0.0":
[    0.938412] 0x000000000000-0x000000080000 : "u-boot"
[    0.990151] 0x000000080000-0x0000000c0000 : "u-boot-env"
[    0.999907] 0x0000000c0000-0x000000100000 : "board-name"
[    1.019971] 0x000000100000-0x000000e80000 : "firmware"
[    1.051582] mtdsplit_uimage: no uImage found in "firmware"
[    1.069365] 0x000000e80000-0x000001000000 : "kernel2"
[    1.078959] 0x000001000000-0x000001040000 : "sysinfo"
[    1.099747] 0x000001040000-0x000001c40000 : "rootfs2"
[    1.119865] 0x000001c40000-0x000002000000 : "jffs2"

Similar issue was fixed before with commit ade045084bd3f8696
("kernel: mtdsplit_minor: return 0 if not fatal")

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19016
Signed-off-by: Robert Marko <robimarko@gmail.com>
target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c