]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/infiniband/hw/ehca/ehca_eq.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[linux-2.6-omap-h63xx.git] / drivers / infiniband / hw / ehca / ehca_eq.c
index 4961eb88827cd85bb6438a5777c1458297f349e0..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;
@@ -96,24 +97,23 @@ int ehca_create_eq(struct ehca_shca *shca,
        for (i = 0; i < nr_pages; i++) {
                u64 rpage;
 
-               if (!(vpage = ipz_qpageit_get_inc(&eq->ipz_queue))) {
-                       ret = H_RESOURCE;
+               vpage = ipz_qpageit_get_inc(&eq->ipz_queue);
+               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;
                }
        }
@@ -122,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)
@@ -130,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)
@@ -144,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);
@@ -170,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);
 
@@ -180,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;
 }