* [PATCH v1] mtd: ubi: Fix rollback for explicit UBI device numbers
@ 2026-06-08 4:06 Yuho Choi
2026-06-08 4:45 ` Zhihao Cheng
0 siblings, 1 reply; 2+ messages in thread
From: Yuho Choi @ 2026-06-08 4:06 UTC (permalink / raw)
To: Richard Weinberger, Miquel Raynal
Cc: linux-mtd, Zhihao Cheng, Vignesh Raghavendra, linux-kernel, Yuho Choi
ubi_init_attach() rolls back module initialization failures by scanning
ubi_devices[0..i-1], where i is the mtd= parameter index. That assumes
the parameter index matches the UBI device number.
That assumption is not true when mtd= specifies an explicit ubi_num. A
successfully attached device can be stored at a higher ubi_devices[]
slot, and a later failure can miss it during rollback.
Scan the full ubi_devices[] array and detach by the actual array index,
matching the way UBI devices are stored.
Fixes: 83ff59a06663 ("UBI: support ubi_num on mtd.ubi command line")
Signed-off-by: Yuho Choi <dbgh9129@gmail.com>
---
drivers/mtd/ubi/build.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
index 674ad87809df..90c5c83d90e3 100644
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
@@ -1317,10 +1317,10 @@ static int __init ubi_init_attach(void)
return 0;
out_detach:
- for (k = 0; k < i; k++)
+ for (k = 0; k < UBI_MAX_DEVICES; k++)
if (ubi_devices[k]) {
mutex_lock(&ubi_devices_mutex);
- ubi_detach_mtd_dev(ubi_devices[k]->ubi_num, 1);
+ ubi_detach_mtd_dev(k, 1);
mutex_unlock(&ubi_devices_mutex);
}
return err;
--
2.43.0
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [PATCH v1] mtd: ubi: Fix rollback for explicit UBI device numbers
2026-06-08 4:06 [PATCH v1] mtd: ubi: Fix rollback for explicit UBI device numbers Yuho Choi
@ 2026-06-08 4:45 ` Zhihao Cheng
0 siblings, 0 replies; 2+ messages in thread
From: Zhihao Cheng @ 2026-06-08 4:45 UTC (permalink / raw)
To: Yuho Choi, Richard Weinberger, Miquel Raynal
Cc: linux-mtd, Vignesh Raghavendra, linux-kernel
在 2026/6/8 12:06, Yuho Choi 写道:
> ubi_init_attach() rolls back module initialization failures by scanning
> ubi_devices[0..i-1], where i is the mtd= parameter index. That assumes
> the parameter index matches the UBI device number.
>
> That assumption is not true when mtd= specifies an explicit ubi_num. A
> successfully attached device can be stored at a higher ubi_devices[]
> slot, and a later failure can miss it during rollback.
>
> Scan the full ubi_devices[] array and detach by the actual array index,
> matching the way UBI devices are stored.
>
> Fixes: 83ff59a06663 ("UBI: support ubi_num on mtd.ubi command line")
> Signed-off-by: Yuho Choi <dbgh9129@gmail.com>
> ---
> drivers/mtd/ubi/build.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
Reviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>
> diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
> index 674ad87809df..90c5c83d90e3 100644
> --- a/drivers/mtd/ubi/build.c
> +++ b/drivers/mtd/ubi/build.c
> @@ -1317,10 +1317,10 @@ static int __init ubi_init_attach(void)
> return 0;
>
> out_detach:
> - for (k = 0; k < i; k++)
> + for (k = 0; k < UBI_MAX_DEVICES; k++)
> if (ubi_devices[k]) {
> mutex_lock(&ubi_devices_mutex);
> - ubi_detach_mtd_dev(ubi_devices[k]->ubi_num, 1);
> + ubi_detach_mtd_dev(k, 1);
> mutex_unlock(&ubi_devices_mutex);
> }
> return err;
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-06-08 4:45 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-08 4:06 [PATCH v1] mtd: ubi: Fix rollback for explicit UBI device numbers Yuho Choi
2026-06-08 4:45 ` Zhihao Cheng
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®