* Copyright (c) 2004 Intel Corporation.  All rights reserved.
  * Copyright (c) 2004 Topspin Corporation.  All rights reserved.
  * Copyright (c) 2004 Voltaire Corporation.  All rights reserved.
+ * Copyright (c) 2005 Cisco Systems.  All rights reserved.
  *
  * This software is available to you under a choice of one of two
  * licenses.  You may choose to be licensed under the terms of the GNU
 {
        struct ib_pd *pd;
 
-       pd = device->alloc_pd(device);
+       pd = device->alloc_pd(device, NULL, NULL);
 
        if (!IS_ERR(pd)) {
-               pd->device = device;
+               pd->device  = device;
+               pd->uobject = NULL;
                atomic_set(&pd->usecnt, 0);
        }
 
        ah = pd->device->create_ah(pd, ah_attr);
 
        if (!IS_ERR(ah)) {
-               ah->device = pd->device;
-               ah->pd     = pd;
+               ah->device  = pd->device;
+               ah->pd      = pd;
+               ah->uobject = NULL;
                atomic_inc(&pd->usecnt);
        }
 
 {
        struct ib_qp *qp;
 
-       qp = pd->device->create_qp(pd, qp_init_attr);
+       qp = pd->device->create_qp(pd, qp_init_attr, NULL);
 
        if (!IS_ERR(qp)) {
                qp->device        = pd->device;
                qp->send_cq       = qp_init_attr->send_cq;
                qp->recv_cq       = qp_init_attr->recv_cq;
                qp->srq           = qp_init_attr->srq;
+               qp->uobject       = NULL;
                qp->event_handler = qp_init_attr->event_handler;
                qp->qp_context    = qp_init_attr->qp_context;
                qp->qp_type       = qp_init_attr->qp_type;
 {
        struct ib_cq *cq;
 
-       cq = device->create_cq(device, cqe);
+       cq = device->create_cq(device, cqe, NULL, NULL);
 
        if (!IS_ERR(cq)) {
                cq->device        = device;
+               cq->uobject       = NULL;
                cq->comp_handler  = comp_handler;
                cq->event_handler = event_handler;
                cq->cq_context    = cq_context;
        mr = pd->device->get_dma_mr(pd, mr_access_flags);
 
        if (!IS_ERR(mr)) {
-               mr->device = pd->device;
-               mr->pd     = pd;
+               mr->device  = pd->device;
+               mr->pd      = pd;
+               mr->uobject = NULL;
                atomic_inc(&pd->usecnt);
                atomic_set(&mr->usecnt, 0);
        }
                                     mr_access_flags, iova_start);
 
        if (!IS_ERR(mr)) {
-               mr->device = pd->device;
-               mr->pd     = pd;
+               mr->device  = pd->device;
+               mr->pd      = pd;
+               mr->uobject = NULL;
                atomic_inc(&pd->usecnt);
                atomic_set(&mr->usecnt, 0);
        }
 
        mw = pd->device->alloc_mw(pd);
        if (!IS_ERR(mw)) {
-               mw->device = pd->device;
-               mw->pd     = pd;
+               mw->device  = pd->device;
+               mw->pd      = pd;
+               mw->uobject = NULL;
                atomic_inc(&pd->usecnt);
        }