2007-10-26 09:41:03

by Jeff Garzik

[permalink] [raw]
Subject: [PATCH] Remove pointless casts from void pointers,

mostly in and around irq handlers.

Signed-off-by: Jeff Garzik <[email protected]>
---
arch/arm/mach-pxa/ssp.c | 2 +-
arch/arm/mach-s3c2410/usb-simtec.c | 2 +-
arch/arm/plat-omap/mailbox.c | 2 +-
arch/ia64/sn/pci/pcibr/pcibr_provider.c | 6 +++---
arch/m68k/amiga/cia.c | 2 +-
arch/ppc/8260_io/enet.c | 4 ++--
arch/ppc/8260_io/fcc_enet.c | 4 ++--
arch/ppc/syslib/ppc85xx_rio.c | 6 +++---
drivers/input/touchscreen/h3600_ts_input.c | 4 ++--
drivers/isdn/hardware/eicon/diva.c | 5 ++---
drivers/net/ibmlana.c | 4 ++--
drivers/net/wireless/airo.c | 5 +++--
drivers/net/wireless/hostap/hostap_hw.c | 2 +-
drivers/net/wireless/libertas/if_cs.c | 2 +-
drivers/scsi/aic7xxx_old.c | 2 +-
drivers/scsi/ibmvscsi/ibmvstgt.c | 4 ++--
drivers/serial/cpm_uart/cpm_uart_core.c | 2 +-
drivers/serial/dz.c | 2 +-
drivers/serial/imx.c | 4 ++--
drivers/serial/uartlite.c | 2 +-
drivers/spi/spi_bfin5xx.c | 2 +-
drivers/video/bf54x-lq043fb.c | 3 +--
drivers/video/intelfb/intelfbhw.c | 2 +-
sound/oss/waveartist.c | 2 +-
24 files changed, 37 insertions(+), 38 deletions(-)

diff --git a/arch/arm/mach-pxa/ssp.c b/arch/arm/mach-pxa/ssp.c
index 71766ac..d042cc8 100644
--- a/arch/arm/mach-pxa/ssp.c
+++ b/arch/arm/mach-pxa/ssp.c
@@ -67,7 +67,7 @@ static int use_count[PXA_SSP_PORTS] = {0, 0, 0};

static irqreturn_t ssp_interrupt(int irq, void *dev_id)
{
- struct ssp_dev *dev = (struct ssp_dev*) dev_id;
+ struct ssp_dev *dev = dev_id;
unsigned int status = SSSR_P(dev->port);

SSSR_P(dev->port) = status; /* clear status bits */
diff --git a/arch/arm/mach-s3c2410/usb-simtec.c b/arch/arm/mach-s3c2410/usb-simtec.c
index bcd562a..6aec86a 100644
--- a/arch/arm/mach-s3c2410/usb-simtec.c
+++ b/arch/arm/mach-s3c2410/usb-simtec.c
@@ -60,7 +60,7 @@ usb_simtec_powercontrol(int port, int to)
static irqreturn_t
usb_simtec_ocirq(int irq, void *pw)
{
- struct s3c2410_hcd_info *info = (struct s3c2410_hcd_info *)pw;
+ struct s3c2410_hcd_info *info = pw;

if (s3c2410_gpio_getpin(S3C2410_GPG10) == 0) {
pr_debug("usb_simtec: over-current irq (oc detected)\n");
diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c
index 0360b1f..45a77df 100644
--- a/arch/arm/plat-omap/mailbox.c
+++ b/arch/arm/plat-omap/mailbox.c
@@ -212,7 +212,7 @@ static void __mbox_rx_interrupt(struct omap_mbox *mbox)

static irqreturn_t mbox_interrupt(int irq, void *p)
{
- struct omap_mbox *mbox = (struct omap_mbox *)p;
+ struct omap_mbox *mbox = p;

if (is_mbox_irq(mbox, IRQ_TX))
__mbox_tx_interrupt(mbox);
diff --git a/arch/ia64/sn/pci/pcibr/pcibr_provider.c b/arch/ia64/sn/pci/pcibr/pcibr_provider.c
index ab3eaf8..2c676cc 100644
--- a/arch/ia64/sn/pci/pcibr/pcibr_provider.c
+++ b/arch/ia64/sn/pci/pcibr/pcibr_provider.c
@@ -100,11 +100,11 @@ u16 sn_ioboard_to_pci_bus(struct pci_bus *pci_bus)
static irqreturn_t
pcibr_error_intr_handler(int irq, void *arg)
{
- struct pcibus_info *soft = (struct pcibus_info *)arg;
+ struct pcibus_info *soft = arg;

- if (sal_pcibr_error_interrupt(soft) < 0) {
+ if (sal_pcibr_error_interrupt(soft) < 0)
panic("pcibr_error_intr_handler(): Fatal Bridge Error");
- }
+
return IRQ_HANDLED;
}

diff --git a/arch/m68k/amiga/cia.c b/arch/m68k/amiga/cia.c
index c4a4ffd..343fab4 100644
--- a/arch/m68k/amiga/cia.c
+++ b/arch/m68k/amiga/cia.c
@@ -84,7 +84,7 @@ unsigned char cia_able_irq(struct ciabase *base, unsigned char mask)

static irqreturn_t cia_handler(int irq, void *dev_id)
{
- struct ciabase *base = (struct ciabase *)dev_id;
+ struct ciabase *base = dev_id;
int mach_irq;
unsigned char ints;

diff --git a/arch/ppc/8260_io/enet.c b/arch/ppc/8260_io/enet.c
index 615b658..06bb5b7 100644
--- a/arch/ppc/8260_io/enet.c
+++ b/arch/ppc/8260_io/enet.c
@@ -272,7 +272,7 @@ scc_enet_timeout(struct net_device *dev)
* This is called from the CPM handler, not the MPC core interrupt.
*/
static irqreturn_t
-scc_enet_interrupt(int irq, void * dev_id)
+scc_enet_interrupt(int irq, void *dev_id)
{
struct net_device *dev = dev_id;
volatile struct scc_enet_private *cep;
@@ -280,7 +280,7 @@ scc_enet_interrupt(int irq, void * dev_id)
ushort int_events;
int must_restart;

- cep = (struct scc_enet_private *)dev->priv;
+ cep = dev->priv;

/* Get the interrupt events that caused us to be here.
*/
diff --git a/arch/ppc/8260_io/fcc_enet.c b/arch/ppc/8260_io/fcc_enet.c
index 6f3ed6a..a3a27da 100644
--- a/arch/ppc/8260_io/fcc_enet.c
+++ b/arch/ppc/8260_io/fcc_enet.c
@@ -524,7 +524,7 @@ fcc_enet_timeout(struct net_device *dev)

/* The interrupt handler. */
static irqreturn_t
-fcc_enet_interrupt(int irq, void * dev_id)
+fcc_enet_interrupt(int irq, void *dev_id)
{
struct net_device *dev = dev_id;
volatile struct fcc_enet_private *cep;
@@ -532,7 +532,7 @@ fcc_enet_interrupt(int irq, void * dev_id)
ushort int_events;
int must_restart;

- cep = (struct fcc_enet_private *)dev->priv;
+ cep = dev->priv;

/* Get the interrupt events that caused us to be here.
*/
diff --git a/arch/ppc/syslib/ppc85xx_rio.c b/arch/ppc/syslib/ppc85xx_rio.c
index af2425e..4db3110 100644
--- a/arch/ppc/syslib/ppc85xx_rio.c
+++ b/arch/ppc/syslib/ppc85xx_rio.c
@@ -355,7 +355,7 @@ static irqreturn_t
mpc85xx_rio_tx_handler(int irq, void *dev_instance)
{
int osr;
- struct rio_mport *port = (struct rio_mport *)dev_instance;
+ struct rio_mport *port = dev_instance;

osr = in_be32((void *)&msg_regs->osr);

@@ -522,7 +522,7 @@ static irqreturn_t
mpc85xx_rio_rx_handler(int irq, void *dev_instance)
{
int isr;
- struct rio_mport *port = (struct rio_mport *)dev_instance;
+ struct rio_mport *port = dev_instance;

isr = in_be32((void *)&msg_regs->isr);

@@ -740,7 +740,7 @@ static irqreturn_t
mpc85xx_rio_dbell_handler(int irq, void *dev_instance)
{
int dsr;
- struct rio_mport *port = (struct rio_mport *)dev_instance;
+ struct rio_mport *port = dev_instance;

dsr = in_be32((void *)&msg_regs->dsr);

diff --git a/drivers/input/touchscreen/h3600_ts_input.c b/drivers/input/touchscreen/h3600_ts_input.c
index 2ae6c60..28ae15e 100644
--- a/drivers/input/touchscreen/h3600_ts_input.c
+++ b/drivers/input/touchscreen/h3600_ts_input.c
@@ -109,7 +109,7 @@ struct h3600_dev {
static irqreturn_t action_button_handler(int irq, void *dev_id)
{
int down = (GPLR & GPIO_BITSY_ACTION_BUTTON) ? 0 : 1;
- struct input_dev *dev = (struct input_dev *) dev_id;
+ struct input_dev *dev = dev_id;

input_report_key(dev, KEY_ENTER, down);
input_sync(dev);
@@ -120,7 +120,7 @@ static irqreturn_t action_button_handler(int irq, void *dev_id)
static irqreturn_t npower_button_handler(int irq, void *dev_id)
{
int down = (GPLR & GPIO_BITSY_NPOWER_BUTTON) ? 0 : 1;
- struct input_dev *dev = (struct input_dev *) dev_id;
+ struct input_dev *dev = dev_id;

/*
* This interrupt is only called when we release the key. So we have
diff --git a/drivers/isdn/hardware/eicon/diva.c b/drivers/isdn/hardware/eicon/diva.c
index ffa2afa..1403a54 100644
--- a/drivers/isdn/hardware/eicon/diva.c
+++ b/drivers/isdn/hardware/eicon/diva.c
@@ -515,12 +515,11 @@ diva_xdi_read(void *adapter, void *os_handle, void __user *dst,

irqreturn_t diva_os_irq_wrapper(int irq, void *context)
{
- diva_os_xdi_adapter_t *a = (diva_os_xdi_adapter_t *) context;
+ diva_os_xdi_adapter_t *a = context;
diva_xdi_clear_interrupts_proc_t clear_int_proc;

- if (!a || !a->xdi_adapter.diva_isr_handler) {
+ if (!a || !a->xdi_adapter.diva_isr_handler)
return IRQ_NONE;
- }

if ((clear_int_proc = a->clear_interrupts_proc)) {
(*clear_int_proc) (a);
diff --git a/drivers/net/ibmlana.c b/drivers/net/ibmlana.c
index 91d83ac..65626d6 100644
--- a/drivers/net/ibmlana.c
+++ b/drivers/net/ibmlana.c
@@ -704,9 +704,9 @@ static void irqtxerr_handler(struct net_device *dev)

/* general interrupt entry */

-static irqreturn_t irq_handler(int irq, void *device)
+static irqreturn_t irq_handler(int dummy, void *device)
{
- struct net_device *dev = (struct net_device *) device;
+ struct net_device *dev = device;
u16 ival;

/* in case we're not meant... */
diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
index 074055e..d1febe8 100644
--- a/drivers/net/wireless/airo.c
+++ b/drivers/net/wireless/airo.c
@@ -3177,8 +3177,9 @@ static int airo_thread(void *data) {
return 0;
}

-static irqreturn_t airo_interrupt ( int irq, void* dev_id) {
- struct net_device *dev = (struct net_device *)dev_id;
+static irqreturn_t airo_interrupt(int irq, void *dev_id)
+{
+ struct net_device *dev = dev_id;
u16 status;
u16 fid;
struct airo_info *apriv = dev->priv;
diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c
index c592641..286b46c 100644
--- a/drivers/net/wireless/hostap/hostap_hw.c
+++ b/drivers/net/wireless/hostap/hostap_hw.c
@@ -2624,7 +2624,7 @@ static void prism2_check_magic(local_info_t *local)
/* Called only from hardware IRQ */
static irqreturn_t prism2_interrupt(int irq, void *dev_id)
{
- struct net_device *dev = (struct net_device *) dev_id;
+ struct net_device *dev = dev_id;
struct hostap_interface *iface;
local_info_t *local;
int events = 0;
diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c
index 0360cad..f9879d4 100644
--- a/drivers/net/wireless/libertas/if_cs.c
+++ b/drivers/net/wireless/libertas/if_cs.c
@@ -242,7 +242,7 @@ static inline void if_cs_disable_ints(struct if_cs_card *card)

static irqreturn_t if_cs_interrupt(int irq, void *data)
{
- struct if_cs_card *card = (struct if_cs_card *)data;
+ struct if_cs_card *card = data;
u16 int_cause;

lbs_deb_enter(LBS_DEB_CS);
diff --git a/drivers/scsi/aic7xxx_old.c b/drivers/scsi/aic7xxx_old.c
index 8f8db5f..5e32cbc 100644
--- a/drivers/scsi/aic7xxx_old.c
+++ b/drivers/scsi/aic7xxx_old.c
@@ -6472,7 +6472,7 @@ do_aic7xxx_isr(int irq, void *dev_id)
unsigned long cpu_flags;
struct aic7xxx_host *p;

- p = (struct aic7xxx_host *)dev_id;
+ p = dev_id;
if(!p)
return IRQ_NONE;
spin_lock_irqsave(p->host->host_lock, cpu_flags);
diff --git a/drivers/scsi/ibmvscsi/ibmvstgt.c b/drivers/scsi/ibmvscsi/ibmvstgt.c
index 82bcab6..9070ae1 100644
--- a/drivers/scsi/ibmvscsi/ibmvstgt.c
+++ b/drivers/scsi/ibmvscsi/ibmvstgt.c
@@ -539,9 +539,9 @@ out:
srp_iu_put(iue);
}

-static irqreturn_t ibmvstgt_interrupt(int irq, void *data)
+static irqreturn_t ibmvstgt_interrupt(int dummy, void *data)
{
- struct srp_target *target = (struct srp_target *) data;
+ struct srp_target *target = data;
struct vio_port *vport = target_to_port(target);

vio_disable_interrupts(vport->dma_dev);
diff --git a/drivers/serial/cpm_uart/cpm_uart_core.c b/drivers/serial/cpm_uart/cpm_uart_core.c
index b5e4478..236af9d 100644
--- a/drivers/serial/cpm_uart/cpm_uart_core.c
+++ b/drivers/serial/cpm_uart/cpm_uart_core.c
@@ -380,7 +380,7 @@ static void cpm_uart_int_rx(struct uart_port *port)
static irqreturn_t cpm_uart_int(int irq, void *data)
{
u8 events;
- struct uart_port *port = (struct uart_port *)data;
+ struct uart_port *port = data;
struct uart_cpm_port *pinfo = (struct uart_cpm_port *)port;
smc_t __iomem *smcp = pinfo->smcp;
scc_t __iomem *sccp = pinfo->sccp;
diff --git a/drivers/serial/dz.c b/drivers/serial/dz.c
index d31721f..bbae5a2 100644
--- a/drivers/serial/dz.c
+++ b/drivers/serial/dz.c
@@ -324,7 +324,7 @@ static inline void check_modem_status(struct dz_port *dport)
*/
static irqreturn_t dz_interrupt(int irq, void *dev)
{
- struct dz_port *dport = (struct dz_port *)dev;
+ struct dz_port *dport = dev;
unsigned short status;

/* get the reason why we just got an irq */
diff --git a/drivers/serial/imx.c b/drivers/serial/imx.c
index dc19671..56af1f5 100644
--- a/drivers/serial/imx.c
+++ b/drivers/serial/imx.c
@@ -308,7 +308,7 @@ static void imx_start_tx(struct uart_port *port)

static irqreturn_t imx_rtsint(int irq, void *dev_id)
{
- struct imx_port *sport = (struct imx_port *)dev_id;
+ struct imx_port *sport = dev_id;
unsigned int val = readl(sport->port.membase + USR1) & USR1_RTSS;
unsigned long flags;

@@ -324,7 +324,7 @@ static irqreturn_t imx_rtsint(int irq, void *dev_id)

static irqreturn_t imx_txint(int irq, void *dev_id)
{
- struct imx_port *sport = (struct imx_port *)dev_id;
+ struct imx_port *sport = dev_id;
struct circ_buf *xmit = &sport->port.info->xmit;
unsigned long flags;

diff --git a/drivers/serial/uartlite.c b/drivers/serial/uartlite.c
index dfef83f..3a970ed 100644
--- a/drivers/serial/uartlite.c
+++ b/drivers/serial/uartlite.c
@@ -142,7 +142,7 @@ static int ulite_transmit(struct uart_port *port, int stat)

static irqreturn_t ulite_isr(int irq, void *dev_id)
{
- struct uart_port *port = (struct uart_port *)dev_id;
+ struct uart_port *port = dev_id;
int busy;

do {
diff --git a/drivers/spi/spi_bfin5xx.c b/drivers/spi/spi_bfin5xx.c
index 2ef11bb..06fd859 100644
--- a/drivers/spi/spi_bfin5xx.c
+++ b/drivers/spi/spi_bfin5xx.c
@@ -575,7 +575,7 @@ static void giveback(struct driver_data *drv_data)

static irqreturn_t dma_irq_handler(int irq, void *dev_id)
{
- struct driver_data *drv_data = (struct driver_data *)dev_id;
+ struct driver_data *drv_data = dev_id;
struct spi_message *msg = drv_data->cur_msg;

dev_dbg(&drv_data->pdev->dev, "in dma_irq_handler\n");
diff --git a/drivers/video/bf54x-lq043fb.c b/drivers/video/bf54x-lq043fb.c
index 74d11c3..ac1402c 100644
--- a/drivers/video/bf54x-lq043fb.c
+++ b/drivers/video/bf54x-lq043fb.c
@@ -498,8 +498,7 @@ static struct lcd_device *lcd_dev;

static irqreturn_t bfin_bf54x_irq_error(int irq, void *dev_id)
{
-
- /*struct bfin_bf54xfb_info *info = (struct bfin_bf54xfb_info *)dev_id;*/
+ /*struct bfin_bf54xfb_info *info = dev_id;*/

u16 status = bfin_read_EPPI0_STATUS();

diff --git a/drivers/video/intelfb/intelfbhw.c b/drivers/video/intelfb/intelfbhw.c
index 5f6fb7d..fa1fff5 100644
--- a/drivers/video/intelfb/intelfbhw.c
+++ b/drivers/video/intelfb/intelfbhw.c
@@ -1971,7 +1971,7 @@ void intelfbhw_cursor_reset(struct intelfb_info *dinfo)
static irqreturn_t intelfbhw_irq(int irq, void *dev_id)
{
u16 tmp;
- struct intelfb_info *dinfo = (struct intelfb_info *)dev_id;
+ struct intelfb_info *dinfo = dev_id;

spin_lock(&dinfo->int_lock);

diff --git a/sound/oss/waveartist.c b/sound/oss/waveartist.c
index b48c729..8849041 100644
--- a/sound/oss/waveartist.c
+++ b/sound/oss/waveartist.c
@@ -835,7 +835,7 @@ static struct audio_driver waveartist_audio_driver = {
static irqreturn_t
waveartist_intr(int irq, void *dev_id)
{
- wavnc_info *devc = (wavnc_info *)dev_id;
+ wavnc_info *devc = dev_id;
int irqstatus, status;

spin_lock(&waveartist_lock);
--
1.5.2.4


2007-10-26 09:41:34

by Jeff Garzik

[permalink] [raw]
Subject: [PATCH] Remove always-true tests in irq handlers

In these drivers, dev_id is always non-NULL.

Signed-off-by: Jeff Garzik <[email protected]>
---
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

2007-10-26 09:41:47

by Jeff Garzik

[permalink] [raw]
Subject: [PATCH] ARM: Misc minor interrupt handler cleanups

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 <[email protected]>
---
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

2007-10-26 09:42:01

by Jeff Garzik

[permalink] [raw]
Subject: [PATCH] IA64, PPC, SPARC: minor irq handler cleanups

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 <[email protected]>
---
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

2007-10-26 09:42:32

by Jeff Garzik

[permalink] [raw]
Subject: [PATCH] media/video/planb: fix obvious interrupt handling bugs

irq handlers have returned a return value for years now... catch up with
the times.

Also, ditch unneeded prototype.

Signed-off-by: Jeff Garzik <[email protected]>
---
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

2007-10-26 09:42:46

by Jeff Garzik

[permalink] [raw]
Subject: [PATCH] drivers/net/irda/au1k_ir: fix obvious irq handler bugs

interrupt handlers return a return value these days.

Also, kill always-true test and unneeded void* cast.

Signed-off-by: Jeff Garzik <[email protected]>
---
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

2007-10-26 09:43:05

by Jeff Garzik

[permalink] [raw]
Subject: [PATCH] SCSI/gdth: kill unneeded 'irq' argument

Neither gdth_get_status() nor __gdth_interrupt() need their 'irq'
argument, so remove it.

Signed-off-by: Jeff Garzik <[email protected]>
---
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

2007-10-26 09:43:32

by Jeff Garzik

[permalink] [raw]
Subject: [PATCH] SCSI/sym53c416: kill pointless irq handler loop and test

- 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 <[email protected]>
---
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

2007-10-26 09:43:49

by Jeff Garzik

[permalink] [raw]
Subject: [PATCH] NETDRVR, USB: declance, lp486e, s3c2410_udc: minor irq handler cleanups

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 <[email protected]>
---
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

2007-10-26 09:45:30

by Kumar Gala

[permalink] [raw]
Subject: Re: [PATCH] IA64, PPC, SPARC: minor irq handler cleanups


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 <[email protected]>
> ---
> 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

2007-10-26 09:49:26

by Jeff Garzik

[permalink] [raw]
Subject: Re: [PATCH] IA64, PPC, SPARC: minor irq handler cleanups

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 <[email protected]>
>> ---
>> 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


2007-10-26 12:02:32

by Ralf Baechle

[permalink] [raw]
Subject: Re: [PATCH] Remove always-true tests in irq handlers

On Fri, Oct 26, 2007 at 05:40:24AM -0400, Jeff Garzik wrote:

> In these drivers, dev_id is always non-NULL.
>
> Signed-off-by: Jeff Garzik <[email protected]>
> ---
> arch/ia64/hp/sim/simeth.c | 5 -----
> arch/mips/pmc-sierra/msp71xx/msp_hwbutton.c | 5 +----

Acked-by: Ralf Baechle <[email protected]>

Ralf

2007-10-26 12:29:58

by John W. Linville

[permalink] [raw]
Subject: Re: [PATCH] Remove pointless casts from void pointers,

On Fri, Oct 26, 2007 at 05:40:22AM -0400, Jeff Garzik wrote:
> mostly in and around irq handlers.
>
> Signed-off-by: Jeff Garzik <[email protected]>
> ---

> 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
[email protected]

2007-10-26 13:38:39

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: [PATCH] Remove pointless casts from void pointers,

On 10/26/07, Jeff Garzik <[email protected]> wrote:
> drivers/input/touchscreen/h3600_ts_input.c | 4 ++--

Acked-by: Dmitry Torokhov <[email protected]>

--
Dmitry

2007-10-26 14:46:34

by Josh Boyer

[permalink] [raw]
Subject: Re: [PATCH] Remove pointless casts from void pointers,

On Fri, 26 Oct 2007 05:40:22 -0400 (EDT)
Jeff Garzik <[email protected]> wrote:

> mostly in and around irq handlers.
>
> Signed-off-by: Jeff Garzik <[email protected]>
> ---

> drivers/serial/uartlite.c | 2 +-

Acked-by: Josh Boyer <[email protected]

2007-10-26 14:55:21

by Kumar Gala

[permalink] [raw]
Subject: Re: [PATCH] IA64, PPC, SPARC: minor irq handler cleanups


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 <[email protected]>
>>> ---
>>> 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

2007-10-26 15:01:15

by Holger Schurig

[permalink] [raw]
Subject: Re: [PATCH] Remove pointless casts from void pointers,

> drivers/net/wireless/libertas/if_cs.c | 2 +-

ACK

2007-10-26 21:56:49

by Lennert Buytenhek

[permalink] [raw]
Subject: Re: [PATCH] ARM: Misc minor interrupt handler cleanups

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 <[email protected]>

FWIW

Acked-by: Lennert Buytenhek <[email protected]>


> ---
> 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

2007-10-26 21:58:21

by Lennert Buytenhek

[permalink] [raw]
Subject: Re: [PATCH] Remove pointless casts from void pointers,

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 <[email protected]>

2007-10-29 09:54:36

by Boaz Harrosh

[permalink] [raw]
Subject: Re: [PATCH] SCSI/gdth: kill unneeded 'irq' argument

On Fri, Oct 26 2007 at 11:40 +0200, Jeff Garzik <[email protected]> wrote:
> Neither gdth_get_status() nor __gdth_interrupt() need their 'irq'
> argument, so remove it.
>
> Signed-off-by: Jeff Garzik <[email protected]>
> ---
> 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