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>
This commit is contained in:
Alexander Schmidt 2010-01-27 17:01:56 +00:00 committed by Roland Dreier
parent 676ad58553
commit 25ef756385
1 changed files with 2 additions and 3 deletions

View File

@ -548,11 +548,10 @@ void ehca_process_eq(struct ehca_shca *shca, int is_irq)
struct ehca_eq *eq = &shca->eq; struct ehca_eq *eq = &shca->eq;
struct ehca_eqe_cache_entry *eqe_cache = eq->eqe_cache; struct ehca_eqe_cache_entry *eqe_cache = eq->eqe_cache;
u64 eqe_value, ret; u64 eqe_value, ret;
unsigned long flags;
int eqe_cnt, i; int eqe_cnt, i;
int eq_empty = 0; int eq_empty = 0;
spin_lock_irqsave(&eq->irq_spinlock, flags); spin_lock(&eq->irq_spinlock);
if (is_irq) { if (is_irq) {
const int max_query_cnt = 100; const int max_query_cnt = 100;
int query_cnt = 0; int query_cnt = 0;
@ -643,7 +642,7 @@ void ehca_process_eq(struct ehca_shca *shca, int is_irq)
} while (1); } while (1);
unlock_irq_spinlock: unlock_irq_spinlock:
spin_unlock_irqrestore(&eq->irq_spinlock, flags); spin_unlock(&eq->irq_spinlock);
} }
void ehca_tasklet_eq(unsigned long data) void ehca_tasklet_eq(unsigned long data)