Re: [PATCH 2/2] mtd: onenand: samsung: return an error if 'mtd_device_parse_register()' fails

From: Boris Brezillon
Date: Fri Dec 08 2017 - 16:24:52 EST


On Fri, 8 Dec 2017 22:11:05 +0100
Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> wrote:

> If 'mtd_device_parse_register()' fails, we still return 0 which mean
> success.
> Return the error code instead, as done in all the other error handling
> paths.
>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
> ---
> Compile tested-only
> ---
> drivers/mtd/onenand/samsung.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/mtd/onenand/samsung.c b/drivers/mtd/onenand/samsung.c
> index 04039b967d59..5410e654d3cf 100644
> --- a/drivers/mtd/onenand/samsung.c
> +++ b/drivers/mtd/onenand/samsung.c
> @@ -987,6 +987,10 @@ static int s3c_onenand_probe(struct platform_device *pdev)
> err = mtd_device_parse_register(mtd, NULL, NULL,
> pdata ? pdata->parts : NULL,
> pdata ? pdata->nr_parts : 0);
> + if (err) {
> + dev_err(&pdev->dev, "failed to parse partitions and register the MTD device\n");

And you should call onenand_release() here, to release the resources
allocated in onenand_scan().

> + return err;
> + }
>
> platform_set_drvdata(pdev, mtd);
>