lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Sat, 22 Sep 2012 01:59:44 +0100
From:	Paul Parsons <lost.distance@...oo.com>
To:	Anton Vorontsov <anton.vorontsov@...aro.org>
CC:	dwmw2@...radead.org, philipp.zabel@...il.com,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH] pda_power: remove ac_draw_failed goto and label

Hello Anton,

On 22/09/12 00:51, Anton Vorontsov wrote:
> On Fri, Sep 21, 2012 at 01:56:43AM +0100, Paul Parsons wrote:
>> A previous patch added the ac_draw_failed goto and label to
>> pda_power_probe(). The goto would be invoked after a failed call to
>> regulator_get().
>>
>> However the way ac_draw is used - always after a check for NULL -
>> suggests that a failed call to regulator_get() was not fatal.
>>
>> This patch removes the ac_draw_failed goto and label, partly reverting
>> the previous patch.
>>
>> This patch also removes the assignment of an error code to ret after a
>> failed call to regulator_get(), since the error code is now never used.
>>
>> Signed-off-by: Paul Parsons <lost.distance@...oo.com>
>> Cc: Philipp Zabel <philipp.zabel@...il.com>
>> ---
>>   drivers/power/pda_power.c |    3 ---
>>   1 files changed, 0 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/power/pda_power.c b/drivers/power/pda_power.c
>> index d3be834d..7df7c5f 100644
>> --- a/drivers/power/pda_power.c
>> +++ b/drivers/power/pda_power.c
>> @@ -284,9 +284,7 @@ static int pda_power_probe(struct platform_device *pdev)
>>   	ac_draw = regulator_get(dev, "ac_draw");
>>   	if (IS_ERR(ac_draw)) {
>>   		dev_dbg(dev, "couldn't get ac_draw regulator\n");
>> -		ret = PTR_ERR(ac_draw);
>>   		ac_draw = NULL;
>> -		goto ac_draw_failed;
>
> For some reason you have a bit different code, so your patch is not based
> on the battery tree. (In my tree ret and ac_draw assignments are swapped.)
> Maybe that's because I had to manually redo your first patch...
>
> Anyway, I repeated your patch by hand again and thus applied it.

Yes, in my first patch I had swapped the ret and ac_draw assignments
when I moved the regulator_get() call to before the update_charger()
call. This was because the original order of the assignments:

ac_draw = NULL;
ret = PTR_ERR(ac_draw);

is obviously incorrect; the ac_draw assignment overwrites the error
code that should be returned by PTR_ERR().

Anyway, thank you for sorting this out!

Regards,
Paul

> Thank you!
>
>>   	}
>>
>>   	update_status();
>> @@ -416,7 +414,6 @@ ac_supply_failed:
>>   		regulator_put(ac_draw);
>>   		ac_draw = NULL;
>>   	}
>> -ac_draw_failed:
>>   	if (pdata->exit)
>>   		pdata->exit(dev);
>>   init_failed:
>> --
>> 1.7.8.6

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ