]> err.no Git - linux-2.6/commitdiff
V4L/DVB (5476): Fix gpiomux array size
authorMauro Carvalho Chehab <mchehab@infradead.org>
Thu, 29 Mar 2007 01:37:20 +0000 (22:37 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Fri, 27 Apr 2007 18:45:09 +0000 (15:45 -0300)
there were several "magic" for loops, addressing gpiomux array size (4).
Adrian Bunk showed that one of the loops were wrong, going from 0 to 4.

This patch provides the right fix for this trouble, by using ARRAY_SIZE
on all places where we have a for loop using gpiomux.

Thanks to: Adrian Bunk <bunk@stusta.de> for pointing me about this trouble.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/bt8xx/bttv-cards.c

index 6addc42df045f77b8760aa185541a4b0c41f07f9..3d00d50d9cb97fdf7fd5ee3e4fd92e623c6e85b4 100644 (file)
@@ -2970,20 +2970,20 @@ void __devinit bttv_idcard(struct bttv *btv)
 
        if (UNSET != audiomux[0]) {
                gpiobits = 0;
-               for (i = 0; i < 4; i++) {
+               for (i = 0; i < ARRAY_SIZE(bttv_tvcards->gpiomux); i++) {
                        bttv_tvcards[btv->c.type].gpiomux[i] = audiomux[i];
                        gpiobits |= audiomux[i];
                }
        } else {
                gpiobits = audioall;
-               for (i = 0; i < 4; i++) {
+               for (i = 0; i < ARRAY_SIZE(bttv_tvcards->gpiomux); i++) {
                        bttv_tvcards[btv->c.type].gpiomux[i] = audioall;
                }
        }
        bttv_tvcards[btv->c.type].gpiomask = (UNSET != gpiomask) ? gpiomask : gpiobits;
        printk(KERN_INFO "bttv%d: gpio config override: mask=0x%x, mux=",
               btv->c.nr,bttv_tvcards[btv->c.type].gpiomask);
-       for (i = 0; i < 5; i++) {
+       for (i = 0; i < ARRAY_SIZE(bttv_tvcards->gpiomux); i++) {
                printk("%s0x%x", i ? "," : "", bttv_tvcards[btv->c.type].gpiomux[i]);
        }
        printk("\n");