potential compiler error, irqfunc caller sites update
authorYoann Padioleau <padator@wanadoo.fr>
Fri, 6 Jul 2007 09:39:56 +0000 (02:39 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Fri, 6 Jul 2007 17:23:43 +0000 (10:23 -0700)
In 7d12e780e003f93433d49ce78cfedf4b4c52adc5 David Howells performed
this evolution:
 "IRQ: Maintain regs pointer globally rather than passing to IRQ handlers"

He correctly updated many of the function definitions that were using this
extra regs pointer parameter but forgot to update some caller sites of
those functions.  The reason the modifications was not properly done on all
drivers is that some drivers were rarely compiled because they are for
AMIGA, or that some code sites were inside #ifdefs where the option is not
set or inside #if 0.

Here is the semantic patch that found the occurences
and fixed the problem.

@ rule1 @
identifier fn;
identifier irq, dev_id;
typedef irqreturn_t;
@@

static irqreturn_t fn(int irq, void *dev_id)
{
   ...
}

@@
identifier rule1.fn;
expression E1, E2, E3;
@@

 fn(E1, E2
-   ,E3
   )

Signed-off-by: Yoann Padioleau <padator@wanadoo.fr>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jeff Garzik <jeff@garzik.org>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/atm/firestream.c
drivers/net/arm/am79c961a.c
drivers/net/ixp2000/ixpdev.c
drivers/net/sb1250-mac.c
drivers/usb/misc/uss720.c

index 7f6d02ce1b5f53da024bddd9e1ef0976c593ad01..38b688f9f6a98166fef19efbbd81543b3e06005c 100644 (file)
@@ -1654,7 +1654,7 @@ static void fs_poll (unsigned long data)
 {
        struct fs_dev *dev = (struct fs_dev *) data;
   
-       fs_irq (0, dev, NULL);
+       fs_irq (0, dev);
        dev->timer.expires = jiffies + FS_POLL_FREQ;
        add_timer (&dev->timer);
 }
index 8f0d7ce503c929482d62021d193b00439adca983..2143eeb7a2b0fdf34143d8c14bfe0a623a5c7894 100644 (file)
@@ -634,7 +634,7 @@ static void am79c961_poll_controller(struct net_device *dev)
 {
        unsigned long flags;
        local_irq_save(flags);
-       am79c961_interrupt(dev->irq, dev, NULL);
+       am79c961_interrupt(dev->irq, dev);
        local_irq_restore(flags);
 }
 #endif
index 6683afc02aaa4412d537ca706235ab8c3c9749d3..d5f694fc4a216369e19f97a75a7f53caaebf386c 100644 (file)
@@ -222,7 +222,7 @@ static irqreturn_t ixpdev_interrupt(int irq, void *dev_id)
 static void ixpdev_poll_controller(struct net_device *dev)
 {
        disable_irq(IRQ_IXP2000_THDA0);
-       ixpdev_interrupt(IRQ_IXP2000_THDA0, dev, NULL);
+       ixpdev_interrupt(IRQ_IXP2000_THDA0, dev);
        enable_irq(IRQ_IXP2000_THDA0);
 }
 #endif
index 132e2148b21c6d5095ef1bd498df470d7fbdc936..e7fdcf15b5a72f88cf9961843afca4cbab4a3ecc 100644 (file)
@@ -1159,7 +1159,7 @@ static void sbmac_netpoll(struct net_device *netdev)
 
        __raw_writeq(0, sc->sbm_imr);
 
-       sbmac_intr(irq, netdev, NULL);
+       sbmac_intr(irq, netdev);
 
 #ifdef CONFIG_SBMAC_COALESCE
        __raw_writeq(((M_MAC_INT_EOP_COUNT | M_MAC_INT_EOP_TIMER) << S_MAC_TX_CH0) |
index 70250252ae2ae404d30f5583d4396a6e70f590fa..1a60f9c473ada6d7b2506ba015a62c35800c63af 100644 (file)
@@ -336,7 +336,7 @@ static int uss720_irq(int usbstatus, void *buffer, int len, void *dev_id)
        memcpy(priv->reg, buffer, 4);
        /* if nAck interrupts are enabled and we have an interrupt, call the interrupt procedure */
        if (priv->reg[2] & priv->reg[1] & 0x10)
-               parport_generic_irq(0, pp, NULL);
+               parport_generic_irq(0, pp);
        return 1;
 }
 #endif