Commit 25ef7563 authored by Alexander Schmidt's avatar Alexander Schmidt Committed by Roland Dreier

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: default avatarAlexander Schmidt <alexs@linux.vnet.ibm.com>
Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
parent 676ad585
...@@ -548,11 +548,10 @@ void ehca_process_eq(struct ehca_shca *shca, int is_irq) ...@@ -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) ...@@ -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)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment