diff options
author | Roland Dreier <rolandd@cisco.com> | 2005-10-24 13:55:29 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2005-10-24 13:55:29 -0400 |
commit | ec329a135974f1c400214dab02f09584d4beeba9 (patch) | |
tree | 235be754f76f4e7d51975d2434f226cfc75cdd08 /drivers/infiniband/hw/mthca | |
parent | bbf207860931b6a033d0fbcd170ae2332c0d8216 (diff) | |
parent | 5d7edb3c1a01310725d86f0d83fb3be45685dc82 (diff) |
Manual merge of for-linus to upstream (fix conflicts in drivers/infiniband/core/ucm.c)
Diffstat (limited to 'drivers/infiniband/hw/mthca')
-rw-r--r-- | drivers/infiniband/hw/mthca/mthca_eq.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/drivers/infiniband/hw/mthca/mthca_eq.c b/drivers/infiniband/hw/mthca/mthca_eq.c index f2afdc6c7e60..e5a047a6dbeb 100644 --- a/drivers/infiniband/hw/mthca/mthca_eq.c +++ b/drivers/infiniband/hw/mthca/mthca_eq.c | |||
@@ -411,20 +411,21 @@ static irqreturn_t mthca_tavor_interrupt(int irq, void *dev_ptr, struct pt_regs | |||
411 | writel(dev->eq_table.clr_mask, dev->eq_table.clr_int); | 411 | writel(dev->eq_table.clr_mask, dev->eq_table.clr_int); |
412 | 412 | ||
413 | ecr = readl(dev->eq_regs.tavor.ecr_base + 4); | 413 | ecr = readl(dev->eq_regs.tavor.ecr_base + 4); |
414 | if (ecr) { | 414 | if (!ecr) |
415 | writel(ecr, dev->eq_regs.tavor.ecr_base + | 415 | return IRQ_NONE; |
416 | MTHCA_ECR_CLR_BASE - MTHCA_ECR_BASE + 4); | ||
417 | 416 | ||
418 | for (i = 0; i < MTHCA_NUM_EQ; ++i) | 417 | writel(ecr, dev->eq_regs.tavor.ecr_base + |
419 | if (ecr & dev->eq_table.eq[i].eqn_mask && | 418 | MTHCA_ECR_CLR_BASE - MTHCA_ECR_BASE + 4); |
420 | mthca_eq_int(dev, &dev->eq_table.eq[i])) { | 419 | |
420 | for (i = 0; i < MTHCA_NUM_EQ; ++i) | ||
421 | if (ecr & dev->eq_table.eq[i].eqn_mask) { | ||
422 | if (mthca_eq_int(dev, &dev->eq_table.eq[i])) | ||
421 | tavor_set_eq_ci(dev, &dev->eq_table.eq[i], | 423 | tavor_set_eq_ci(dev, &dev->eq_table.eq[i], |
422 | dev->eq_table.eq[i].cons_index); | 424 | dev->eq_table.eq[i].cons_index); |
423 | tavor_eq_req_not(dev, dev->eq_table.eq[i].eqn); | 425 | tavor_eq_req_not(dev, dev->eq_table.eq[i].eqn); |
424 | } | 426 | } |
425 | } | ||
426 | 427 | ||
427 | return IRQ_RETVAL(ecr); | 428 | return IRQ_HANDLED; |
428 | } | 429 | } |
429 | 430 | ||
430 | static irqreturn_t mthca_tavor_msi_x_interrupt(int irq, void *eq_ptr, | 431 | static irqreturn_t mthca_tavor_msi_x_interrupt(int irq, void *eq_ptr, |