Commit e19166d5 authored by Jeff Garzik's avatar Jeff Garzik Committed by James Bottomley
Browse files

[SCSI] aha152x, eata, u14-34f: minor irq handler cleanups



- remove pointless casts from void*

- remove needless references to 'irq' function argument, when that
  information is already stored somewhere in a driver-private struct.

- where the 'irq' function argument is known never to be used, rename
  it to 'dummy' to make this more obvious

- remove always-false tests for dev_id==NULL

- remove always-true tests for 'irq == host_struct->irq'

- replace per-irq lookup functions and tables with a direct reference
  to data object obtained via 'dev_id' function argument, passed from
  request_irq()

This change's main purpose is to prepare for the patchset in
jgarzik/misc-2.6.git#irq-remove, that explores removal of the
never-used 'irq' argument in each interrupt handler.
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
parent 8911c9e3
...@@ -1432,15 +1432,10 @@ static void run(struct work_struct *work) ...@@ -1432,15 +1432,10 @@ static void run(struct work_struct *work)
*/ */
static irqreturn_t intr(int irqno, void *dev_id) static irqreturn_t intr(int irqno, void *dev_id)
{ {
struct Scsi_Host *shpnt = (struct Scsi_Host *)dev_id; struct Scsi_Host *shpnt = dev_id;
unsigned long flags; unsigned long flags;
unsigned char rev, dmacntrl0; unsigned char rev, dmacntrl0;
if (!shpnt) {
printk(KERN_ERR "aha152x: catched interrupt %d for unknown controller.\n", irqno);
return IRQ_NONE;
}
/* /*
* Read a couple of registers that are known to not be all 1's. If * Read a couple of registers that are known to not be all 1's. If
* we read all 1's (-1), that means that either: * we read all 1's (-1), that means that either:
......
...@@ -2286,17 +2286,14 @@ static void flush_dev(struct scsi_device *dev, unsigned long cursec, ...@@ -2286,17 +2286,14 @@ static void flush_dev(struct scsi_device *dev, unsigned long cursec,
} }
} }
static irqreturn_t ihdlr(int irq, struct Scsi_Host *shost) static irqreturn_t ihdlr(struct Scsi_Host *shost)
{ {
struct scsi_cmnd *SCpnt; struct scsi_cmnd *SCpnt;
unsigned int i, k, c, status, tstatus, reg; unsigned int i, k, c, status, tstatus, reg;
struct mssp *spp; struct mssp *spp;
struct mscp *cpp; struct mscp *cpp;
struct hostdata *ha = (struct hostdata *)shost->hostdata; struct hostdata *ha = (struct hostdata *)shost->hostdata;
int irq = shost->irq;
if (shost->irq != irq)
panic("%s: ihdlr, irq %d, shost->irq %d.\n", ha->board_name, irq,
shost->irq);
/* Check if this board need to be serviced */ /* Check if this board need to be serviced */
if (!(inb(shost->io_port + REG_AUX_STATUS) & IRQ_ASSERTED)) if (!(inb(shost->io_port + REG_AUX_STATUS) & IRQ_ASSERTED))
...@@ -2535,7 +2532,7 @@ static irqreturn_t ihdlr(int irq, struct Scsi_Host *shost) ...@@ -2535,7 +2532,7 @@ static irqreturn_t ihdlr(int irq, struct Scsi_Host *shost)
return IRQ_NONE; return IRQ_NONE;
} }
static irqreturn_t do_interrupt_handler(int irq, void *shap) static irqreturn_t do_interrupt_handler(int dummy, void *shap)
{ {
struct Scsi_Host *shost; struct Scsi_Host *shost;
unsigned int j; unsigned int j;
...@@ -2548,7 +2545,7 @@ static irqreturn_t do_interrupt_handler(int irq, void *shap) ...@@ -2548,7 +2545,7 @@ static irqreturn_t do_interrupt_handler(int irq, void *shap)
shost = sh[j]; shost = sh[j];
spin_lock_irqsave(shost->host_lock, spin_flags); spin_lock_irqsave(shost->host_lock, spin_flags);
ret = ihdlr(irq, shost); ret = ihdlr(shost);
spin_unlock_irqrestore(shost->host_lock, spin_flags); spin_unlock_irqrestore(shost->host_lock, spin_flags);
return ret; return ret;
} }
......
...@@ -1715,13 +1715,12 @@ static void flush_dev(struct scsi_device *dev, unsigned long cursec, unsigned in ...@@ -1715,13 +1715,12 @@ static void flush_dev(struct scsi_device *dev, unsigned long cursec, unsigned in
} }
static irqreturn_t ihdlr(int irq, unsigned int j) { static irqreturn_t ihdlr(unsigned int j)
{
struct scsi_cmnd *SCpnt; struct scsi_cmnd *SCpnt;
unsigned int i, k, c, status, tstatus, reg, ret; unsigned int i, k, c, status, tstatus, reg, ret;
struct mscp *spp, *cpp; struct mscp *spp, *cpp;
int irq = sh[j]->irq;
if (sh[j]->irq != irq)
panic("%s: ihdlr, irq %d, sh[j]->irq %d.\n", BN(j), irq, sh[j]->irq);
/* Check if this board need to be serviced */ /* Check if this board need to be serviced */
if (!((reg = inb(sh[j]->io_port + REG_SYS_INTR)) & IRQ_ASSERTED)) goto none; if (!((reg = inb(sh[j]->io_port + REG_SYS_INTR)) & IRQ_ASSERTED)) goto none;
...@@ -1935,7 +1934,7 @@ static irqreturn_t do_interrupt_handler(int irq, void *shap) { ...@@ -1935,7 +1934,7 @@ static irqreturn_t do_interrupt_handler(int irq, void *shap) {
if ((j = (unsigned int)((char *)shap - sha)) >= num_boards) return IRQ_NONE; if ((j = (unsigned int)((char *)shap - sha)) >= num_boards) return IRQ_NONE;
spin_lock_irqsave(sh[j]->host_lock, spin_flags); spin_lock_irqsave(sh[j]->host_lock, spin_flags);
ret = ihdlr(irq, j); ret = ihdlr(j);
spin_unlock_irqrestore(sh[j]->host_lock, spin_flags); spin_unlock_irqrestore(sh[j]->host_lock, spin_flags);
return ret; return ret;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment