* [PATCH] Remove always-true tests in irq handlers
2007-10-26 9:40 [PATCH] Remove pointless casts from void pointers, Jeff Garzik
@ 2007-10-26 9:40 ` Jeff Garzik
2007-10-26 12:02 ` Ralf Baechle
2007-10-26 9:40 ` [PATCH] ARM: Misc minor interrupt handler cleanups Jeff Garzik
` (11 subsequent siblings)
12 siblings, 1 reply; 20+ messages in thread
From: Jeff Garzik @ 2007-10-26 9:40 UTC (permalink / raw)
To: LKML; +Cc: akpm, tony.luck, linux-ia64, netdev, ralf
In these drivers, dev_id is always non-NULL.
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
---
arch/ia64/hp/sim/simeth.c | 5 -----
arch/mips/pmc-sierra/msp71xx/msp_hwbutton.c | 5 +----
drivers/net/cpmac.c | 3 ---
drivers/net/ucc_geth.c | 3 ---
drivers/net/wan/farsync.c | 11 +++--------
5 files changed, 4 insertions(+), 23 deletions(-)
diff --git a/arch/ia64/hp/sim/simeth.c b/arch/ia64/hp/sim/simeth.c
index 08b117e..9898feb 100644
--- a/arch/ia64/hp/sim/simeth.c
+++ b/arch/ia64/hp/sim/simeth.c
@@ -497,11 +497,6 @@ simeth_interrupt(int irq, void *dev_id)
{
struct net_device *dev = dev_id;
- if ( dev == NULL ) {
- printk(KERN_WARNING "simeth: irq %d for unknown device\n", irq);
- return IRQ_NONE;
- }
-
/*
* very simple loop because we get interrupts only when receiving
*/
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_hwbutton.c b/arch/mips/pmc-sierra/msp71xx/msp_hwbutton.c
index ab96a2d..11769b5 100644
--- a/arch/mips/pmc-sierra/msp71xx/msp_hwbutton.c
+++ b/arch/mips/pmc-sierra/msp71xx/msp_hwbutton.c
@@ -126,9 +126,6 @@ static irqreturn_t hwbutton_handler(int irq, void *data)
struct hwbutton_interrupt *hirq = data;
unsigned long cic_ext = *CIC_EXT_CFG_REG;
- if (irq != hirq->irq)
- return IRQ_NONE;
-
if (CIC_EXT_IS_ACTIVE_HI(cic_ext, hirq->eirq)) {
/* Interrupt: pin is now HI */
CIC_EXT_SET_ACTIVE_LO(cic_ext, hirq->eirq);
@@ -164,7 +161,7 @@ static int msp_hwbutton_register(struct hwbutton_interrupt *hirq)
*CIC_EXT_CFG_REG = cic_ext;
return request_irq(hirq->irq, hwbutton_handler, IRQF_DISABLED,
- hirq->name, (void *)hirq);
+ hirq->name, hirq);
}
static int __init msp_hwbutton_setup(void)
diff --git a/drivers/net/cpmac.c b/drivers/net/cpmac.c
index 6fd95a2..91d1596 100644
--- a/drivers/net/cpmac.c
+++ b/drivers/net/cpmac.c
@@ -661,9 +661,6 @@ static irqreturn_t cpmac_irq(int irq, void *dev_id)
int queue;
u32 status;
- if (!dev)
- return IRQ_NONE;
-
priv = netdev_priv(dev);
status = cpmac_read(priv->regs, CPMAC_MAC_INT_VECTOR);
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
index 9741d61..2243d34 100644
--- a/drivers/net/ucc_geth.c
+++ b/drivers/net/ucc_geth.c
@@ -3621,9 +3621,6 @@ static irqreturn_t ucc_geth_irq_handler(int irq, void *info)
ugeth_vdbg("%s: IN", __FUNCTION__);
- if (!ugeth)
- return IRQ_NONE;
-
uccf = ugeth->uccf;
ug_info = ugeth->ug_info;
diff --git a/drivers/net/wan/farsync.c b/drivers/net/wan/farsync.c
index 12dae8e..cf27bf4 100644
--- a/drivers/net/wan/farsync.c
+++ b/drivers/net/wan/farsync.c
@@ -1498,9 +1498,9 @@ do_bottom_half_rx(struct fst_card_info *card)
* Dev_id is our fst_card_info pointer
*/
static irqreturn_t
-fst_intr(int irq, void *dev_id)
+fst_intr(int dummy, void *dev_id)
{
- struct fst_card_info *card;
+ struct fst_card_info *card = dev_id;
struct fst_port_info *port;
int rdidx; /* Event buffer indices */
int wridx;
@@ -1509,17 +1509,12 @@ fst_intr(int irq, void *dev_id)
unsigned int do_card_interrupt;
unsigned int int_retry_count;
- if ((card = dev_id) == NULL) {
- dbg(DBG_INTR, "intr: spurious %d\n", irq);
- return IRQ_NONE;
- }
-
/*
* Check to see if the interrupt was for this card
* return if not
* Note that the call to clear the interrupt is important
*/
- dbg(DBG_INTR, "intr: %d %p\n", irq, card);
+ dbg(DBG_INTR, "intr: %d %p\n", card->irq, card);
if (card->state != FST_RUNNING) {
printk_err
("Interrupt received for card %d in a non running state (%d)\n",
--
1.5.2.4
^ permalink raw reply related [flat|nested] 20+ messages in thread* [PATCH] ARM: Misc minor interrupt handler cleanups
2007-10-26 9:40 [PATCH] Remove pointless casts from void pointers, Jeff Garzik
2007-10-26 9:40 ` [PATCH] Remove always-true tests in irq handlers Jeff Garzik
@ 2007-10-26 9:40 ` Jeff Garzik
2007-10-26 21:56 ` Lennert Buytenhek
2007-10-26 9:40 ` [PATCH] IA64, PPC, SPARC: minor irq " Jeff Garzik
` (10 subsequent siblings)
12 siblings, 1 reply; 20+ messages in thread
From: Jeff Garzik @ 2007-10-26 9:40 UTC (permalink / raw)
To: LKML; +Cc: akpm, rmk, kernel
mach-integrator/pci_v3.c: no need to reference 'irq' arg, its constant
mach-omap1/pm.c: remove extra whitespace
arch/arm/mach-sa1100/ssp.c: remove braces around single C stmt
arch/arm/plat-omap/mcbsp.c:
- remove pointless casts from void*
- make longer lines more readable
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
---
arch/arm/mach-integrator/pci_v3.c | 8 +++++---
arch/arm/mach-omap1/pm.c | 2 +-
arch/arm/mach-sa1100/ssp.c | 3 +--
arch/arm/plat-omap/mcbsp.c | 20 ++++++++++++--------
4 files changed, 19 insertions(+), 14 deletions(-)
diff --git a/arch/arm/mach-integrator/pci_v3.c b/arch/arm/mach-integrator/pci_v3.c
index d4d8134..d55fa4e 100644
--- a/arch/arm/mach-integrator/pci_v3.c
+++ b/arch/arm/mach-integrator/pci_v3.c
@@ -440,7 +440,7 @@ v3_pci_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
return 1;
}
-static irqreturn_t v3_irq(int irq, void *devid)
+static irqreturn_t v3_irq(int dummy, void *devid)
{
#ifdef CONFIG_DEBUG_LL
struct pt_regs *regs = get_irq_regs();
@@ -448,8 +448,10 @@ static irqreturn_t v3_irq(int irq, void *devid)
unsigned long instr = *(unsigned long *)pc;
char buf[128];
- sprintf(buf, "V3 int %d: pc=0x%08lx [%08lx] LBFADDR=%08x LBFCODE=%02x ISTAT=%02x\n", irq,
- pc, instr, __raw_readl(SC_LBFADDR), __raw_readl(SC_LBFCODE) & 255,
+ sprintf(buf, "V3 int %d: pc=0x%08lx [%08lx] LBFADDR=%08x LBFCODE=%02x "
+ "ISTAT=%02x\n", IRQ_AP_V3INT, pc, instr,
+ __raw_readl(SC_LBFADDR),
+ __raw_readl(SC_LBFCODE) & 255,
v3_readb(V3_LB_ISTAT));
printascii(buf);
#endif
diff --git a/arch/arm/mach-omap1/pm.c b/arch/arm/mach-omap1/pm.c
index 3bf01e2..94c299b 100644
--- a/arch/arm/mach-omap1/pm.c
+++ b/arch/arm/mach-omap1/pm.c
@@ -646,7 +646,7 @@ static void omap_pm_finish(void)
}
-static irqreturn_t omap_wakeup_interrupt(int irq, void *dev)
+static irqreturn_t omap_wakeup_interrupt(int irq, void *dev)
{
return IRQ_HANDLED;
}
diff --git a/arch/arm/mach-sa1100/ssp.c b/arch/arm/mach-sa1100/ssp.c
index 59703c6..06206ce 100644
--- a/arch/arm/mach-sa1100/ssp.c
+++ b/arch/arm/mach-sa1100/ssp.c
@@ -29,9 +29,8 @@ static irqreturn_t ssp_interrupt(int irq, void *dev_id)
{
unsigned int status = Ser4SSSR;
- if (status & SSSR_ROR) {
+ if (status & SSSR_ROR)
printk(KERN_WARNING "SSP: receiver overrun\n");
- }
Ser4SSSR = SSSR_ROR;
diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
index f7b9ccd..2af5bd5 100644
--- a/arch/arm/plat-omap/mcbsp.c
+++ b/arch/arm/plat-omap/mcbsp.c
@@ -98,9 +98,10 @@ static void omap_mcbsp_dump_reg(u8 id)
static irqreturn_t omap_mcbsp_tx_irq_handler(int irq, void *dev_id)
{
- struct omap_mcbsp * mcbsp_tx = (struct omap_mcbsp *)(dev_id);
+ struct omap_mcbsp *mcbsp_tx = dev_id;
- DBG("TX IRQ callback : 0x%x\n", OMAP_MCBSP_READ(mcbsp_tx->io_base, SPCR2));
+ DBG("TX IRQ callback : 0x%x\n",
+ OMAP_MCBSP_READ(mcbsp_tx->io_base, SPCR2));
complete(&mcbsp_tx->tx_irq_completion);
return IRQ_HANDLED;
@@ -108,9 +109,10 @@ static irqreturn_t omap_mcbsp_tx_irq_handler(int irq, void *dev_id)
static irqreturn_t omap_mcbsp_rx_irq_handler(int irq, void *dev_id)
{
- struct omap_mcbsp * mcbsp_rx = (struct omap_mcbsp *)(dev_id);
+ struct omap_mcbsp *mcbsp_rx = dev_id;
- DBG("RX IRQ callback : 0x%x\n", OMAP_MCBSP_READ(mcbsp_rx->io_base, SPCR2));
+ DBG("RX IRQ callback : 0x%x\n",
+ OMAP_MCBSP_READ(mcbsp_rx->io_base, SPCR2));
complete(&mcbsp_rx->rx_irq_completion);
return IRQ_HANDLED;
@@ -118,9 +120,10 @@ static irqreturn_t omap_mcbsp_rx_irq_handler(int irq, void *dev_id)
static void omap_mcbsp_tx_dma_callback(int lch, u16 ch_status, void *data)
{
- struct omap_mcbsp * mcbsp_dma_tx = (struct omap_mcbsp *)(data);
+ struct omap_mcbsp *mcbsp_dma_tx = data;
- DBG("TX DMA callback : 0x%x\n", OMAP_MCBSP_READ(mcbsp_dma_tx->io_base, SPCR2));
+ DBG("TX DMA callback : 0x%x\n",
+ OMAP_MCBSP_READ(mcbsp_dma_tx->io_base, SPCR2));
/* We can free the channels */
omap_free_dma(mcbsp_dma_tx->dma_tx_lch);
@@ -131,9 +134,10 @@ static void omap_mcbsp_tx_dma_callback(int lch, u16 ch_status, void *data)
static void omap_mcbsp_rx_dma_callback(int lch, u16 ch_status, void *data)
{
- struct omap_mcbsp * mcbsp_dma_rx = (struct omap_mcbsp *)(data);
+ struct omap_mcbsp *mcbsp_dma_rx = data;
- DBG("RX DMA callback : 0x%x\n", OMAP_MCBSP_READ(mcbsp_dma_rx->io_base, SPCR2));
+ DBG("RX DMA callback : 0x%x\n",
+ OMAP_MCBSP_READ(mcbsp_dma_rx->io_base, SPCR2));
/* We can free the channels */
omap_free_dma(mcbsp_dma_rx->dma_rx_lch);
--
1.5.2.4
^ permalink raw reply related [flat|nested] 20+ messages in thread* Re: [PATCH] ARM: Misc minor interrupt handler cleanups
2007-10-26 9:40 ` [PATCH] ARM: Misc minor interrupt handler cleanups Jeff Garzik
@ 2007-10-26 21:56 ` Lennert Buytenhek
0 siblings, 0 replies; 20+ messages in thread
From: Lennert Buytenhek @ 2007-10-26 21:56 UTC (permalink / raw)
To: Jeff Garzik; +Cc: LKML, akpm, rmk, kernel
On Fri, Oct 26, 2007 at 05:40:25AM -0400, Jeff Garzik wrote:
> mach-integrator/pci_v3.c: no need to reference 'irq' arg, its constant
>
> mach-omap1/pm.c: remove extra whitespace
>
> arch/arm/mach-sa1100/ssp.c: remove braces around single C stmt
>
> arch/arm/plat-omap/mcbsp.c:
> - remove pointless casts from void*
> - make longer lines more readable
>
> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
FWIW
Acked-by: Lennert Buytenhek <buytenh@wantstofly.org>
> ---
> arch/arm/mach-integrator/pci_v3.c | 8 +++++---
> arch/arm/mach-omap1/pm.c | 2 +-
> arch/arm/mach-sa1100/ssp.c | 3 +--
> arch/arm/plat-omap/mcbsp.c | 20 ++++++++++++--------
> 4 files changed, 19 insertions(+), 14 deletions(-)
>
> diff --git a/arch/arm/mach-integrator/pci_v3.c b/arch/arm/mach-integrator/pci_v3.c
> index d4d8134..d55fa4e 100644
> --- a/arch/arm/mach-integrator/pci_v3.c
> +++ b/arch/arm/mach-integrator/pci_v3.c
> @@ -440,7 +440,7 @@ v3_pci_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
> return 1;
> }
>
> -static irqreturn_t v3_irq(int irq, void *devid)
> +static irqreturn_t v3_irq(int dummy, void *devid)
> {
> #ifdef CONFIG_DEBUG_LL
> struct pt_regs *regs = get_irq_regs();
> @@ -448,8 +448,10 @@ static irqreturn_t v3_irq(int irq, void *devid)
> unsigned long instr = *(unsigned long *)pc;
> char buf[128];
>
> - sprintf(buf, "V3 int %d: pc=0x%08lx [%08lx] LBFADDR=%08x LBFCODE=%02x ISTAT=%02x\n", irq,
> - pc, instr, __raw_readl(SC_LBFADDR), __raw_readl(SC_LBFCODE) & 255,
> + sprintf(buf, "V3 int %d: pc=0x%08lx [%08lx] LBFADDR=%08x LBFCODE=%02x "
> + "ISTAT=%02x\n", IRQ_AP_V3INT, pc, instr,
> + __raw_readl(SC_LBFADDR),
> + __raw_readl(SC_LBFCODE) & 255,
> v3_readb(V3_LB_ISTAT));
> printascii(buf);
> #endif
> diff --git a/arch/arm/mach-omap1/pm.c b/arch/arm/mach-omap1/pm.c
> index 3bf01e2..94c299b 100644
> --- a/arch/arm/mach-omap1/pm.c
> +++ b/arch/arm/mach-omap1/pm.c
> @@ -646,7 +646,7 @@ static void omap_pm_finish(void)
> }
>
>
> -static irqreturn_t omap_wakeup_interrupt(int irq, void *dev)
> +static irqreturn_t omap_wakeup_interrupt(int irq, void *dev)
> {
> return IRQ_HANDLED;
> }
> diff --git a/arch/arm/mach-sa1100/ssp.c b/arch/arm/mach-sa1100/ssp.c
> index 59703c6..06206ce 100644
> --- a/arch/arm/mach-sa1100/ssp.c
> +++ b/arch/arm/mach-sa1100/ssp.c
> @@ -29,9 +29,8 @@ static irqreturn_t ssp_interrupt(int irq, void *dev_id)
> {
> unsigned int status = Ser4SSSR;
>
> - if (status & SSSR_ROR) {
> + if (status & SSSR_ROR)
> printk(KERN_WARNING "SSP: receiver overrun\n");
> - }
>
> Ser4SSSR = SSSR_ROR;
>
> diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
> index f7b9ccd..2af5bd5 100644
> --- a/arch/arm/plat-omap/mcbsp.c
> +++ b/arch/arm/plat-omap/mcbsp.c
> @@ -98,9 +98,10 @@ static void omap_mcbsp_dump_reg(u8 id)
>
> static irqreturn_t omap_mcbsp_tx_irq_handler(int irq, void *dev_id)
> {
> - struct omap_mcbsp * mcbsp_tx = (struct omap_mcbsp *)(dev_id);
> + struct omap_mcbsp *mcbsp_tx = dev_id;
>
> - DBG("TX IRQ callback : 0x%x\n", OMAP_MCBSP_READ(mcbsp_tx->io_base, SPCR2));
> + DBG("TX IRQ callback : 0x%x\n",
> + OMAP_MCBSP_READ(mcbsp_tx->io_base, SPCR2));
>
> complete(&mcbsp_tx->tx_irq_completion);
> return IRQ_HANDLED;
> @@ -108,9 +109,10 @@ static irqreturn_t omap_mcbsp_tx_irq_handler(int irq, void *dev_id)
>
> static irqreturn_t omap_mcbsp_rx_irq_handler(int irq, void *dev_id)
> {
> - struct omap_mcbsp * mcbsp_rx = (struct omap_mcbsp *)(dev_id);
> + struct omap_mcbsp *mcbsp_rx = dev_id;
>
> - DBG("RX IRQ callback : 0x%x\n", OMAP_MCBSP_READ(mcbsp_rx->io_base, SPCR2));
> + DBG("RX IRQ callback : 0x%x\n",
> + OMAP_MCBSP_READ(mcbsp_rx->io_base, SPCR2));
>
> complete(&mcbsp_rx->rx_irq_completion);
> return IRQ_HANDLED;
> @@ -118,9 +120,10 @@ static irqreturn_t omap_mcbsp_rx_irq_handler(int irq, void *dev_id)
>
> static void omap_mcbsp_tx_dma_callback(int lch, u16 ch_status, void *data)
> {
> - struct omap_mcbsp * mcbsp_dma_tx = (struct omap_mcbsp *)(data);
> + struct omap_mcbsp *mcbsp_dma_tx = data;
>
> - DBG("TX DMA callback : 0x%x\n", OMAP_MCBSP_READ(mcbsp_dma_tx->io_base, SPCR2));
> + DBG("TX DMA callback : 0x%x\n",
> + OMAP_MCBSP_READ(mcbsp_dma_tx->io_base, SPCR2));
>
> /* We can free the channels */
> omap_free_dma(mcbsp_dma_tx->dma_tx_lch);
> @@ -131,9 +134,10 @@ static void omap_mcbsp_tx_dma_callback(int lch, u16 ch_status, void *data)
>
> static void omap_mcbsp_rx_dma_callback(int lch, u16 ch_status, void *data)
> {
> - struct omap_mcbsp * mcbsp_dma_rx = (struct omap_mcbsp *)(data);
> + struct omap_mcbsp *mcbsp_dma_rx = data;
>
> - DBG("RX DMA callback : 0x%x\n", OMAP_MCBSP_READ(mcbsp_dma_rx->io_base, SPCR2));
> + DBG("RX DMA callback : 0x%x\n",
> + OMAP_MCBSP_READ(mcbsp_dma_rx->io_base, SPCR2));
>
> /* We can free the channels */
> omap_free_dma(mcbsp_dma_rx->dma_rx_lch);
> --
> 1.5.2.4
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH] IA64, PPC, SPARC: minor irq handler cleanups
2007-10-26 9:40 [PATCH] Remove pointless casts from void pointers, Jeff Garzik
2007-10-26 9:40 ` [PATCH] Remove always-true tests in irq handlers Jeff Garzik
2007-10-26 9:40 ` [PATCH] ARM: Misc minor interrupt handler cleanups Jeff Garzik
@ 2007-10-26 9:40 ` Jeff Garzik
2007-10-26 9:44 ` Kumar Gala
2007-10-26 9:40 ` [PATCH] media/video/planb: fix obvious interrupt handling bugs Jeff Garzik
` (9 subsequent siblings)
12 siblings, 1 reply; 20+ messages in thread
From: Jeff Garzik @ 2007-10-26 9:40 UTC (permalink / raw)
To: LKML; +Cc: akpm, davem, tony.luck, linux-ia64, paulus, benh, galak
ia64/sn/kernel/huberror.c:
- remove pointless void* cast
- add KERN_xxx prefix
ia64/sn/pci/tioce_provider.c: start functions at column zero
ppc/8xx_io/fec.c: kill prototype, remove extra whitespace
ppc/platforms/85xx/*
'irq' argument in irq handler is used purely as a temporary
variable. Update the function to reflect this usage, changing
the first arg's name from 'irq' to 'dummy'
ppc/platforms/sbc82xx.c: ditto
sparc/kernel/time.c: mark timer_interrupt() static (from DaveM)
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
---
arch/ia64/sn/kernel/huberror.c | 4 ++--
arch/ia64/sn/pci/tioce_provider.c | 6 ++++--
arch/ppc/8xx_io/fec.c | 3 +--
arch/ppc/platforms/85xx/mpc8560_ads.c | 4 +++-
arch/ppc/platforms/85xx/mpc85xx_cds_common.c | 4 +++-
arch/ppc/platforms/85xx/stx_gp3.c | 4 +++-
arch/ppc/platforms/85xx/tqm85xx.c | 4 +++-
arch/ppc/platforms/sbc82xx.c | 4 +++-
arch/sparc/kernel/time.c | 2 +-
9 files changed, 23 insertions(+), 12 deletions(-)
diff --git a/arch/ia64/sn/kernel/huberror.c b/arch/ia64/sn/kernel/huberror.c
index b663168..fc217c3 100644
--- a/arch/ia64/sn/kernel/huberror.c
+++ b/arch/ia64/sn/kernel/huberror.c
@@ -187,8 +187,8 @@ void hub_error_init(struct hubdev_info *hubdev_info)
{
if (request_irq(SGI_II_ERROR, hub_eint_handler, IRQF_SHARED,
- "SN_hub_error", (void *)hubdev_info)) {
- printk("hub_error_init: Failed to request_irq for 0x%p\n",
+ "SN_hub_error", hubdev_info)) {
+ printk(KERN_ERR "hub_error_init: Failed to request_irq for 0x%p\n",
hubdev_info);
return;
}
diff --git a/arch/ia64/sn/pci/tioce_provider.c b/arch/ia64/sn/pci/tioce_provider.c
index cee9379..714d6df 100644
--- a/arch/ia64/sn/pci/tioce_provider.c
+++ b/arch/ia64/sn/pci/tioce_provider.c
@@ -655,7 +655,8 @@ tioce_dma(struct pci_dev *pdev, u64 paddr, size_t byte_count, int dma_flags)
*
* Simply call tioce_do_dma_map() to create a map with the barrier bit set
* in the address.
- */ static u64
+ */
+static u64
tioce_dma_consistent(struct pci_dev *pdev, u64 paddr, size_t byte_count, int dma_flags)
{
return tioce_do_dma_map(pdev, paddr, byte_count, 1, dma_flags);
@@ -668,7 +669,8 @@ tioce_dma_consistent(struct pci_dev *pdev, u64 paddr, size_t byte_count, int dma
*
* Handle a CE error interrupt. Simply a wrapper around a SAL call which
* defers processing to the SGI prom.
- */ static irqreturn_t
+ */
+static irqreturn_t
tioce_error_intr_handler(int irq, void *arg)
{
struct tioce_common *soft = arg;
diff --git a/arch/ppc/8xx_io/fec.c b/arch/ppc/8xx_io/fec.c
index 0288279..b31897d 100644
--- a/arch/ppc/8xx_io/fec.c
+++ b/arch/ppc/8xx_io/fec.c
@@ -199,7 +199,6 @@ static int fec_enet_start_xmit(struct sk_buff *skb, struct net_device *dev);
#ifdef CONFIG_USE_MDIO
static void fec_enet_mii(struct net_device *dev);
#endif /* CONFIG_USE_MDIO */
-static irqreturn_t fec_enet_interrupt(int irq, void * dev_id);
#ifdef CONFIG_FEC_PACKETHOOK
static void fec_enet_tx(struct net_device *dev, __u32 regval);
static void fec_enet_rx(struct net_device *dev, __u32 regval);
@@ -472,7 +471,7 @@ fec_timeout(struct net_device *dev)
* This is called from the MPC core interrupt.
*/
static irqreturn_t
-fec_enet_interrupt(int irq, void * dev_id)
+fec_enet_interrupt(int irq, void *dev_id)
{
struct net_device *dev = dev_id;
volatile fec_t *fecp;
diff --git a/arch/ppc/platforms/85xx/mpc8560_ads.c b/arch/ppc/platforms/85xx/mpc8560_ads.c
index 3a06046..9426293 100644
--- a/arch/ppc/platforms/85xx/mpc8560_ads.c
+++ b/arch/ppc/platforms/85xx/mpc8560_ads.c
@@ -211,8 +211,10 @@ mpc8560ads_setup_arch(void)
#endif
}
-static irqreturn_t cpm2_cascade(int irq, void *dev_id)
+static irqreturn_t cpm2_cascade(int dummy, void *dev_id)
{
+ int irq;
+
while ((irq = cpm2_get_irq()) >= 0)
__do_IRQ(irq);
return IRQ_HANDLED;
diff --git a/arch/ppc/platforms/85xx/mpc85xx_cds_common.c b/arch/ppc/platforms/85xx/mpc85xx_cds_common.c
index 2d59eb7..791fef0 100644
--- a/arch/ppc/platforms/85xx/mpc85xx_cds_common.c
+++ b/arch/ppc/platforms/85xx/mpc85xx_cds_common.c
@@ -127,8 +127,10 @@ mpc85xx_cds_show_cpuinfo(struct seq_file *m)
}
#ifdef CONFIG_CPM2
-static irqreturn_t cpm2_cascade(int irq, void *dev_id)
+static irqreturn_t cpm2_cascade(int dummy, void *dev_id)
{
+ int irq;
+
while((irq = cpm2_get_irq()) >= 0)
__do_IRQ(irq);
return IRQ_HANDLED;
diff --git a/arch/ppc/platforms/85xx/stx_gp3.c b/arch/ppc/platforms/85xx/stx_gp3.c
index b1f5b73..7444f85 100644
--- a/arch/ppc/platforms/85xx/stx_gp3.c
+++ b/arch/ppc/platforms/85xx/stx_gp3.c
@@ -156,8 +156,10 @@ gp3_setup_arch(void)
printk ("bi_immr_base = %8.8lx\n", binfo->bi_immr_base);
}
-static irqreturn_t cpm2_cascade(int irq, void *dev_id)
+static irqreturn_t cpm2_cascade(int dummy, void *dev_id)
{
+ int irq;
+
while ((irq = cpm2_get_irq()) >= 0)
__do_IRQ(irq);
diff --git a/arch/ppc/platforms/85xx/tqm85xx.c b/arch/ppc/platforms/85xx/tqm85xx.c
index 4ee2bd1..61e3429 100644
--- a/arch/ppc/platforms/85xx/tqm85xx.c
+++ b/arch/ppc/platforms/85xx/tqm85xx.c
@@ -181,8 +181,10 @@ tqm85xx_setup_arch(void)
}
#ifdef CONFIG_MPC8560
-static irqreturn_t cpm2_cascade(int irq, void *dev_id)
+static irqreturn_t cpm2_cascade(int dummy, void *dev_id)
{
+ int irq;
+
while ((irq = cpm2_get_irq()) >= 0)
__do_IRQ(irq);
return IRQ_HANDLED;
diff --git a/arch/ppc/platforms/sbc82xx.c b/arch/ppc/platforms/sbc82xx.c
index cc0935c..0df6aac 100644
--- a/arch/ppc/platforms/sbc82xx.c
+++ b/arch/ppc/platforms/sbc82xx.c
@@ -121,8 +121,10 @@ struct hw_interrupt_type sbc82xx_i8259_ic = {
.end = sbc82xx_i8259_end_irq,
};
-static irqreturn_t sbc82xx_i8259_demux(int irq, void *dev_id)
+static irqreturn_t sbc82xx_i8259_demux(int dummy, void *dev_id)
{
+ int irq;
+
spin_lock(&sbc82xx_i8259_lock);
sbc82xx_i8259_map[0] = 0x0c; /* OCW3: Read IR register on RD# pulse */
diff --git a/arch/sparc/kernel/time.c b/arch/sparc/kernel/time.c
index 4bf78a5..2f4e61d 100644
--- a/arch/sparc/kernel/time.c
+++ b/arch/sparc/kernel/time.c
@@ -106,7 +106,7 @@ __volatile__ unsigned int *master_l10_limit;
#define TICK_SIZE (tick_nsec / 1000)
-irqreturn_t timer_interrupt(int irq, void *dev_id)
+static irqreturn_t timer_interrupt(int dummy, void *dev_id)
{
/* last time the cmos clock got updated */
static long last_rtc_update;
--
1.5.2.4
^ permalink raw reply related [flat|nested] 20+ messages in thread* Re: [PATCH] IA64, PPC, SPARC: minor irq handler cleanups
2007-10-26 9:40 ` [PATCH] IA64, PPC, SPARC: minor irq " Jeff Garzik
@ 2007-10-26 9:44 ` Kumar Gala
2007-10-26 9:49 ` Jeff Garzik
0 siblings, 1 reply; 20+ messages in thread
From: Kumar Gala @ 2007-10-26 9:44 UTC (permalink / raw)
To: Jeff Garzik; +Cc: LKML, akpm, davem, tony.luck, linux-ia64, paulus, benh
On Oct 26, 2007, at 4:40 AM, Jeff Garzik wrote:
> ia64/sn/kernel/huberror.c:
> - remove pointless void* cast
> - add KERN_xxx prefix
>
> ia64/sn/pci/tioce_provider.c: start functions at column zero
>
> ppc/8xx_io/fec.c: kill prototype, remove extra whitespace
>
> ppc/platforms/85xx/*
> 'irq' argument in irq handler is used purely as a temporary
> variable. Update the function to reflect this usage, changing
> the first arg's name from 'irq' to 'dummy'
>
> ppc/platforms/sbc82xx.c: ditto
>
> sparc/kernel/time.c: mark timer_interrupt() static (from DaveM)
>
> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
> ---
> arch/ia64/sn/kernel/huberror.c | 4 ++--
> arch/ia64/sn/pci/tioce_provider.c | 6 ++++--
> arch/ppc/8xx_io/fec.c | 3 +--
> arch/ppc/platforms/85xx/mpc8560_ads.c | 4 +++-
> arch/ppc/platforms/85xx/mpc85xx_cds_common.c | 4 +++-
> arch/ppc/platforms/85xx/stx_gp3.c | 4 +++-
> arch/ppc/platforms/85xx/tqm85xx.c | 4 +++-
> arch/ppc/platforms/sbc82xx.c | 4 +++-
> arch/sparc/kernel/time.c | 2 +-
> 9 files changed, 23 insertions(+), 12 deletions(-)
I haven't been following this with detail. Is the intent that this
would be for 2.6.24 or .25?
- k
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH] IA64, PPC, SPARC: minor irq handler cleanups
2007-10-26 9:44 ` Kumar Gala
@ 2007-10-26 9:49 ` Jeff Garzik
2007-10-26 14:55 ` Kumar Gala
0 siblings, 1 reply; 20+ messages in thread
From: Jeff Garzik @ 2007-10-26 9:49 UTC (permalink / raw)
To: Kumar Gala; +Cc: LKML, akpm, davem, tony.luck, linux-ia64, paulus, benh
Kumar Gala wrote:
>
> On Oct 26, 2007, at 4:40 AM, Jeff Garzik wrote:
>
>> ia64/sn/kernel/huberror.c:
>> - remove pointless void* cast
>> - add KERN_xxx prefix
>>
>> ia64/sn/pci/tioce_provider.c: start functions at column zero
>>
>> ppc/8xx_io/fec.c: kill prototype, remove extra whitespace
>>
>> ppc/platforms/85xx/*
>> 'irq' argument in irq handler is used purely as a temporary
>> variable. Update the function to reflect this usage, changing
>> the first arg's name from 'irq' to 'dummy'
>>
>> ppc/platforms/sbc82xx.c: ditto
>>
>> sparc/kernel/time.c: mark timer_interrupt() static (from DaveM)
>>
>> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
>> ---
>> arch/ia64/sn/kernel/huberror.c | 4 ++--
>> arch/ia64/sn/pci/tioce_provider.c | 6 ++++--
>> arch/ppc/8xx_io/fec.c | 3 +--
>> arch/ppc/platforms/85xx/mpc8560_ads.c | 4 +++-
>> arch/ppc/platforms/85xx/mpc85xx_cds_common.c | 4 +++-
>> arch/ppc/platforms/85xx/stx_gp3.c | 4 +++-
>> arch/ppc/platforms/85xx/tqm85xx.c | 4 +++-
>> arch/ppc/platforms/sbc82xx.c | 4 +++-
>> arch/sparc/kernel/time.c | 2 +-
>> 9 files changed, 23 insertions(+), 12 deletions(-)
>
> I haven't been following this with detail. Is the intent that this
> would be for 2.6.24 or .25?
These patches are all cleanups and minor fixes I found while iterating
through each interrupt handler in the kernel, in pursuit of a related
project.
So they can stand by themselves, and can integrate into whatever flow
maintainers find most comfortable.
I'm not in any rush, but neither would I like them to sit forever...
Jeff
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH] IA64, PPC, SPARC: minor irq handler cleanups
2007-10-26 9:49 ` Jeff Garzik
@ 2007-10-26 14:55 ` Kumar Gala
0 siblings, 0 replies; 20+ messages in thread
From: Kumar Gala @ 2007-10-26 14:55 UTC (permalink / raw)
To: Jeff Garzik; +Cc: LKML, akpm, davem, tony.luck, linux-ia64, paulus, benh
On Oct 26, 2007, at 4:49 AM, Jeff Garzik wrote:
> Kumar Gala wrote:
>> On Oct 26, 2007, at 4:40 AM, Jeff Garzik wrote:
>>> ia64/sn/kernel/huberror.c:
>>> - remove pointless void* cast
>>> - add KERN_xxx prefix
>>>
>>> ia64/sn/pci/tioce_provider.c: start functions at column zero
>>>
>>> ppc/8xx_io/fec.c: kill prototype, remove extra whitespace
>>>
>>> ppc/platforms/85xx/*
>>> 'irq' argument in irq handler is used purely as a temporary
>>> variable. Update the function to reflect this usage, changing
>>> the first arg's name from 'irq' to 'dummy'
>>>
>>> ppc/platforms/sbc82xx.c: ditto
>>>
>>> sparc/kernel/time.c: mark timer_interrupt() static (from DaveM)
>>>
>>> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
>>> ---
>>> arch/ia64/sn/kernel/huberror.c | 4 ++--
>>> arch/ia64/sn/pci/tioce_provider.c | 6 ++++--
>>> arch/ppc/8xx_io/fec.c | 3 +--
>>> arch/ppc/platforms/85xx/mpc8560_ads.c | 4 +++-
>>> arch/ppc/platforms/85xx/mpc85xx_cds_common.c | 4 +++-
>>> arch/ppc/platforms/85xx/stx_gp3.c | 4 +++-
>>> arch/ppc/platforms/85xx/tqm85xx.c | 4 +++-
>>> arch/ppc/platforms/sbc82xx.c | 4 +++-
>>> arch/sparc/kernel/time.c | 2 +-
>>> 9 files changed, 23 insertions(+), 12 deletions(-)
>> I haven't been following this with detail. Is the intent that
>> this would be for 2.6.24 or .25?
>
> These patches are all cleanups and minor fixes I found while
> iterating through each interrupt handler in the kernel, in pursuit
> of a related project.
>
> So they can stand by themselves, and can integrate into whatever
> flow maintainers find most comfortable.
>
> I'm not in any rush, but neither would I like them to sit forever...
Ok. Not to be a pain, but it would be easier if this one patch might
be easier if it was split down the arch lines so each maintainer can
deal with it.
I say this especially for the ppc code because the intent in 2.6.25
is to actually try and remove some of the files you are fixing up for
their arch/powerpc variants.
- k
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH] media/video/planb: fix obvious interrupt handling bugs
2007-10-26 9:40 [PATCH] Remove pointless casts from void pointers, Jeff Garzik
` (2 preceding siblings ...)
2007-10-26 9:40 ` [PATCH] IA64, PPC, SPARC: minor irq " Jeff Garzik
@ 2007-10-26 9:40 ` Jeff Garzik
2007-10-26 9:40 ` [PATCH] drivers/net/irda/au1k_ir: fix obvious irq handler bugs Jeff Garzik
` (8 subsequent siblings)
12 siblings, 0 replies; 20+ messages in thread
From: Jeff Garzik @ 2007-10-26 9:40 UTC (permalink / raw)
To: LKML; +Cc: akpm, mchehab
irq handlers have returned a return value for years now... catch up with
the times.
Also, ditch unneeded prototype.
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
---
drivers/media/video/planb.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/media/video/planb.c b/drivers/media/video/planb.c
index ce4b2f9..36047d4 100644
--- a/drivers/media/video/planb.c
+++ b/drivers/media/video/planb.c
@@ -91,7 +91,6 @@ static void planb_close(struct video_device *);
static int planb_ioctl(struct video_device *, unsigned int, void *);
static int planb_init_done(struct video_device *);
static int planb_mmap(struct video_device *, const char *, unsigned long);
-static void planb_irq(int, void *);
static void release_planb(void);
int init_planbs(struct video_init *);
@@ -1315,7 +1314,7 @@ cmd_tab_data_end:
return c1;
}
-static void planb_irq(int irq, void *dev_id)
+static irqreturn_t planb_irq(int irq, void *dev_id)
{
unsigned int stat, astat;
struct planb *pb = (struct planb *)dev_id;
@@ -1358,13 +1357,14 @@ static void planb_irq(int irq, void *dev_id)
pb->frame_stat[fr] = GBUFFER_DONE;
pb->grabbing--;
wake_up_interruptible(&pb->capq);
- return;
+ return IRQ_HANDLED;
}
/* incorrect interrupts? */
pb->intr_mask = PLANB_CLR_IRQ;
out_le32(&pb->planb_base->intr_stat, PLANB_CLR_IRQ);
printk(KERN_ERR "PlanB: IRQ lockup, cleared intrrupts"
" unconditionally\n");
+ return IRQ_HANDLED;
}
/*******************************
@@ -2090,7 +2090,7 @@ static int init_planb(struct planb *pb)
/* clear interrupt mask */
pb->intr_mask = PLANB_CLR_IRQ;
- result = request_irq(pb->irq, planb_irq, 0, "PlanB", (void *)pb);
+ result = request_irq(pb->irq, planb_irq, 0, "PlanB", pb);
if (result < 0) {
if (result==-EINVAL)
printk(KERN_ERR "PlanB: Bad irq number (%d) "
--
1.5.2.4
^ permalink raw reply related [flat|nested] 20+ messages in thread* [PATCH] drivers/net/irda/au1k_ir: fix obvious irq handler bugs
2007-10-26 9:40 [PATCH] Remove pointless casts from void pointers, Jeff Garzik
` (3 preceding siblings ...)
2007-10-26 9:40 ` [PATCH] media/video/planb: fix obvious interrupt handling bugs Jeff Garzik
@ 2007-10-26 9:40 ` Jeff Garzik
2007-10-26 9:40 ` [PATCH] SCSI/gdth: kill unneeded 'irq' argument Jeff Garzik
` (7 subsequent siblings)
12 siblings, 0 replies; 20+ messages in thread
From: Jeff Garzik @ 2007-10-26 9:40 UTC (permalink / raw)
To: LKML; +Cc: akpm, samuel, netdev
interrupt handlers return a return value these days.
Also, kill always-true test and unneeded void* cast.
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
---
drivers/net/irda/au1k_ir.c | 11 ++++-------
1 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/drivers/net/irda/au1k_ir.c b/drivers/net/irda/au1k_ir.c
index 4dbdfaa..a1e4508 100644
--- a/drivers/net/irda/au1k_ir.c
+++ b/drivers/net/irda/au1k_ir.c
@@ -627,19 +627,16 @@ static int au1k_irda_rx(struct net_device *dev)
}
-void au1k_irda_interrupt(int irq, void *dev_id)
+static irqreturn_t au1k_irda_interrupt(int dummy, void *dev_id)
{
- struct net_device *dev = (struct net_device *) dev_id;
-
- if (dev == NULL) {
- printk(KERN_ERR "%s: isr: null dev ptr\n", dev->name);
- return;
- }
+ struct net_device *dev = dev_id;
writel(0, IR_INT_CLEAR); /* ack irda interrupts */
au1k_irda_rx(dev);
au1k_tx_ack(dev);
+
+ return IRQ_HANDLED;
}
--
1.5.2.4
^ permalink raw reply related [flat|nested] 20+ messages in thread* [PATCH] SCSI/gdth: kill unneeded 'irq' argument
2007-10-26 9:40 [PATCH] Remove pointless casts from void pointers, Jeff Garzik
` (4 preceding siblings ...)
2007-10-26 9:40 ` [PATCH] drivers/net/irda/au1k_ir: fix obvious irq handler bugs Jeff Garzik
@ 2007-10-26 9:40 ` Jeff Garzik
2007-10-29 9:22 ` Boaz Harrosh
2007-10-26 9:40 ` [PATCH] SCSI/sym53c416: kill pointless irq handler loop and test Jeff Garzik
` (6 subsequent siblings)
12 siblings, 1 reply; 20+ messages in thread
From: Jeff Garzik @ 2007-10-26 9:40 UTC (permalink / raw)
To: LKML; +Cc: akpm, linux-scsi
Neither gdth_get_status() nor __gdth_interrupt() need their 'irq'
argument, so remove it.
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
---
drivers/scsi/gdth.c | 21 +++++++++------------
1 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c
index b253b8c..65c21b1 100644
--- a/drivers/scsi/gdth.c
+++ b/drivers/scsi/gdth.c
@@ -141,7 +141,7 @@
static void gdth_delay(int milliseconds);
static void gdth_eval_mapping(ulong32 size, ulong32 *cyls, int *heads, int *secs);
static irqreturn_t gdth_interrupt(int irq, void *dev_id);
-static irqreturn_t __gdth_interrupt(gdth_ha_str *ha, int irq,
+static irqreturn_t __gdth_interrupt(gdth_ha_str *ha,
int gdth_from_wait, int* pIndex);
static int gdth_sync_event(gdth_ha_str *ha, int service, unchar index,
Scsi_Cmnd *scp);
@@ -165,7 +165,6 @@ static int gdth_internal_cache_cmd(gdth_ha_str *ha, Scsi_Cmnd *scp);
static int gdth_fill_cache_cmd(gdth_ha_str *ha, Scsi_Cmnd *scp, ushort hdrive);
static void gdth_enable_int(gdth_ha_str *ha);
-static unchar gdth_get_status(gdth_ha_str *ha, int irq);
static int gdth_test_busy(gdth_ha_str *ha);
static int gdth_get_cmd_index(gdth_ha_str *ha);
static void gdth_release_event(gdth_ha_str *ha);
@@ -1334,14 +1333,12 @@ static void __init gdth_enable_int(gdth_ha_str *ha)
}
/* return IStatus if interrupt was from this card else 0 */
-static unchar gdth_get_status(gdth_ha_str *ha, int irq)
+static unchar gdth_get_status(gdth_ha_str *ha)
{
unchar IStatus = 0;
- TRACE(("gdth_get_status() irq %d ctr_count %d\n", irq, gdth_ctr_count));
+ TRACE(("gdth_get_status() irq %d ctr_count %d\n", ha->irq, gdth_ctr_count));
- if (ha->irq != (unchar)irq) /* check IRQ */
- return false;
if (ha->type == GDT_EISA)
IStatus = inb((ushort)ha->bmic + EDOORREG);
else if (ha->type == GDT_ISA)
@@ -1523,7 +1520,7 @@ static int gdth_wait(gdth_ha_str *ha, int index, ulong32 time)
return 1; /* no wait required */
do {
- __gdth_interrupt(ha, (int)ha->irq, true, &wait_index);
+ __gdth_interrupt(ha, true, &wait_index);
if (wait_index == index) {
answer_found = TRUE;
break;
@@ -3036,7 +3033,7 @@ static void gdth_clear_events(void)
/* SCSI interface functions */
-static irqreturn_t __gdth_interrupt(gdth_ha_str *ha, int irq,
+static irqreturn_t __gdth_interrupt(gdth_ha_str *ha,
int gdth_from_wait, int* pIndex)
{
gdt6m_dpram_str __iomem *dp6m_ptr = NULL;
@@ -3054,7 +3051,7 @@ static irqreturn_t __gdth_interrupt(gdth_ha_str *ha, int irq,
int act_int_coal = 0;
#endif
- TRACE(("gdth_interrupt() IRQ %d\n",irq));
+ TRACE(("gdth_interrupt() IRQ %d\n", ha->irq));
/* if polling and not from gdth_wait() -> return */
if (gdth_polling) {
@@ -3067,7 +3064,7 @@ static irqreturn_t __gdth_interrupt(gdth_ha_str *ha, int irq,
spin_lock_irqsave(&ha->smp_lock, flags);
/* search controller */
- if (0 == (IStatus = gdth_get_status(ha, irq))) {
+ if (0 == (IStatus = gdth_get_status(ha))) {
/* spurious interrupt */
if (!gdth_polling)
spin_unlock_irqrestore(&ha->smp_lock, flags);
@@ -3294,9 +3291,9 @@ static irqreturn_t __gdth_interrupt(gdth_ha_str *ha, int irq,
static irqreturn_t gdth_interrupt(int irq, void *dev_id)
{
- gdth_ha_str *ha = (gdth_ha_str *)dev_id;
+ gdth_ha_str *ha = dev_id;
- return __gdth_interrupt(ha, irq, false, NULL);
+ return __gdth_interrupt(ha, false, NULL);
}
static int gdth_sync_event(gdth_ha_str *ha, int service, unchar index,
--
1.5.2.4
^ permalink raw reply related [flat|nested] 20+ messages in thread* Re: [PATCH] SCSI/gdth: kill unneeded 'irq' argument
2007-10-26 9:40 ` [PATCH] SCSI/gdth: kill unneeded 'irq' argument Jeff Garzik
@ 2007-10-29 9:22 ` Boaz Harrosh
0 siblings, 0 replies; 20+ messages in thread
From: Boaz Harrosh @ 2007-10-29 9:22 UTC (permalink / raw)
To: Jeff Garzik; +Cc: LKML, akpm, linux-scsi
On Fri, Oct 26 2007 at 11:40 +0200, Jeff Garzik <jeff@garzik.org> wrote:
> Neither gdth_get_status() nor __gdth_interrupt() need their 'irq'
> argument, so remove it.
>
> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
> ---
> drivers/scsi/gdth.c | 21 +++++++++------------
> 1 files changed, 9 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c
> index b253b8c..65c21b1 100644
> --- a/drivers/scsi/gdth.c
> +++ b/drivers/scsi/gdth.c
> @@ -141,7 +141,7 @@
> static void gdth_delay(int milliseconds);
> static void gdth_eval_mapping(ulong32 size, ulong32 *cyls, int *heads, int *secs);
> static irqreturn_t gdth_interrupt(int irq, void *dev_id);
> -static irqreturn_t __gdth_interrupt(gdth_ha_str *ha, int irq,
> +static irqreturn_t __gdth_interrupt(gdth_ha_str *ha,
> int gdth_from_wait, int* pIndex);
> static int gdth_sync_event(gdth_ha_str *ha, int service, unchar index,
> Scsi_Cmnd *scp);
> @@ -165,7 +165,6 @@ static int gdth_internal_cache_cmd(gdth_ha_str *ha, Scsi_Cmnd *scp);
> static int gdth_fill_cache_cmd(gdth_ha_str *ha, Scsi_Cmnd *scp, ushort hdrive);
>
> static void gdth_enable_int(gdth_ha_str *ha);
> -static unchar gdth_get_status(gdth_ha_str *ha, int irq);
> static int gdth_test_busy(gdth_ha_str *ha);
> static int gdth_get_cmd_index(gdth_ha_str *ha);
> static void gdth_release_event(gdth_ha_str *ha);
> @@ -1334,14 +1333,12 @@ static void __init gdth_enable_int(gdth_ha_str *ha)
> }
>
> /* return IStatus if interrupt was from this card else 0 */
> -static unchar gdth_get_status(gdth_ha_str *ha, int irq)
> +static unchar gdth_get_status(gdth_ha_str *ha)
> {
> unchar IStatus = 0;
>
> - TRACE(("gdth_get_status() irq %d ctr_count %d\n", irq, gdth_ctr_count));
> + TRACE(("gdth_get_status() irq %d ctr_count %d\n", ha->irq, gdth_ctr_count));
>
> - if (ha->irq != (unchar)irq) /* check IRQ */
> - return false;
> if (ha->type == GDT_EISA)
> IStatus = inb((ushort)ha->bmic + EDOORREG);
> else if (ha->type == GDT_ISA)
> @@ -1523,7 +1520,7 @@ static int gdth_wait(gdth_ha_str *ha, int index, ulong32 time)
> return 1; /* no wait required */
>
> do {
> - __gdth_interrupt(ha, (int)ha->irq, true, &wait_index);
> + __gdth_interrupt(ha, true, &wait_index);
> if (wait_index == index) {
> answer_found = TRUE;
> break;
> @@ -3036,7 +3033,7 @@ static void gdth_clear_events(void)
>
> /* SCSI interface functions */
>
> -static irqreturn_t __gdth_interrupt(gdth_ha_str *ha, int irq,
> +static irqreturn_t __gdth_interrupt(gdth_ha_str *ha,
> int gdth_from_wait, int* pIndex)
> {
> gdt6m_dpram_str __iomem *dp6m_ptr = NULL;
> @@ -3054,7 +3051,7 @@ static irqreturn_t __gdth_interrupt(gdth_ha_str *ha, int irq,
> int act_int_coal = 0;
> #endif
>
> - TRACE(("gdth_interrupt() IRQ %d\n",irq));
> + TRACE(("gdth_interrupt() IRQ %d\n", ha->irq));
>
> /* if polling and not from gdth_wait() -> return */
> if (gdth_polling) {
> @@ -3067,7 +3064,7 @@ static irqreturn_t __gdth_interrupt(gdth_ha_str *ha, int irq,
> spin_lock_irqsave(&ha->smp_lock, flags);
>
> /* search controller */
> - if (0 == (IStatus = gdth_get_status(ha, irq))) {
> + if (0 == (IStatus = gdth_get_status(ha))) {
> /* spurious interrupt */
> if (!gdth_polling)
> spin_unlock_irqrestore(&ha->smp_lock, flags);
> @@ -3294,9 +3291,9 @@ static irqreturn_t __gdth_interrupt(gdth_ha_str *ha, int irq,
>
> static irqreturn_t gdth_interrupt(int irq, void *dev_id)
> {
> - gdth_ha_str *ha = (gdth_ha_str *)dev_id;
> + gdth_ha_str *ha = dev_id;
>
> - return __gdth_interrupt(ha, irq, false, NULL);
> + return __gdth_interrupt(ha, false, NULL);
> }
>
> static int gdth_sync_event(gdth_ha_str *ha, int service, unchar index,
ACK
I've done the last heavy lifting of gdth_interrupt. And I second this patch.
the irq was just redundant information to the ha pointer. Good riddance.
Boaz
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH] SCSI/sym53c416: kill pointless irq handler loop and test
2007-10-26 9:40 [PATCH] Remove pointless casts from void pointers, Jeff Garzik
` (5 preceding siblings ...)
2007-10-26 9:40 ` [PATCH] SCSI/gdth: kill unneeded 'irq' argument Jeff Garzik
@ 2007-10-26 9:40 ` Jeff Garzik
2007-10-26 9:40 ` [PATCH] NETDRVR, USB: declance, lp486e, s3c2410_udc: minor irq handler cleanups Jeff Garzik
` (5 subsequent siblings)
12 siblings, 0 replies; 20+ messages in thread
From: Jeff Garzik @ 2007-10-26 9:40 UTC (permalink / raw)
To: LKML; +Cc: akpm, linux-scsi
- kill pointless irq handler loop to find base address, it is already
passed to irq handler via Scsi_Host.
- kill now-pointless !base test.
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
---
drivers/scsi/sym53c416.c | 16 +---------------
1 files changed, 1 insertions(+), 15 deletions(-)
diff --git a/drivers/scsi/sym53c416.c b/drivers/scsi/sym53c416.c
index 90cee94..1f6fd16 100644
--- a/drivers/scsi/sym53c416.c
+++ b/drivers/scsi/sym53c416.c
@@ -328,27 +328,13 @@ static __inline__ unsigned int sym53c416_write(int base, unsigned char *buffer,
static irqreturn_t sym53c416_intr_handle(int irq, void *dev_id)
{
struct Scsi_Host *dev = dev_id;
- int base = 0;
+ int base = dev->io_port;
int i;
unsigned long flags = 0;
unsigned char status_reg, pio_int_reg, int_reg;
struct scatterlist *sg;
unsigned int tot_trans = 0;
- /* We search the base address of the host adapter which caused the interrupt */
- /* FIXME: should pass dev_id sensibly as hosts[i] */
- for(i = 0; i < host_index && !base; i++)
- if(irq == hosts[i].irq)
- base = hosts[i].base;
- /* If no adapter found, we cannot handle the interrupt. Leave a message */
- /* and continue. This should never happen... */
- if(!base)
- {
- printk(KERN_ERR "sym53c416: No host adapter defined for interrupt %d\n", irq);
- return IRQ_NONE;
- }
- /* Now we have the base address and we can start handling the interrupt */
-
spin_lock_irqsave(dev->host_lock,flags);
status_reg = inb(base + STATUS_REG);
pio_int_reg = inb(base + PIO_INT_REG);
--
1.5.2.4
^ permalink raw reply related [flat|nested] 20+ messages in thread* [PATCH] NETDRVR, USB: declance, lp486e, s3c2410_udc: minor irq handler cleanups
2007-10-26 9:40 [PATCH] Remove pointless casts from void pointers, Jeff Garzik
` (6 preceding siblings ...)
2007-10-26 9:40 ` [PATCH] SCSI/sym53c416: kill pointless irq handler loop and test Jeff Garzik
@ 2007-10-26 9:40 ` Jeff Garzik
2007-10-26 12:24 ` [PATCH] Remove pointless casts from void pointers, John W. Linville
` (4 subsequent siblings)
12 siblings, 0 replies; 20+ messages in thread
From: Jeff Garzik @ 2007-10-26 9:40 UTC (permalink / raw)
To: LKML; +Cc: akpm, netdev, dbrownell
declance:
- irq handlers do not take 'const int' as first arg
- add KERN_ prefix
lp486e:
- neaten irq handler top of function formatting
- remove pointless void* casts
s3c2410_udc:
- 'irq' argument is merely used in place of a constant;
replace its usage with that constant.
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
---
drivers/net/declance.c | 6 +++---
drivers/net/lp486e.c | 9 ++++-----
drivers/usb/gadget/s3c2410_udc.c | 4 ++--
3 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/drivers/net/declance.c b/drivers/net/declance.c
index 00e0194..6b1e77c 100644
--- a/drivers/net/declance.c
+++ b/drivers/net/declance.c
@@ -719,15 +719,15 @@ out:
spin_unlock(&lp->lock);
}
-static irqreturn_t lance_dma_merr_int(const int irq, void *dev_id)
+static irqreturn_t lance_dma_merr_int(int irq, void *dev_id)
{
struct net_device *dev = dev_id;
- printk("%s: DMA error\n", dev->name);
+ printk(KERN_ERR "%s: DMA error\n", dev->name);
return IRQ_HANDLED;
}
-static irqreturn_t lance_interrupt(const int irq, void *dev_id)
+static irqreturn_t lance_interrupt(int irq, void *dev_id)
{
struct net_device *dev = dev_id;
struct lance_private *lp = netdev_priv(dev);
diff --git a/drivers/net/lp486e.c b/drivers/net/lp486e.c
index c5095ec..0eff1a0 100644
--- a/drivers/net/lp486e.c
+++ b/drivers/net/lp486e.c
@@ -1144,14 +1144,13 @@ i596_handle_CU_completion(struct net_device *dev,
}
static irqreturn_t
-i596_interrupt (int irq, void *dev_instance) {
- struct net_device *dev = (struct net_device *) dev_instance;
- struct i596_private *lp;
+i596_interrupt (int irq, void *dev_instance)
+{
+ struct net_device *dev = dev_instance;
+ struct i596_private *lp = dev->priv;
unsigned short status, ack_cmd = 0;
int frames_in = 0;
- lp = (struct i596_private *) dev->priv;
-
/*
* The 82596 examines the command, performs the required action,
* and then clears the SCB command word.
diff --git a/drivers/usb/gadget/s3c2410_udc.c b/drivers/usb/gadget/s3c2410_udc.c
index e3e90f8..1b07bc9 100644
--- a/drivers/usb/gadget/s3c2410_udc.c
+++ b/drivers/usb/gadget/s3c2410_udc.c
@@ -893,7 +893,7 @@ static void s3c2410_udc_handle_ep(struct s3c2410_ep *ep)
/*
* s3c2410_udc_irq - interrupt handler
*/
-static irqreturn_t s3c2410_udc_irq(int irq, void *_dev)
+static irqreturn_t s3c2410_udc_irq(int dummy, void *_dev)
{
struct s3c2410_udc *dev = _dev;
int usb_status;
@@ -1016,7 +1016,7 @@ static irqreturn_t s3c2410_udc_irq(int irq, void *_dev)
}
}
- dprintk(DEBUG_VERBOSE, "irq: %d s3c2410_udc_done.\n", irq);
+ dprintk(DEBUG_VERBOSE, "irq: %d s3c2410_udc_done.\n", IRQ_USBD);
/* Restore old index */
udc_write(idx, S3C2410_UDC_INDEX_REG);
--
1.5.2.4
^ permalink raw reply related [flat|nested] 20+ messages in thread* Re: [PATCH] Remove pointless casts from void pointers,
2007-10-26 9:40 [PATCH] Remove pointless casts from void pointers, Jeff Garzik
` (7 preceding siblings ...)
2007-10-26 9:40 ` [PATCH] NETDRVR, USB: declance, lp486e, s3c2410_udc: minor irq handler cleanups Jeff Garzik
@ 2007-10-26 12:24 ` John W. Linville
2007-10-26 13:38 ` Dmitry Torokhov
` (3 subsequent siblings)
12 siblings, 0 replies; 20+ messages in thread
From: John W. Linville @ 2007-10-26 12:24 UTC (permalink / raw)
To: Jeff Garzik
Cc: LKML, akpm, rmk, kernel, tony.luck, jwboyer, benh, paulus,
dmitry.torokhov, netdev, linux-scsi, linux-serial, linux-wireless,
bryan.wu, adaplas
On Fri, Oct 26, 2007 at 05:40:22AM -0400, Jeff Garzik wrote:
> mostly in and around irq handlers.
>
> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
> ---
> drivers/net/wireless/airo.c | 5 +++--
> drivers/net/wireless/hostap/hostap_hw.c | 2 +-
> drivers/net/wireless/libertas/if_cs.c | 2 +-
ACK
--
John W. Linville
linville@tuxdriver.com
^ permalink raw reply [flat|nested] 20+ messages in thread* Re: [PATCH] Remove pointless casts from void pointers,
2007-10-26 9:40 [PATCH] Remove pointless casts from void pointers, Jeff Garzik
` (8 preceding siblings ...)
2007-10-26 12:24 ` [PATCH] Remove pointless casts from void pointers, John W. Linville
@ 2007-10-26 13:38 ` Dmitry Torokhov
2007-10-26 14:46 ` Josh Boyer
` (2 subsequent siblings)
12 siblings, 0 replies; 20+ messages in thread
From: Dmitry Torokhov @ 2007-10-26 13:38 UTC (permalink / raw)
To: Jeff Garzik
Cc: LKML, akpm, rmk, kernel, tony.luck, jwboyer, benh, paulus, netdev,
linux-scsi, linux-serial, linux-wireless, bryan.wu, adaplas
On 10/26/07, Jeff Garzik <jeff@garzik.org> wrote:
> drivers/input/touchscreen/h3600_ts_input.c | 4 ++--
Acked-by: Dmitry Torokhov <dtor@mail.ru>
--
Dmitry
^ permalink raw reply [flat|nested] 20+ messages in thread* Re: [PATCH] Remove pointless casts from void pointers,
2007-10-26 9:40 [PATCH] Remove pointless casts from void pointers, Jeff Garzik
` (9 preceding siblings ...)
2007-10-26 13:38 ` Dmitry Torokhov
@ 2007-10-26 14:46 ` Josh Boyer
2007-10-26 14:55 ` Holger Schurig
2007-10-26 21:58 ` Lennert Buytenhek
12 siblings, 0 replies; 20+ messages in thread
From: Josh Boyer @ 2007-10-26 14:46 UTC (permalink / raw)
To: Jeff Garzik
Cc: LKML, akpm, rmk, kernel, tony.luck, benh, paulus, dmitry.torokhov,
netdev, linux-scsi, linux-serial, linux-wireless, bryan.wu,
adaplas
On Fri, 26 Oct 2007 05:40:22 -0400 (EDT)
Jeff Garzik <jeff@garzik.org> wrote:
> mostly in and around irq handlers.
>
> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
> ---
> drivers/serial/uartlite.c | 2 +-
Acked-by: Josh Boyer <jwboyer@linux.vnet.ibm.com
^ permalink raw reply [flat|nested] 20+ messages in thread* Re: [PATCH] Remove pointless casts from void pointers,
2007-10-26 9:40 [PATCH] Remove pointless casts from void pointers, Jeff Garzik
` (10 preceding siblings ...)
2007-10-26 14:46 ` Josh Boyer
@ 2007-10-26 14:55 ` Holger Schurig
2007-10-26 21:58 ` Lennert Buytenhek
12 siblings, 0 replies; 20+ messages in thread
From: Holger Schurig @ 2007-10-26 14:55 UTC (permalink / raw)
To: linux-wireless
Cc: Jeff Garzik, LKML, akpm, rmk, kernel, tony.luck, jwboyer, benh,
paulus, dmitry.torokhov, netdev, linux-scsi, linux-serial,
bryan.wu, adaplas
> drivers/net/wireless/libertas/if_cs.c | 2 +-
ACK
^ permalink raw reply [flat|nested] 20+ messages in thread* Re: [PATCH] Remove pointless casts from void pointers,
2007-10-26 9:40 [PATCH] Remove pointless casts from void pointers, Jeff Garzik
` (11 preceding siblings ...)
2007-10-26 14:55 ` Holger Schurig
@ 2007-10-26 21:58 ` Lennert Buytenhek
12 siblings, 0 replies; 20+ messages in thread
From: Lennert Buytenhek @ 2007-10-26 21:58 UTC (permalink / raw)
To: Jeff Garzik
Cc: LKML, akpm, rmk, kernel, tony.luck, jwboyer, benh, paulus,
dmitry.torokhov, netdev, linux-scsi, linux-serial, linux-wireless,
bryan.wu, adaplas
On Fri, Oct 26, 2007 at 05:40:22AM -0400, Jeff Garzik wrote:
> arch/arm/mach-pxa/ssp.c | 2 +-
> arch/arm/mach-s3c2410/usb-simtec.c | 2 +-
> arch/arm/plat-omap/mailbox.c | 2 +-
FWIW
Acked-by: Lennert Buytenhek <buytenh@wantstofly.org>
^ permalink raw reply [flat|nested] 20+ messages in thread