[PATCH v1] mtd: ubi: Fix rollback for explicit UBI device numbers

Zhihao Cheng chengzhihao1 at huawei.com
Sun Jun 7 21:45:03 PDT 2026


在 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 at gmail.com>
> ---
>   drivers/mtd/ubi/build.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
Reviewed-by: Zhihao Cheng <chengzhihao1 at 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;
> 




More information about the linux-mtd mailing list