Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

potential compiler error, irqfunc caller sites update

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>

authored by

Yoann Padioleau and committed by
Linus Torvalds
0da2f0f1 071922c0

+5 -5
+1 -1
drivers/atm/firestream.c
··· 1654 1654 { 1655 1655 struct fs_dev *dev = (struct fs_dev *) data; 1656 1656 1657 - fs_irq (0, dev, NULL); 1657 + fs_irq (0, dev); 1658 1658 dev->timer.expires = jiffies + FS_POLL_FREQ; 1659 1659 add_timer (&dev->timer); 1660 1660 }
+1 -1
drivers/net/arm/am79c961a.c
··· 634 634 { 635 635 unsigned long flags; 636 636 local_irq_save(flags); 637 - am79c961_interrupt(dev->irq, dev, NULL); 637 + am79c961_interrupt(dev->irq, dev); 638 638 local_irq_restore(flags); 639 639 } 640 640 #endif
+1 -1
drivers/net/ixp2000/ixpdev.c
··· 222 222 static void ixpdev_poll_controller(struct net_device *dev) 223 223 { 224 224 disable_irq(IRQ_IXP2000_THDA0); 225 - ixpdev_interrupt(IRQ_IXP2000_THDA0, dev, NULL); 225 + ixpdev_interrupt(IRQ_IXP2000_THDA0, dev); 226 226 enable_irq(IRQ_IXP2000_THDA0); 227 227 } 228 228 #endif
+1 -1
drivers/net/sb1250-mac.c
··· 1159 1159 1160 1160 __raw_writeq(0, sc->sbm_imr); 1161 1161 1162 - sbmac_intr(irq, netdev, NULL); 1162 + sbmac_intr(irq, netdev); 1163 1163 1164 1164 #ifdef CONFIG_SBMAC_COALESCE 1165 1165 __raw_writeq(((M_MAC_INT_EOP_COUNT | M_MAC_INT_EOP_TIMER) << S_MAC_TX_CH0) |
+1 -1
drivers/usb/misc/uss720.c
··· 336 336 memcpy(priv->reg, buffer, 4); 337 337 /* if nAck interrupts are enabled and we have an interrupt, call the interrupt procedure */ 338 338 if (priv->reg[2] & priv->reg[1] & 0x10) 339 - parport_generic_irq(0, pp, NULL); 339 + parport_generic_irq(0, pp); 340 340 return 1; 341 341 } 342 342 #endif