Skip to content

Commit

Permalink
potential compiler error, irqfunc caller sites update
Browse files Browse the repository at this point in the history
In 7d12e78 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>
  • Loading branch information
Yoann Padioleau authored and Linus Torvalds committed Jul 6, 2007
1 parent 071922c commit 0da2f0f
Show file tree
Hide file tree
Showing 5 changed files with 5 additions and 5 deletions.
2 changes: 1 addition & 1 deletion drivers/atm/firestream.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/arm/am79c961a.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/ixp2000/ixpdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/sb1250-mac.c
Original file line number Diff line number Diff line change
Expand Up @@ -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) |
Expand Down
2 changes: 1 addition & 1 deletion drivers/usb/misc/uss720.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 0da2f0f

Please sign in to comment.