[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <50688cb3-ae7a-5a15-4989-9933593ff11d@wanadoo.fr>
Date: Fri, 8 Dec 2017 22:15:58 +0100
From: Christophe JAILLET <christophe.jaillet@...adoo.fr>
To: Boris Brezillon <boris.brezillon@...e-electrons.com>
Cc: kyungmin.park@...sung.com, dwmw2@...radead.org,
computersforpeace@...il.com, marek.vasut@...il.com, richard@....at,
cyrille.pitchen@...ev4u.fr, linux-mtd@...ts.infradead.org,
linux-kernel@...r.kernel.org, kernel-janitors@...r.kernel.org
Subject: Re: [PATCH] mtd: onenand: Fix an error handling path in
's3c_onenand_probe(()'
Le 07/12/2017 à 17:55, Boris Brezillon a écrit :
> On Sat, 18 Nov 2017 14:27:23 +0100
> Christophe JAILLET <christophe.jaillet@...adoo.fr> wrote:
>
>> If 'platform_get_resource()' fails, we have to go through the error
>> handling path to release some resources.
>>
>> The unreachable 'goto ahb_resource_failed' is also wrong here and we should
>> go to 'resource_failed' instead.
>>
>> Signed-off-by: Christophe JAILLET <christophe.jaillet@...adoo.fr>
>> ---
>> drivers/mtd/onenand/samsung.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/mtd/onenand/samsung.c b/drivers/mtd/onenand/samsung.c
>> index af0ac1a7bf8f..164ebe2b1137 100644
>> --- a/drivers/mtd/onenand/samsung.c
>> +++ b/drivers/mtd/onenand/samsung.c
>> @@ -872,8 +872,8 @@ static int s3c_onenand_probe(struct platform_device *pdev)
>> r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>> if (!r) {
>> dev_err(&pdev->dev, "no memory resource defined\n");
>> - return -ENOENT;
>> - goto ahb_resource_failed;
>> + err = -ENOENT;
>> + goto resource_failed;
>> }
>>
> Sorry but I'd really prefer to convert the driver to use devm_
> functions instead of fixing a single error path.
Thanks for your comment. devm_ functions greatly simplify the code.
I've proposed an update for that.
If I'm correct, this also helped to find two other bugs (un-balanced
request_irq() and un-handled error code)
CJ
Powered by blists - more mailing lists