mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-07 13:43:51 +00:00
[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: Jeff Garzik <jgarzik@redhat.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
parent
8911c9e334
commit
e19166d5df
@ -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,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
|||||||
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)
|
|||||||
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
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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) {
|
|||||||
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;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user