summaryrefslogtreecommitdiffstats
path: root/drivers/block
diff options
context:
space:
mode:
authorStephen M. Cameron <scameron@beardog.cce.hp.com>2010-07-19 13:46:54 -0500
committerJens Axboe <jaxboe@fusionio.com>2010-08-07 18:52:30 +0200
commit8112586063fe53958d60218631d661533f304504 (patch)
tree7ee667fe782fe1c6b14fece28fbab5c3d24a0e4e /drivers/block
parentb2a4a43dbaf10383703d512bbe560d5a24da0bf2 (diff)
downloadop-kernel-dev-8112586063fe53958d60218631d661533f304504.zip
op-kernel-dev-8112586063fe53958d60218631d661533f304504.tar.gz
cciss: cleanup interrupt_not_for_us
cciss: cleanup interrupt_not_for_us In the case of MSI/MSIX interrutps, we don't need to check if the interrupt is for us, and in the case of the intx interrupt handler, when checking if the interrupt is for us, we don't need to check if we're using MSI/MSIX, we know we're not. Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com> Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Diffstat (limited to 'drivers/block')
-rw-r--r--drivers/block/cciss.c15
1 files changed, 1 insertions, 14 deletions
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index 35a9f08c..fdf1b79 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -3376,8 +3376,7 @@ static inline int interrupt_pending(ctlr_info_t *h)
static inline long interrupt_not_for_us(ctlr_info_t *h)
{
- return !(h->msi_vector || h->msix_vector) &&
- ((h->access.intr_pending(h) == 0) ||
+ return ((h->access.intr_pending(h) == 0) ||
(h->interrupts_enabled == 0));
}
@@ -3470,10 +3469,6 @@ static irqreturn_t do_cciss_intx(int irq, void *dev_id)
if (interrupt_not_for_us(h))
return IRQ_NONE;
- /*
- * If there are completed commands in the completion queue,
- * we had better do something about it.
- */
spin_lock_irqsave(&h->lock, flags);
while (interrupt_pending(h)) {
raw_tag = get_next_completion(h);
@@ -3484,7 +3479,6 @@ static irqreturn_t do_cciss_intx(int irq, void *dev_id)
raw_tag = process_nonindexed_cmd(h, raw_tag);
}
}
-
spin_unlock_irqrestore(&h->lock, flags);
return IRQ_HANDLED;
}
@@ -3498,12 +3492,6 @@ static irqreturn_t do_cciss_msix_intr(int irq, void *dev_id)
unsigned long flags;
u32 raw_tag;
- if (interrupt_not_for_us(h))
- return IRQ_NONE;
- /*
- * If there are completed commands in the completion queue,
- * we had better do something about it.
- */
spin_lock_irqsave(&h->lock, flags);
raw_tag = get_next_completion(h);
while (raw_tag != FIFO_EMPTY) {
@@ -3512,7 +3500,6 @@ static irqreturn_t do_cciss_msix_intr(int irq, void *dev_id)
else
raw_tag = process_nonindexed_cmd(h, raw_tag);
}
-
spin_unlock_irqrestore(&h->lock, flags);
return IRQ_HANDLED;
}
OpenPOWER on IntegriCloud