diff options
author | Alexander Schmidt <alexs@linux.vnet.ibm.com> | 2010-01-27 17:01:56 +0000 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2010-02-12 15:22:37 -0800 |
commit | 25ef756385ce01834504977c22bcce8d8f000e5b (patch) | |
tree | c8c9d9bd54e01767903ceaa192586050274c6d77 | |
parent | 676ad585531e965416fd958747894541dabcec96 (diff) | |
download | blackbird-op-linux-25ef756385ce01834504977c22bcce8d8f000e5b.tar.gz blackbird-op-linux-25ef756385ce01834504977c22bcce8d8f000e5b.zip |
IB/ehca: Do not turn off irqs in tasklet context
The irq_spinlock is only taken in tasklet context, so it is safe not to
disable hardware interrupts.
Signed-off-by: Alexander Schmidt <alexs@linux.vnet.ibm.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
-rw-r--r-- | drivers/infiniband/hw/ehca/ehca_irq.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/infiniband/hw/ehca/ehca_irq.c b/drivers/infiniband/hw/ehca/ehca_irq.c index 42be0b15084b..b2b6fea2b141 100644 --- a/drivers/infiniband/hw/ehca/ehca_irq.c +++ b/drivers/infiniband/hw/ehca/ehca_irq.c @@ -548,11 +548,10 @@ void ehca_process_eq(struct ehca_shca *shca, int is_irq) struct ehca_eq *eq = &shca->eq; struct ehca_eqe_cache_entry *eqe_cache = eq->eqe_cache; u64 eqe_value, ret; - unsigned long flags; int eqe_cnt, i; int eq_empty = 0; - spin_lock_irqsave(&eq->irq_spinlock, flags); + spin_lock(&eq->irq_spinlock); if (is_irq) { const int max_query_cnt = 100; int query_cnt = 0; @@ -643,7 +642,7 @@ void ehca_process_eq(struct ehca_shca *shca, int is_irq) } while (1); unlock_irq_spinlock: - spin_unlock_irqrestore(&eq->irq_spinlock, flags); + spin_unlock(&eq->irq_spinlock); } void ehca_tasklet_eq(unsigned long data) |