2009-10-21 12:00:54

by Roel Kluin

[permalink] [raw]
Subject: [PATCH] mfd: fix check on unsigned in twl4030_configure_resource()

struct twl4030_resconfig members devgroup, type and type2 are
unsigned.

Signed-off-by: Roel Kluin <[email protected]>
---
`git grep devgroup' and notice that these are initialized to -1 in
arch/arm/mach-omap2/board-rx51-peripherals.c:383-397

Is this the right fix?

diff --git a/drivers/mfd/twl4030-power.c b/drivers/mfd/twl4030-power.c
index d423e0c..cc984a5 100644
--- a/drivers/mfd/twl4030-power.c
+++ b/drivers/mfd/twl4030-power.c
@@ -335,7 +335,7 @@ static int __init twl4030_configure_resource(struct twl4030_resconfig *rconfig)
return err;
}

- if (rconfig->devgroup >= 0) {
+ if (rconfig->devgroup != -1) {
grp &= ~DEVGROUP_MASK;
grp |= rconfig->devgroup << DEVGROUP_SHIFT;
err = twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
@@ -355,12 +355,12 @@ static int __init twl4030_configure_resource(struct twl4030_resconfig *rconfig)
return err;
}

- if (rconfig->type >= 0) {
+ if (rconfig->type != -1) {
type &= ~TYPE_MASK;
type |= rconfig->type << TYPE_SHIFT;
}

- if (rconfig->type2 >= 0) {
+ if (rconfig->type2 != -1) {
type &= ~TYPE2_MASK;
type |= rconfig->type2 << TYPE2_SHIFT;
}


2009-10-21 12:06:39

by Amit Kucheria

[permalink] [raw]
Subject: Re: [PATCH] mfd: fix check on unsigned in twl4030_configure_resource()

On Wed, Oct 21, 2009 at 3:11 PM, Roel Kluin <[email protected]> wrote:
> struct twl4030_resconfig members devgroup, type and type2 are
> unsigned.
>
> Signed-off-by: Roel Kluin <[email protected]>
> ---
> `git grep devgroup' and notice that these are initialized to -1 in
> arch/arm/mach-omap2/board-rx51-peripherals.c:383-397
>
> Is this the right fix?

Yes it is. Aaro beat you to it though [1] :)

Regards,
Amit

[1]. http://git.kernel.org/?p=linux/kernel/git/sameo/mfd-2.6.git;a=commitdiff;h=86db38dffd5903e2fbb4268e46fd8a07a5ceb8ac

> diff --git a/drivers/mfd/twl4030-power.c b/drivers/mfd/twl4030-power.c
> index d423e0c..cc984a5 100644
> --- a/drivers/mfd/twl4030-power.c
> +++ b/drivers/mfd/twl4030-power.c
> @@ -335,7 +335,7 @@ static int __init twl4030_configure_resource(struct twl4030_resconfig *rconfig)
> ? ? ? ? ? ? ? ?return err;
> ? ? ? ?}
>
> - ? ? ? if (rconfig->devgroup >= 0) {
> + ? ? ? if (rconfig->devgroup != -1) {
> ? ? ? ? ? ? ? ?grp &= ~DEVGROUP_MASK;
> ? ? ? ? ? ? ? ?grp |= rconfig->devgroup << DEVGROUP_SHIFT;
> ? ? ? ? ? ? ? ?err = twl4030_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER,
> @@ -355,12 +355,12 @@ static int __init twl4030_configure_resource(struct twl4030_resconfig *rconfig)
> ? ? ? ? ? ? ? ?return err;
> ? ? ? ?}
>
> - ? ? ? if (rconfig->type >= 0) {
> + ? ? ? if (rconfig->type != -1) {
> ? ? ? ? ? ? ? ?type &= ~TYPE_MASK;
> ? ? ? ? ? ? ? ?type |= rconfig->type << TYPE_SHIFT;
> ? ? ? ?}
>
> - ? ? ? if (rconfig->type2 >= 0) {
> + ? ? ? if (rconfig->type2 != -1) {
> ? ? ? ? ? ? ? ?type &= ~TYPE2_MASK;
> ? ? ? ? ? ? ? ?type |= rconfig->type2 << TYPE2_SHIFT;
> ? ? ? ?}
>