[openib-general] Re: merge rdma_cm and ib_addr upstream
Roland Dreier
rdreier at cisco.com
Tue Jan 10 07:20:21 PST 2006
Or> Just to make sure, would the __be64 node_guid field of struct
Or> ib_device have the exact semantics of the __be64 node_guid
Or> field of struct ib_device_attr ? iser uses it from the attr
Or> struct and we can sure move to use it from the device struct.
Yes, that's right. Something like the patch below (compile tested
only) is what is required.
- R.
---
Move iSER from getting node_guid via ib_query_device() to using the
node_guid field in struct ib_device, since ib_query_device() will stop
returning the node_guid soon.
Signed-off-by: Roland Dreier <rolandd at cisco.com>
--- infiniband/ulp/iser/iser_verbs.c (revision 4866)
+++ infiniband/ulp/iser/iser_verbs.c (working copy)
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2005 Cisco Systems. All rights reserved.
+ * Copyright (c) 2005, 2006 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
@@ -73,8 +73,6 @@ int iser_create_adaptor_ib_res(struct is
struct ib_device *device = p_iser_adaptor->device;
struct ib_fmr_pool_param params;
- ib_query_device(device, &(p_iser_adaptor->device_attr));
-
strcpy(p_iser_adaptor->name, device->name);
iser_dbg("setting device name %s as adatptor name\n", device->name);
@@ -234,23 +232,16 @@ int iser_free_qp_and_id(struct iser_conn
struct iser_adaptor *iser_adaptor_find_by_device(struct rdma_cm_id *cma_id)
{
- struct ib_device_attr *p_device_attr = NULL;
struct list_head *p_list;
struct iser_adaptor *p_adaptor = NULL;
- p_device_attr = kmalloc(sizeof *p_device_attr, GFP_KERNEL);
- if(p_device_attr == NULL)
- goto end;
-
- ib_query_device(cma_id->device, p_device_attr);
-
spin_lock(&ig.adaptor_list_lock);
p_list = ig.adaptor_list.next;
while (p_list != &ig.adaptor_list) {
p_adaptor = list_entry(p_list, struct iser_adaptor, ig_list);
/* find if there's a match using the device GUID */
- if (p_adaptor->device_attr.node_guid == p_device_attr->node_guid)
+ if (p_adaptor->device->node_guid == cma_id->device->node_guid)
break;
}
@@ -268,7 +259,6 @@ struct iser_adaptor *iser_adaptor_find_b
}
end:
spin_unlock(&ig.adaptor_list_lock);
- kfree(p_device_attr);
return p_adaptor;
}
--- infiniband/ulp/iser/iser.h (revision 4866)
+++ infiniband/ulp/iser/iser.h (working copy)
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2004, 2005 Voltaire, Inc. All rights reserved.
- * Copyright (c) 2005 Cisco Systems. All rights reserved.
+ * Copyright (c) 2005, 2006 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
@@ -105,7 +105,6 @@ struct iser_adaptor {
struct list_head ig_list; /* entry in ig adaptors list */
struct ib_device *device;
- struct ib_device_attr device_attr;
struct ib_pd *pd;
struct ib_cq *cq;
More information about the general
mailing list