Signed-off-by: Christoph Lameter <[EMAIL PROTECTED]>
---
 drivers/infiniband/hw/ehca/ehca_irq.c |   22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

Index: linux-2.6/drivers/infiniband/hw/ehca/ehca_irq.c
===================================================================
--- linux-2.6.orig/drivers/infiniband/hw/ehca/ehca_irq.c        2007-11-15 
21:17:23.663404239 -0800
+++ linux-2.6/drivers/infiniband/hw/ehca/ehca_irq.c     2007-11-15 
21:25:39.310404188 -0800
@@ -646,7 +646,7 @@ static void queue_comp_task(struct ehca_
        cpu_id = find_next_online_cpu(pool);
        BUG_ON(!cpu_online(cpu_id));
 
-       cct = per_cpu_ptr(pool->cpu_comp_tasks, cpu_id);
+       cct = CPU_PTR(pool->cpu_comp_tasks, cpu_id);
        BUG_ON(!cct);
 
        spin_lock_irqsave(&cct->task_lock, flags);
@@ -654,7 +654,7 @@ static void queue_comp_task(struct ehca_
        spin_unlock_irqrestore(&cct->task_lock, flags);
        if (cq_jobs > 0) {
                cpu_id = find_next_online_cpu(pool);
-               cct = per_cpu_ptr(pool->cpu_comp_tasks, cpu_id);
+               cct = CPU_PTR(pool->cpu_comp_tasks, cpu_id);
                BUG_ON(!cct);
        }
 
@@ -727,7 +727,7 @@ static struct task_struct *create_comp_t
 {
        struct ehca_cpu_comp_task *cct;
 
-       cct = per_cpu_ptr(pool->cpu_comp_tasks, cpu);
+       cct = CPU_PTR(pool->cpu_comp_tasks, cpu);
        spin_lock_init(&cct->task_lock);
        INIT_LIST_HEAD(&cct->cq_list);
        init_waitqueue_head(&cct->wait_queue);
@@ -743,7 +743,7 @@ static void destroy_comp_task(struct ehc
        struct task_struct *task;
        unsigned long flags_cct;
 
-       cct = per_cpu_ptr(pool->cpu_comp_tasks, cpu);
+       cct = CPU_PTR(pool->cpu_comp_tasks, cpu);
 
        spin_lock_irqsave(&cct->task_lock, flags_cct);
 
@@ -759,7 +759,7 @@ static void destroy_comp_task(struct ehc
 
 static void __cpuinit take_over_work(struct ehca_comp_pool *pool, int cpu)
 {
-       struct ehca_cpu_comp_task *cct = per_cpu_ptr(pool->cpu_comp_tasks, cpu);
+       struct ehca_cpu_comp_task *cct = CPU_PTR(pool->cpu_comp_tasks, cpu);
        LIST_HEAD(list);
        struct ehca_cq *cq;
        unsigned long flags_cct;
@@ -772,8 +772,7 @@ static void __cpuinit take_over_work(str
                cq = list_entry(cct->cq_list.next, struct ehca_cq, entry);
 
                list_del(&cq->entry);
-               __queue_comp_task(cq, per_cpu_ptr(pool->cpu_comp_tasks,
-                                                 smp_processor_id()));
+               __queue_comp_task(cq, THIS_CPU(pool->cpu_comp_tasks));
        }
 
        spin_unlock_irqrestore(&cct->task_lock, flags_cct);
@@ -799,14 +798,14 @@ static int __cpuinit comp_pool_callback(
        case CPU_UP_CANCELED:
        case CPU_UP_CANCELED_FROZEN:
                ehca_gen_dbg("CPU: %x (CPU_CANCELED)", cpu);
-               cct = per_cpu_ptr(pool->cpu_comp_tasks, cpu);
+               cct = CPU_PTR(pool->cpu_comp_tasks, cpu);
                kthread_bind(cct->task, any_online_cpu(cpu_online_map));
                destroy_comp_task(pool, cpu);
                break;
        case CPU_ONLINE:
        case CPU_ONLINE_FROZEN:
                ehca_gen_dbg("CPU: %x (CPU_ONLINE)", cpu);
-               cct = per_cpu_ptr(pool->cpu_comp_tasks, cpu);
+               cct = CPU_PTR(pool->cpu_comp_tasks, cpu);
                kthread_bind(cct->task, cpu);
                wake_up_process(cct->task);
                break;
@@ -849,7 +848,8 @@ int ehca_create_comp_pool(void)
        spin_lock_init(&pool->last_cpu_lock);
        pool->last_cpu = any_online_cpu(cpu_online_map);
 
-       pool->cpu_comp_tasks = alloc_percpu(struct ehca_cpu_comp_task);
+       pool->cpu_comp_tasks = CPU_ALLOC(struct ehca_cpu_comp_task,
+                                               GFP_KERNEL | __GFP_ZERO);
        if (pool->cpu_comp_tasks == NULL) {
                kfree(pool);
                return -EINVAL;
@@ -883,6 +883,6 @@ void ehca_destroy_comp_pool(void)
                if (cpu_online(i))
                        destroy_comp_task(pool, i);
        }
-       free_percpu(pool->cpu_comp_tasks);
+       CPU_FREE(pool->cpu_comp_tasks);
        kfree(pool);
 }

-- 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to