drm/radeon: bump the UMS driver version for r6xx/r7xx const buffer support
[safe/jmp/linux-2.6] / net / rds / iw.c
index 1b56905..b28fa85 100644 (file)
@@ -51,6 +51,7 @@ MODULE_PARM_DESC(fastreg_message_size, " Max size of a RDMA transfer (fastreg MR
 
 struct list_head rds_iw_devices;
 
+/* NOTE: if also grabbing iwdev lock, grab this first */
 DEFINE_SPINLOCK(iw_nodev_conns_lock);
 LIST_HEAD(iw_nodev_conns);
 
@@ -82,23 +83,16 @@ void rds_iw_add_one(struct ib_device *device)
        rds_iwdev->max_wrs = dev_attr->max_qp_wr;
        rds_iwdev->max_sge = min(dev_attr->max_sge, RDS_IW_MAX_SGE);
 
-       rds_iwdev->page_shift = max(PAGE_SHIFT, ffs(dev_attr->page_size_cap) - 1);
-
        rds_iwdev->dev = device;
        rds_iwdev->pd = ib_alloc_pd(device);
        if (IS_ERR(rds_iwdev->pd))
                goto free_dev;
 
        if (!rds_iwdev->dma_local_lkey) {
-               if (device->node_type != RDMA_NODE_RNIC) {
-                       rds_iwdev->mr = ib_get_dma_mr(rds_iwdev->pd,
-                                               IB_ACCESS_LOCAL_WRITE);
-               } else {
-                       rds_iwdev->mr = ib_get_dma_mr(rds_iwdev->pd,
-                                               IB_ACCESS_REMOTE_READ |
-                                               IB_ACCESS_REMOTE_WRITE |
-                                               IB_ACCESS_LOCAL_WRITE);
-               }
+               rds_iwdev->mr = ib_get_dma_mr(rds_iwdev->pd,
+                                       IB_ACCESS_REMOTE_READ |
+                                       IB_ACCESS_REMOTE_WRITE |
+                                       IB_ACCESS_LOCAL_WRITE);
                if (IS_ERR(rds_iwdev->mr))
                        goto err_pd;
        } else
@@ -145,7 +139,7 @@ void rds_iw_remove_one(struct ib_device *device)
        }
        spin_unlock_irq(&rds_iwdev->spinlock);
 
-       rds_iw_remove_conns(rds_iwdev);
+       rds_iw_destroy_conns(rds_iwdev);
 
        if (rds_iwdev->mr_pool)
                rds_iw_destroy_mr_pool(rds_iwdev->mr_pool);
@@ -190,8 +184,8 @@ static int rds_iw_conn_info_visitor(struct rds_connection *conn,
                ic = conn->c_transport_data;
                dev_addr = &ic->i_cm_id->route.addr.dev_addr;
 
-               ib_addr_get_sgid(dev_addr, (union ib_gid *) &iinfo->src_gid);
-               ib_addr_get_dgid(dev_addr, (union ib_gid *) &iinfo->dst_gid);
+               rdma_addr_get_sgid(dev_addr, (union ib_gid *) &iinfo->src_gid);
+               rdma_addr_get_dgid(dev_addr, (union ib_gid *) &iinfo->dst_gid);
 
                rds_iwdev = ib_get_client_data(ic->i_cm_id->device, &rds_iw_client);
                iinfo->max_send_wr = ic->i_send_ring.w_nr;
@@ -232,8 +226,8 @@ static int rds_iw_laddr_check(__be32 addr)
         * IB and iWARP capable NICs.
         */
        cm_id = rdma_create_id(NULL, NULL, RDMA_PS_TCP);
-       if (!cm_id)
-               return -EADDRNOTAVAIL;
+       if (IS_ERR(cm_id))
+               return PTR_ERR(cm_id);
 
        memset(&sin, 0, sizeof(sin));
        sin.sin_family = AF_INET;
@@ -258,7 +252,7 @@ static int rds_iw_laddr_check(__be32 addr)
 void rds_iw_exit(void)
 {
        rds_info_deregister_func(RDS_INFO_IWARP_CONNECTIONS, rds_iw_ic_info);
-       rds_iw_remove_nodev_conns();
+       rds_iw_destroy_nodev_conns();
        ib_unregister_client(&rds_iw_client);
        rds_iw_sysctl_exit();
        rds_iw_recv_exit();
@@ -290,6 +284,7 @@ struct rds_transport rds_iw_transport = {
        .flush_mrs              = rds_iw_flush_mrs,
        .t_owner                = THIS_MODULE,
        .t_name                 = "iwarp",
+       .t_type                 = RDS_TRANS_IWARP,
        .t_prefer_loopback      = 1,
 };