CRIS v32: Should index be positive?
Roel Kluin [Sun, 1 Nov 2009 13:46:26 +0000 (14:46 +0100)]
`port' is used as index for writing to pins during
allocation/deallocation. It should be positive.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Jesper Nilsson <jesper.nilsson@axis.com>

arch/cris/arch-v32/kernel/pinmux.c
arch/cris/arch-v32/mach-a3/pinmux.c
arch/cris/arch-v32/mach-fs/pinmux.c

index 6eb54ea..f6f3637 100644 (file)
@@ -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);
index 0a28c9b..18648ef 100644 (file)
@@ -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);
index d722ad9..38f29ee 100644 (file)
@@ -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);