[PATCH] CRIS v32: Should index be positive?

From: Roel Kluin
Date: Sun Nov 01 2009 - 08:35:35 EST


`port' is used as index for writing to pins during
allocation/deallocation. It should be positive.

Signed-off-by: Roel Kluin <roel.kluin@xxxxxxxxx>
---
arch/cris/arch-v32/kernel/pinmux.c | 4 ++--
arch/cris/arch-v32/mach-a3/pinmux.c | 2 +-
arch/cris/arch-v32/mach-fs/pinmux.c | 4 ++--
3 files changed, 5 insertions(+), 5 deletions(-)

Found by code analysis, is it required?

diff --git a/arch/cris/arch-v32/kernel/pinmux.c b/arch/cris/arch-v32/kernel/pinmux.c
index 6eb54ea..f6f3637 100644
--- a/arch/cris/arch-v32/kernel/pinmux.c
+++ b/arch/cris/arch-v32/kernel/pinmux.c
@@ -54,7 +54,7 @@ crisv32_pinmux_alloc(int port, int first_pin, int last_pin, enum pin_mode mode)

crisv32_pinmux_init();

- if (port > PORTS)
+ if (port > PORTS || port < 0)
return -EINVAL;

spin_lock_irqsave(&pinmux_lock, flags);
@@ -197,7 +197,7 @@ crisv32_pinmux_dealloc(int port, int first_pin, int last_pin)

crisv32_pinmux_init();

- if (port > PORTS)
+ if (port > PORTS || port < 0)
return -EINVAL;

spin_lock_irqsave(&pinmux_lock, flags);
diff --git a/arch/cris/arch-v32/mach-a3/pinmux.c b/arch/cris/arch-v32/mach-a3/pinmux.c
index 0a28c9b..18648ef 100644
--- a/arch/cris/arch-v32/mach-a3/pinmux.c
+++ b/arch/cris/arch-v32/mach-a3/pinmux.c
@@ -242,7 +242,7 @@ crisv32_pinmux_dealloc(int port, int first_pin, int last_pin)

crisv32_pinmux_init();

- if (port > PORTS)
+ if (port > PORTS || port < 0)
return -EINVAL;

spin_lock_irqsave(&pinmux_lock, flags);
diff --git a/arch/cris/arch-v32/mach-fs/pinmux.c b/arch/cris/arch-v32/mach-fs/pinmux.c
index d722ad9..38f29ee 100644
--- a/arch/cris/arch-v32/mach-fs/pinmux.c
+++ b/arch/cris/arch-v32/mach-fs/pinmux.c
@@ -54,7 +54,7 @@ crisv32_pinmux_alloc(int port, int first_pin, int last_pin, enum pin_mode mode)

crisv32_pinmux_init();

- if (port > PORTS)
+ if (port > PORTS || port < 0)
return -EINVAL;

spin_lock_irqsave(&pinmux_lock, flags);
@@ -195,7 +195,7 @@ int crisv32_pinmux_dealloc(int port, int first_pin, int last_pin)

crisv32_pinmux_init();

- if (port > PORTS)
+ if (port > PORTS || port < 0)
return -EINVAL;

spin_lock_irqsave(&pinmux_lock, flags);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/