aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2008-04-18 19:22:52 -0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-04-25 10:52:30 -0400
commite19166d5df10be0ea404c4e346cf6be93bfb1d63 (patch)
tree43004d05713dc50a2fcb732b6514b5aa297f6347 /drivers/scsi
parent8911c9e3343c647b59727b47b10feca7ee9ac9c3 (diff)
[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>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/aha152x.c7
-rw-r--r--drivers/scsi/eata.c11
-rw-r--r--drivers/scsi/u14-34f.c9
3 files changed, 9 insertions, 18 deletions
diff --git a/drivers/scsi/aha152x.c b/drivers/scsi/aha152x.c
index 6ccdc96cc480..a09b2d3fdf5a 100644
--- a/drivers/scsi/aha152x.c
+++ b/drivers/scsi/aha152x.c
@@ -1432,15 +1432,10 @@ static void run(struct work_struct *work)
1432 */ 1432 */
1433static irqreturn_t intr(int irqno, void *dev_id) 1433static irqreturn_t intr(int irqno, void *dev_id)
1434{ 1434{
1435 struct Scsi_Host *shpnt = (struct Scsi_Host *)dev_id; 1435 struct Scsi_Host *shpnt = dev_id;
1436 unsigned long flags; 1436 unsigned long flags;
1437 unsigned char rev, dmacntrl0; 1437 unsigned char rev, dmacntrl0;
1438 1438
1439 if (!shpnt) {
1440 printk(KERN_ERR "aha152x: catched interrupt %d for unknown controller.\n", irqno);
1441 return IRQ_NONE;
1442 }
1443
1444 /* 1439 /*
1445 * Read a couple of registers that are known to not be all 1's. If 1440 * Read a couple of registers that are known to not be all 1's. If
1446 * we read all 1's (-1), that means that either: 1441 * we read all 1's (-1), that means that either:
diff --git a/drivers/scsi/eata.c b/drivers/scsi/eata.c
index 8be3d76656fa..a73a6bbb1b2b 100644
--- a/drivers/scsi/eata.c
+++ b/drivers/scsi/eata.c
@@ -2286,17 +2286,14 @@ static void flush_dev(struct scsi_device *dev, unsigned long cursec,
2286 } 2286 }
2287} 2287}
2288 2288
2289static irqreturn_t ihdlr(int irq, struct Scsi_Host *shost) 2289static irqreturn_t ihdlr(struct Scsi_Host *shost)
2290{ 2290{
2291 struct scsi_cmnd *SCpnt; 2291 struct scsi_cmnd *SCpnt;
2292 unsigned int i, k, c, status, tstatus, reg; 2292 unsigned int i, k, c, status, tstatus, reg;
2293 struct mssp *spp; 2293 struct mssp *spp;
2294 struct mscp *cpp; 2294 struct mscp *cpp;
2295 struct hostdata *ha = (struct hostdata *)shost->hostdata; 2295 struct hostdata *ha = (struct hostdata *)shost->hostdata;
2296 2296 int irq = shost->irq;
2297 if (shost->irq != irq)
2298 panic("%s: ihdlr, irq %d, shost->irq %d.\n", ha->board_name, irq,
2299 shost->irq);
2300 2297
2301 /* Check if this board need to be serviced */ 2298 /* Check if this board need to be serviced */
2302 if (!(inb(shost->io_port + REG_AUX_STATUS) & IRQ_ASSERTED)) 2299 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 return IRQ_NONE; 2532 return IRQ_NONE;
2536} 2533}
2537 2534
2538static irqreturn_t do_interrupt_handler(int irq, void *shap) 2535static irqreturn_t do_interrupt_handler(int dummy, void *shap)
2539{ 2536{
2540 struct Scsi_Host *shost; 2537 struct Scsi_Host *shost;
2541 unsigned int j; 2538 unsigned int j;
@@ -2548,7 +2545,7 @@ static irqreturn_t do_interrupt_handler(int irq, void *shap)
2548 shost = sh[j]; 2545 shost = sh[j];
2549 2546
2550 spin_lock_irqsave(shost->host_lock, spin_flags); 2547 spin_lock_irqsave(shost->host_lock, spin_flags);
2551 ret = ihdlr(irq, shost); 2548 ret = ihdlr(shost);
2552 spin_unlock_irqrestore(shost->host_lock, spin_flags); 2549 spin_unlock_irqrestore(shost->host_lock, spin_flags);
2553 return ret; 2550 return ret;
2554} 2551}
diff --git a/drivers/scsi/u14-34f.c b/drivers/scsi/u14-34f.c
index 58d7eee4fe81..640333b1e75c 100644
--- a/drivers/scsi/u14-34f.c
+++ b/drivers/scsi/u14-34f.c
@@ -1715,13 +1715,12 @@ static void flush_dev(struct scsi_device *dev, unsigned long cursec, unsigned in
1715 1715
1716} 1716}
1717 1717
1718static irqreturn_t ihdlr(int irq, unsigned int j) { 1718static irqreturn_t ihdlr(unsigned int j)
1719{
1719 struct scsi_cmnd *SCpnt; 1720 struct scsi_cmnd *SCpnt;
1720 unsigned int i, k, c, status, tstatus, reg, ret; 1721 unsigned int i, k, c, status, tstatus, reg, ret;
1721 struct mscp *spp, *cpp; 1722 struct mscp *spp, *cpp;
1722 1723 int irq = sh[j]->irq;
1723 if (sh[j]->irq != irq)
1724 panic("%s: ihdlr, irq %d, sh[j]->irq %d.\n", BN(j), irq, sh[j]->irq);
1725 1724
1726 /* Check if this board need to be serviced */ 1725 /* Check if this board need to be serviced */
1727 if (!((reg = inb(sh[j]->io_port + REG_SYS_INTR)) & IRQ_ASSERTED)) goto none; 1726 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 if ((j = (unsigned int)((char *)shap - sha)) >= num_boards) return IRQ_NONE; 1934 if ((j = (unsigned int)((char *)shap - sha)) >= num_boards) return IRQ_NONE;
1936 1935
1937 spin_lock_irqsave(sh[j]->host_lock, spin_flags); 1936 spin_lock_irqsave(sh[j]->host_lock, spin_flags);
1938 ret = ihdlr(irq, j); 1937 ret = ihdlr(j);
1939 spin_unlock_irqrestore(sh[j]->host_lock, spin_flags); 1938 spin_unlock_irqrestore(sh[j]->host_lock, spin_flags);
1940 return ret; 1939 return ret;
1941} 1940}