diff options
author | Joachim Fenkes <fenkes@de.ibm.com> | 2007-05-09 07:48:20 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2007-05-14 16:40:05 -0400 |
commit | c7a14939e78e75dd90b54cb0df371019bc6d3e89 (patch) | |
tree | 4c139f1abea8de4e0211f79a1f990ea80bd8f883 /drivers/infiniband | |
parent | c55a0ddd8ebdd657224449c2fbfcd427e054c8cc (diff) |
IB/ehca: Remove _irqsave, move #ifdef
- In ehca_process_eq(), we're IRQ safe throughout the whole function, so we
don't need another _irqsave in the middle of flight.
- take_over_work() is only called by comp_pool_callback(), so it can move
into the same #ifdef block.
Signed-off-by: Joachim Fenkes <fenkes@de.ibm.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/ehca/ehca_irq.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/infiniband/hw/ehca/ehca_irq.c b/drivers/infiniband/hw/ehca/ehca_irq.c index 82dda2faf4d0..100329ba3343 100644 --- a/drivers/infiniband/hw/ehca/ehca_irq.c +++ b/drivers/infiniband/hw/ehca/ehca_irq.c | |||
@@ -517,12 +517,11 @@ void ehca_process_eq(struct ehca_shca *shca, int is_irq) | |||
517 | else { | 517 | else { |
518 | struct ehca_cq *cq = eq->eqe_cache[i].cq; | 518 | struct ehca_cq *cq = eq->eqe_cache[i].cq; |
519 | comp_event_callback(cq); | 519 | comp_event_callback(cq); |
520 | spin_lock_irqsave(&ehca_cq_idr_lock, flags); | 520 | spin_lock(&ehca_cq_idr_lock); |
521 | cq->nr_events--; | 521 | cq->nr_events--; |
522 | if (!cq->nr_events) | 522 | if (!cq->nr_events) |
523 | wake_up(&cq->wait_completion); | 523 | wake_up(&cq->wait_completion); |
524 | spin_unlock_irqrestore(&ehca_cq_idr_lock, | 524 | spin_unlock(&ehca_cq_idr_lock); |
525 | flags); | ||
526 | } | 525 | } |
527 | } else { | 526 | } else { |
528 | ehca_dbg(&shca->ib_device, "Got non completion event"); | 527 | ehca_dbg(&shca->ib_device, "Got non completion event"); |
@@ -711,6 +710,7 @@ static void destroy_comp_task(struct ehca_comp_pool *pool, | |||
711 | kthread_stop(task); | 710 | kthread_stop(task); |
712 | } | 711 | } |
713 | 712 | ||
713 | #ifdef CONFIG_HOTPLUG_CPU | ||
714 | static void take_over_work(struct ehca_comp_pool *pool, | 714 | static void take_over_work(struct ehca_comp_pool *pool, |
715 | int cpu) | 715 | int cpu) |
716 | { | 716 | { |
@@ -735,7 +735,6 @@ static void take_over_work(struct ehca_comp_pool *pool, | |||
735 | 735 | ||
736 | } | 736 | } |
737 | 737 | ||
738 | #ifdef CONFIG_HOTPLUG_CPU | ||
739 | static int comp_pool_callback(struct notifier_block *nfb, | 738 | static int comp_pool_callback(struct notifier_block *nfb, |
740 | unsigned long action, | 739 | unsigned long action, |
741 | void *hcpu) | 740 | void *hcpu) |