diff mbox

char: xilinx_hwicap: missing error code if ioremap() fails

Message ID 20140611060433.GB7569@mwanda (mailing list archive)
State New, archived
Headers show

Commit Message

Dan Carpenter June 11, 2014, 6:04 a.m. UTC
Return -ENOMEM instead of success if ioremap() fails.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
Static checker stuff, I can't compile this.

Comments

Jingoo Han June 11, 2014, 6:40 a.m. UTC | #1
On Wednesday, June 11, 2014 3:05 PM, Dan Carpenter wrote:
> 
> Return -ENOMEM instead of success if ioremap() fails.
> 
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

Reviewed-by: Jingoo Han <jg1.han@samsung.com>

Best regards,
Jingoo Han

> ---
> Static checker stuff, I can't compile this.
> 
> diff --git a/drivers/char/xilinx_hwicap/xilinx_hwicap.c b/drivers/char/xilinx_hwicap/xilinx_hwicap.c
> index f6345f9..9b1a5ac 100644
> --- a/drivers/char/xilinx_hwicap/xilinx_hwicap.c
> +++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.c
> @@ -661,6 +661,7 @@ static int hwicap_setup(struct device *dev, int id,
>  	drvdata->base_address = ioremap(drvdata->mem_start, drvdata->mem_size);
>  	if (!drvdata->base_address) {
>  		dev_err(dev, "ioremap() failed\n");
> +		retval = -ENOMEM;
>  		goto failed2;
>  	}
>
Michal Simek June 17, 2014, 12:53 a.m. UTC | #2
On 06/11/2014 08:40 AM, Jingoo Han wrote:
> On Wednesday, June 11, 2014 3:05 PM, Dan Carpenter wrote:
>>
>> Return -ENOMEM instead of success if ioremap() fails.
>>
>> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> 
> Reviewed-by: Jingoo Han <jg1.han@samsung.com>
> 
> Best regards,
> Jingoo Han
> 
>> ---
>> Static checker stuff, I can't compile this.
>>
>> diff --git a/drivers/char/xilinx_hwicap/xilinx_hwicap.c b/drivers/char/xilinx_hwicap/xilinx_hwicap.c
>> index f6345f9..9b1a5ac 100644
>> --- a/drivers/char/xilinx_hwicap/xilinx_hwicap.c
>> +++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.c
>> @@ -661,6 +661,7 @@ static int hwicap_setup(struct device *dev, int id,
>>  	drvdata->base_address = ioremap(drvdata->mem_start, drvdata->mem_size);
>>  	if (!drvdata->base_address) {
>>  		dev_err(dev, "ioremap() failed\n");
>> +		retval = -ENOMEM;

Isn't it just better to do?

if (IS_ERR(drvdata->base_address)) {
	...
	retval = PTR_ERR(drvdata->base_address);
}

Thanks,
Michal
Dan Carpenter June 17, 2014, 6:03 a.m. UTC | #3
On Tue, Jun 17, 2014 at 02:53:27AM +0200, Michal Simek wrote:
> On 06/11/2014 08:40 AM, Jingoo Han wrote:
> > On Wednesday, June 11, 2014 3:05 PM, Dan Carpenter wrote:
> >>
> >> Return -ENOMEM instead of success if ioremap() fails.
> >>
> >> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> > 
> > Reviewed-by: Jingoo Han <jg1.han@samsung.com>
> > 
> > Best regards,
> > Jingoo Han
> > 
> >> ---
> >> Static checker stuff, I can't compile this.
> >>
> >> diff --git a/drivers/char/xilinx_hwicap/xilinx_hwicap.c b/drivers/char/xilinx_hwicap/xilinx_hwicap.c
> >> index f6345f9..9b1a5ac 100644
> >> --- a/drivers/char/xilinx_hwicap/xilinx_hwicap.c
> >> +++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.c
> >> @@ -661,6 +661,7 @@ static int hwicap_setup(struct device *dev, int id,
> >>  	drvdata->base_address = ioremap(drvdata->mem_start, drvdata->mem_size);
> >>  	if (!drvdata->base_address) {
> >>  		dev_err(dev, "ioremap() failed\n");
> >> +		retval = -ENOMEM;
> 
> Isn't it just better to do?
> 
> if (IS_ERR(drvdata->base_address)) {
> 	...
> 	retval = PTR_ERR(drvdata->base_address);
> }

ioremap() returns NULL on error, not an ERR_PTR.

regards,
dan carpenter
Michal Simek June 17, 2014, 10:11 p.m. UTC | #4
On 06/17/2014 08:03 AM, Dan Carpenter wrote:
> On Tue, Jun 17, 2014 at 02:53:27AM +0200, Michal Simek wrote:
>> On 06/11/2014 08:40 AM, Jingoo Han wrote:
>>> On Wednesday, June 11, 2014 3:05 PM, Dan Carpenter wrote:
>>>>
>>>> Return -ENOMEM instead of success if ioremap() fails.
>>>>
>>>> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
>>>
>>> Reviewed-by: Jingoo Han <jg1.han@samsung.com>
>>>
>>> Best regards,
>>> Jingoo Han
>>>
>>>> ---
>>>> Static checker stuff, I can't compile this.
>>>>
>>>> diff --git a/drivers/char/xilinx_hwicap/xilinx_hwicap.c b/drivers/char/xilinx_hwicap/xilinx_hwicap.c
>>>> index f6345f9..9b1a5ac 100644
>>>> --- a/drivers/char/xilinx_hwicap/xilinx_hwicap.c
>>>> +++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.c
>>>> @@ -661,6 +661,7 @@ static int hwicap_setup(struct device *dev, int id,
>>>>  	drvdata->base_address = ioremap(drvdata->mem_start, drvdata->mem_size);
>>>>  	if (!drvdata->base_address) {
>>>>  		dev_err(dev, "ioremap() failed\n");
>>>> +		retval = -ENOMEM;
>>
>> Isn't it just better to do?
>>
>> if (IS_ERR(drvdata->base_address)) {
>> 	...
>> 	retval = PTR_ERR(drvdata->base_address);
>> }
> 
> ioremap() returns NULL on error, not an ERR_PTR.

Ah ok. Fair enough.

Thanks,
Michal
diff mbox

Patch

diff --git a/drivers/char/xilinx_hwicap/xilinx_hwicap.c b/drivers/char/xilinx_hwicap/xilinx_hwicap.c
index f6345f9..9b1a5ac 100644
--- a/drivers/char/xilinx_hwicap/xilinx_hwicap.c
+++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.c
@@ -661,6 +661,7 @@  static int hwicap_setup(struct device *dev, int id,
 	drvdata->base_address = ioremap(drvdata->mem_start, drvdata->mem_size);
 	if (!drvdata->base_address) {
 		dev_err(dev, "ioremap() failed\n");
+		retval = -ENOMEM;
 		goto failed2;
 	}