* [PATCH] IB/mlx4: Rework special QP creation error path
@ 2016-11-14 16:44 Bart Van Assche
[not found] ` <3a41daa7-cfb8-7374-5dab-dfa3b1bf83ff-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
0 siblings, 1 reply; 4+ messages in thread
From: Bart Van Assche @ 2016-11-14 16:44 UTC (permalink / raw)
To: Doug Ledford
Cc: Yishai Hadas, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
The special QP creation error path relies on offset_of(struct mlx4_ib_sqp,
qp) == 0. Remove this assumption because that makes the QP creation
code easier to understand.
Signed-off-by: Bart Van Assche <bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
Cc: Yishai Hadas <yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
---
drivers/infiniband/hw/mlx4/qp.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c
index 570bc86..b63d6be 100644
--- a/drivers/infiniband/hw/mlx4/qp.c
+++ b/drivers/infiniband/hw/mlx4/qp.c
@@ -644,7 +644,7 @@ static int create_qp_common(struct mlx4_ib_dev *dev, struct ib_pd *pd,
int qpn;
int err;
struct ib_qp_cap backup_cap;
- struct mlx4_ib_sqp *sqp;
+ struct mlx4_ib_sqp *sqp = NULL;
struct mlx4_ib_qp *qp;
enum mlx4_ib_qp_type qp_type = (enum mlx4_ib_qp_type) init_attr->qp_type;
struct mlx4_ib_cq *mcq;
@@ -933,7 +933,9 @@ static int create_qp_common(struct mlx4_ib_dev *dev, struct ib_pd *pd,
mlx4_db_free(dev->dev, &qp->db);
err:
- if (!*caller_qp)
+ if (sqp)
+ kfree(sqp);
+ else if (!*caller_qp)
kfree(qp);
return err;
}
--
2.10.1
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 4+ messages in thread[parent not found: <3a41daa7-cfb8-7374-5dab-dfa3b1bf83ff-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>]
* Re: [PATCH] IB/mlx4: Rework special QP creation error path [not found] ` <3a41daa7-cfb8-7374-5dab-dfa3b1bf83ff-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org> @ 2016-11-14 19:33 ` Laurence Oberman 2016-11-15 8:48 ` Yishai Hadas 2016-12-14 18:01 ` Doug Ledford 2 siblings, 0 replies; 4+ messages in thread From: Laurence Oberman @ 2016-11-14 19:33 UTC (permalink / raw) To: Bart Van Assche Cc: Doug Ledford, Yishai Hadas, linux-rdma-u79uwXL29TY76Z2rM5mHXA ----- Original Message ----- > From: "Bart Van Assche" <bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org> > To: "Doug Ledford" <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> > Cc: "Yishai Hadas" <yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > Sent: Monday, November 14, 2016 11:44:11 AM > Subject: [PATCH] IB/mlx4: Rework special QP creation error path > > The special QP creation error path relies on offset_of(struct mlx4_ib_sqp, > qp) == 0. Remove this assumption because that makes the QP creation > code easier to understand. > > Signed-off-by: Bart Van Assche <bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org> > Cc: Yishai Hadas <yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> > --- > drivers/infiniband/hw/mlx4/qp.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/infiniband/hw/mlx4/qp.c > b/drivers/infiniband/hw/mlx4/qp.c > index 570bc86..b63d6be 100644 > --- a/drivers/infiniband/hw/mlx4/qp.c > +++ b/drivers/infiniband/hw/mlx4/qp.c > @@ -644,7 +644,7 @@ static int create_qp_common(struct mlx4_ib_dev *dev, > struct ib_pd *pd, > int qpn; > int err; > struct ib_qp_cap backup_cap; > - struct mlx4_ib_sqp *sqp; > + struct mlx4_ib_sqp *sqp = NULL; > struct mlx4_ib_qp *qp; > enum mlx4_ib_qp_type qp_type = (enum mlx4_ib_qp_type) init_attr->qp_type; > struct mlx4_ib_cq *mcq; > @@ -933,7 +933,9 @@ static int create_qp_common(struct mlx4_ib_dev *dev, > struct ib_pd *pd, > mlx4_db_free(dev->dev, &qp->db); > > err: > - if (!*caller_qp) > + if (sqp) > + kfree(sqp); > + else if (!*caller_qp) > kfree(qp); > return err; > } > -- > 2.10.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > This looks fine to me. Reviewed-by: Laurence Oberman <loberman-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] IB/mlx4: Rework special QP creation error path [not found] ` <3a41daa7-cfb8-7374-5dab-dfa3b1bf83ff-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org> 2016-11-14 19:33 ` Laurence Oberman @ 2016-11-15 8:48 ` Yishai Hadas 2016-12-14 18:01 ` Doug Ledford 2 siblings, 0 replies; 4+ messages in thread From: Yishai Hadas @ 2016-11-15 8:48 UTC (permalink / raw) To: Bart Van Assche Cc: Doug Ledford, Yishai Hadas, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org On 11/14/2016 6:44 PM, Bart Van Assche wrote: > The special QP creation error path relies on offset_of(struct mlx4_ib_sqp, > qp) == 0. Remove this assumption because that makes the QP creation > code easier to understand. > > Signed-off-by: Bart Van Assche <bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org> > Cc: Yishai Hadas <yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> > --- > drivers/infiniband/hw/mlx4/qp.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c > index 570bc86..b63d6be 100644 > --- a/drivers/infiniband/hw/mlx4/qp.c > +++ b/drivers/infiniband/hw/mlx4/qp.c > @@ -644,7 +644,7 @@ static int create_qp_common(struct mlx4_ib_dev *dev, struct ib_pd *pd, > int qpn; > int err; > struct ib_qp_cap backup_cap; > - struct mlx4_ib_sqp *sqp; > + struct mlx4_ib_sqp *sqp = NULL; > struct mlx4_ib_qp *qp; > enum mlx4_ib_qp_type qp_type = (enum mlx4_ib_qp_type) init_attr->qp_type; > struct mlx4_ib_cq *mcq; > @@ -933,7 +933,9 @@ static int create_qp_common(struct mlx4_ib_dev *dev, struct ib_pd *pd, > mlx4_db_free(dev->dev, &qp->db); > > err: > - if (!*caller_qp) > + if (sqp) > + kfree(sqp); > + else if (!*caller_qp) > kfree(qp); > return err; > } > Looks fine, thanks. Reviewed-by: Yishai Hadas <yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] IB/mlx4: Rework special QP creation error path [not found] ` <3a41daa7-cfb8-7374-5dab-dfa3b1bf83ff-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org> 2016-11-14 19:33 ` Laurence Oberman 2016-11-15 8:48 ` Yishai Hadas @ 2016-12-14 18:01 ` Doug Ledford 2 siblings, 0 replies; 4+ messages in thread From: Doug Ledford @ 2016-12-14 18:01 UTC (permalink / raw) To: Bart Van Assche Cc: Yishai Hadas, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org [-- Attachment #1.1: Type: text/plain, Size: 512 bytes --] On 11/14/2016 11:44 AM, Bart Van Assche wrote: > The special QP creation error path relies on offset_of(struct mlx4_ib_sqp, > qp) == 0. Remove this assumption because that makes the QP creation > code easier to understand. > > Signed-off-by: Bart Van Assche <bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org> > Cc: Yishai Hadas <yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> Thanks, applied. -- Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> GPG Key ID: 0E572FDD [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 884 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-12-14 18:01 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-14 16:44 [PATCH] IB/mlx4: Rework special QP creation error path Bart Van Assche
[not found] ` <3a41daa7-cfb8-7374-5dab-dfa3b1bf83ff-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2016-11-14 19:33 ` Laurence Oberman
2016-11-15 8:48 ` Yishai Hadas
2016-12-14 18:01 ` Doug Ledford
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).