]> err.no Git - linux-2.6/blobdiff - drivers/infiniband/hw/ehca/ehca_eq.c
Merge branch 'for-2.6.26' of master.kernel.org:/pub/scm/linux/kernel/git/jwboyer...
[linux-2.6] / drivers / infiniband / hw / ehca / ehca_eq.c
index 4825975f88cf5752482f4aa2db58e2b6243b66a8..49660dfa186785f8d73b16b84e0ddcc141967cac 100644 (file)
@@ -54,7 +54,8 @@ int ehca_create_eq(struct ehca_shca *shca,
                   struct ehca_eq *eq,
                   const enum ehca_eq_type type, const u32 length)
 {
-       u64 ret;
+       int ret;
+       u64 h_ret;
        u32 nr_pages;
        u32 i;
        void *vpage;
@@ -73,21 +74,21 @@ int ehca_create_eq(struct ehca_shca *shca,
                return -EINVAL;
        }
 
-       ret = hipz_h_alloc_resource_eq(shca->ipz_hca_handle,
-                                      &eq->pf,
-                                      type,
-                                      length,
-                                      &eq->ipz_eq_handle,
-                                      &eq->length,
-                                      &nr_pages, &eq->ist);
+       h_ret = hipz_h_alloc_resource_eq(shca->ipz_hca_handle,
+                                        &eq->pf,
+                                        type,
+                                        length,
+                                        &eq->ipz_eq_handle,
+                                        &eq->length,
+                                        &nr_pages, &eq->ist);
 
-       if (ret != H_SUCCESS) {
+       if (h_ret != H_SUCCESS) {
                ehca_err(ib_dev, "Can't allocate EQ/NEQ. eq=%p", eq);
                return -EINVAL;
        }
 
-       ret = ipz_queue_ctor(&eq->ipz_queue, nr_pages,
-                            EHCA_PAGESIZE, sizeof(struct ehca_eqe), 0);
+       ret = ipz_queue_ctor(NULL, &eq->ipz_queue, nr_pages,
+                            EHCA_PAGESIZE, sizeof(struct ehca_eqe), 0, 0);
        if (!ret) {
                ehca_err(ib_dev, "Can't allocate EQ pages eq=%p", eq);
                goto create_eq_exit1;
@@ -97,24 +98,22 @@ int ehca_create_eq(struct ehca_shca *shca,
                u64 rpage;
 
                vpage = ipz_qpageit_get_inc(&eq->ipz_queue);
-               if (!vpage) {
-                       ret = H_RESOURCE;
+               if (!vpage)
                        goto create_eq_exit2;
-               }
 
                rpage = virt_to_abs(vpage);
-               ret = hipz_h_register_rpage_eq(shca->ipz_hca_handle,
-                                              eq->ipz_eq_handle,
-                                              &eq->pf,
-                                              0, 0, rpage, 1);
+               h_ret = hipz_h_register_rpage_eq(shca->ipz_hca_handle,
+                                                eq->ipz_eq_handle,
+                                                &eq->pf,
+                                                0, 0, rpage, 1);
 
                if (i == (nr_pages - 1)) {
                        /* last page */
                        vpage = ipz_qpageit_get_inc(&eq->ipz_queue);
-                       if (ret != H_SUCCESS || vpage)
+                       if (h_ret != H_SUCCESS || vpage)
                                goto create_eq_exit2;
                } else {
-                       if (ret != H_PAGE_REGISTERED || !vpage)
+                       if (h_ret != H_PAGE_REGISTERED || !vpage)
                                goto create_eq_exit2;
                }
        }
@@ -123,7 +122,7 @@ int ehca_create_eq(struct ehca_shca *shca,
 
        /* register interrupt handlers and initialize work queues */
        if (type == EHCA_EQ) {
-               ret = ibmebus_request_irq(NULL, eq->ist, ehca_interrupt_eq,
+               ret = ibmebus_request_irq(eq->ist, ehca_interrupt_eq,
                                          IRQF_DISABLED, "ehca_eq",
                                          (void *)shca);
                if (ret < 0)
@@ -131,7 +130,7 @@ int ehca_create_eq(struct ehca_shca *shca,
 
                tasklet_init(&eq->interrupt_task, ehca_tasklet_eq, (long)shca);
        } else if (type == EHCA_NEQ) {
-               ret = ibmebus_request_irq(NULL, eq->ist, ehca_interrupt_neq,
+               ret = ibmebus_request_irq(eq->ist, ehca_interrupt_neq,
                                          IRQF_DISABLED, "ehca_neq",
                                          (void *)shca);
                if (ret < 0)
@@ -145,7 +144,7 @@ int ehca_create_eq(struct ehca_shca *shca,
        return 0;
 
 create_eq_exit2:
-       ipz_queue_dtor(&eq->ipz_queue);
+       ipz_queue_dtor(NULL, &eq->ipz_queue);
 
 create_eq_exit1:
        hipz_h_destroy_eq(shca->ipz_hca_handle, eq);
@@ -171,7 +170,7 @@ int ehca_destroy_eq(struct ehca_shca *shca, struct ehca_eq *eq)
        u64 h_ret;
 
        spin_lock_irqsave(&eq->spinlock, flags);
-       ibmebus_free_irq(NULL, eq->ist, (void *)shca);
+       ibmebus_free_irq(eq->ist, (void *)shca);
 
        h_ret = hipz_h_destroy_eq(shca->ipz_hca_handle, eq);
 
@@ -181,7 +180,7 @@ int ehca_destroy_eq(struct ehca_shca *shca, struct ehca_eq *eq)
                ehca_err(&shca->ib_device, "Can't free EQ resources.");
                return -EINVAL;
        }
-       ipz_queue_dtor(&eq->ipz_queue);
+       ipz_queue_dtor(NULL, &eq->ipz_queue);
 
        return 0;
 }