/* WARNING: Only wr_id and status are reliable at this point */
        r = (struct rpcrdma_mw *)(unsigned long)wc->wr_id;
-       dprintk("RPC:       %s: frmr %p (stale), status %s (%d)\n",
 -      pr_warn("RPC:       %s: frmr %p flushed, status %d\n",
 -              __func__, r, wc->status);
++      pr_warn("RPC:       %s: frmr %p flushed, status %s (%d)\n",
 +              __func__, r, ib_wc_status_msg(wc->status), wc->status);
        r->r.frmr.fr_state = FRMR_IS_STALE;
  }
  
 
        init_waitqueue_head(&ep->rep_connect_wait);
        INIT_DELAYED_WORK(&ep->rep_connect_worker, rpcrdma_connect_worker);
  
-       sendcq = ib_create_cq(ia->ri_id->device, rpcrdma_sendcq_upcall,
-                                 rpcrdma_cq_async_error_upcall, ep, &cq_attr);
 +      cq_attr.cqe = ep->rep_attr.cap.max_send_wr + 1;
 -                            rpcrdma_cq_async_error_upcall, ep,
 -                            ep->rep_attr.cap.max_send_wr + 1, 0);
+       sendcq = ib_create_cq(ia->ri_device, rpcrdma_sendcq_upcall,
++                            rpcrdma_cq_async_error_upcall, ep, &cq_attr);
        if (IS_ERR(sendcq)) {
                rc = PTR_ERR(sendcq);
                dprintk("RPC:       %s: failed to create send CQ: %i\n",
                goto out2;
        }
  
-       recvcq = ib_create_cq(ia->ri_id->device, rpcrdma_recvcq_upcall,
-                                 rpcrdma_cq_async_error_upcall, ep, &cq_attr);
 +      cq_attr.cqe = ep->rep_attr.cap.max_recv_wr + 1;
 -                            rpcrdma_cq_async_error_upcall, ep,
 -                            ep->rep_attr.cap.max_recv_wr + 1, 0);
+       recvcq = ib_create_cq(ia->ri_device, rpcrdma_recvcq_upcall,
++                            rpcrdma_cq_async_error_upcall, ep, &cq_attr);
        if (IS_ERR(recvcq)) {
                rc = PTR_ERR(recvcq);
                dprintk("RPC:       %s: failed to create recv CQ: %i\n",