aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/qedr/main.c
diff options
context:
space:
mode:
authorKamal Heib <kamalheib1@gmail.com>2019-04-29 07:59:06 -0400
committerJason Gunthorpe <jgg@mellanox.com>2019-05-03 09:56:56 -0400
commitdd05cb828d0ebecd3d772075fccb85ec3618bedf (patch)
treef209a5fe272c5c41638b3ea7bb024193dea441d5 /drivers/infiniband/hw/qedr/main.c
parenteb15c78b05bd9fbac45ee5b56aaf29b2570b5238 (diff)
RDMA: Get rid of iw_cm_verbs
Integrate iw_cm_verbs data members into ib_device_ops and ib_device structs, this is done to achieve the following: 1) Avoid memory related bugs durring error unwind 2) Make the code more cleaner 3) Reduce code duplication Signed-off-by: Kamal Heib <kamalheib1@gmail.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Diffstat (limited to 'drivers/infiniband/hw/qedr/main.c')
-rw-r--r--drivers/infiniband/hw/qedr/main.c25
1 files changed, 10 insertions, 15 deletions
diff --git a/drivers/infiniband/hw/qedr/main.c b/drivers/infiniband/hw/qedr/main.c
index a0a49ed26860..083c2c00a8e9 100644
--- a/drivers/infiniband/hw/qedr/main.c
+++ b/drivers/infiniband/hw/qedr/main.c
@@ -148,6 +148,14 @@ static const struct attribute_group qedr_attr_group = {
148 148
149static const struct ib_device_ops qedr_iw_dev_ops = { 149static const struct ib_device_ops qedr_iw_dev_ops = {
150 .get_port_immutable = qedr_iw_port_immutable, 150 .get_port_immutable = qedr_iw_port_immutable,
151 .iw_accept = qedr_iw_accept,
152 .iw_add_ref = qedr_iw_qp_add_ref,
153 .iw_connect = qedr_iw_connect,
154 .iw_create_listen = qedr_iw_create_listen,
155 .iw_destroy_listen = qedr_iw_destroy_listen,
156 .iw_get_qp = qedr_iw_get_qp,
157 .iw_reject = qedr_iw_reject,
158 .iw_rem_ref = qedr_iw_qp_rem_ref,
151 .query_gid = qedr_iw_query_gid, 159 .query_gid = qedr_iw_query_gid,
152}; 160};
153 161
@@ -157,21 +165,8 @@ static int qedr_iw_register_device(struct qedr_dev *dev)
157 165
158 ib_set_device_ops(&dev->ibdev, &qedr_iw_dev_ops); 166 ib_set_device_ops(&dev->ibdev, &qedr_iw_dev_ops);
159 167
160 dev->ibdev.iwcm = kzalloc(sizeof(*dev->ibdev.iwcm), GFP_KERNEL); 168 memcpy(dev->ibdev.iw_ifname,
161 if (!dev->ibdev.iwcm) 169 dev->ndev->name, sizeof(dev->ibdev.iw_ifname));
162 return -ENOMEM;
163
164 dev->ibdev.iwcm->connect = qedr_iw_connect;
165 dev->ibdev.iwcm->accept = qedr_iw_accept;
166 dev->ibdev.iwcm->reject = qedr_iw_reject;
167 dev->ibdev.iwcm->create_listen = qedr_iw_create_listen;
168 dev->ibdev.iwcm->destroy_listen = qedr_iw_destroy_listen;
169 dev->ibdev.iwcm->add_ref = qedr_iw_qp_add_ref;
170 dev->ibdev.iwcm->rem_ref = qedr_iw_qp_rem_ref;
171 dev->ibdev.iwcm->get_qp = qedr_iw_get_qp;
172
173 memcpy(dev->ibdev.iwcm->ifname,
174 dev->ndev->name, sizeof(dev->ibdev.iwcm->ifname));
175 170
176 return 0; 171 return 0;
177} 172}