Re: [PATCH v13 3/3] mtd: Add driver for concatenating devices

From: Miquel Raynal
Date: Wed Jun 04 2025 - 04:22:13 EST


Hi Amit,

> --- a/include/linux/mtd/concat.h
> +++ b/include/linux/mtd/concat.h
> @@ -28,5 +28,37 @@ struct mtd_info *mtd_concat_create(
>
> void mtd_concat_destroy(struct mtd_info *mtd);
>
> +/**
> + * mtd_virt_concat_node_create - Create a component for concatenation
> + *
> + * Returns a positive number representing the no. of devices found for
> + * concatenation, or a negative error code.
> + *
> + * List all the devices for concatenations found in DT and create a
> + * component for concatenation.
> + */
> +int mtd_virt_concat_node_create(void);
> +
> +/**
> + * mtd_virt_concat_add - add mtd_info object to the list of subdevices for concatenation
> + * @mtd: pointer to new MTD device info structure
> + *
> + * Returns true if the mtd_info object is added successfully else returns false.
> + *
> + * The mtd_info object is added to the list of subdevices for concatenation.
> + * It returns true if a match is found, and false if all subdevices have
> + * already been added or if the mtd_info object does not match any of the
> + * intended MTD devices.
> + */
> +bool mtd_virt_concat_add(struct mtd_info *mtd);
> +
> +/**
> + * mtd_virt_concat_create_join - Create and register the concatenated MTD device
> + *
> + * Returns on succes, or a negative error code.
> + *
> + * Creates and registers the concatenated MTD device
> + */
> +int mtd_virt_concat_create_join(void);
> #endif

Don't we miss some destructors? It seems that removing the mtd device or
the concat module might lead to an unstable state. Can you please test
these two situations?

Thanks,
Miquèl