[ARM] pxa: ensure mfp is in correct range in mfp_{read,write}
authorRoel Kluin <roel.kluin@gmail.com>
Fri, 13 Nov 2009 10:37:34 +0000 (11:37 +0100)
committerEric Miao <eric.y.miao@gmail.com>
Mon, 16 Nov 2009 16:50:10 +0000 (00:50 +0800)
Ensure we do not read/write outside array boundaries with a negative index.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
arch/arm/plat-pxa/mfp.c

index 9405d0379c850da2b39651a30ee228fb91113685..be58f9fe65b0db082b4b1c8af428dd6cca682a39 100644 (file)
@@ -207,7 +207,7 @@ unsigned long mfp_read(int mfp)
 {
        unsigned long val, flags;
 
-       BUG_ON(mfp >= MFP_PIN_MAX);
+       BUG_ON(mfp < 0 || mfp >= MFP_PIN_MAX);
 
        spin_lock_irqsave(&mfp_spin_lock, flags);
        val = mfpr_readl(mfp_table[mfp].mfpr_off);
@@ -220,7 +220,7 @@ void mfp_write(int mfp, unsigned long val)
 {
        unsigned long flags;
 
-       BUG_ON(mfp >= MFP_PIN_MAX);
+       BUG_ON(mfp < 0 || mfp >= MFP_PIN_MAX);
 
        spin_lock_irqsave(&mfp_spin_lock, flags);
        mfpr_writel(mfp_table[mfp].mfpr_off, val);