svn commit: r325807 - in head/sys: dev/mlx5/mlx5_ib ofed/drivers/infiniband/hw/mthca ofed/include/rdma
Hans Petter Selasky
hselasky at FreeBSD.org
Tue Nov 14 14:51:39 UTC 2017
Author: hselasky
Date: Tue Nov 14 14:51:37 2017
New Revision: 325807
URL: https://svnweb.freebsd.org/changeset/base/325807
Log:
Make sure the ib_wr_opcode enum is signed by adding a negative dummy element.
Different compilers may optimise the enum type in different ways. This ensures
coherency when range checking the value of enums in ibcore.
Sponsored by: Mellanox Technologies
MFC after: 1 week
Modified:
head/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c
head/sys/ofed/drivers/infiniband/hw/mthca/mthca_qp.c
head/sys/ofed/include/rdma/ib_verbs.h
Modified: head/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c
==============================================================================
--- head/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c Tue Nov 14 14:43:35 2017 (r325806)
+++ head/sys/dev/mlx5/mlx5_ib/mlx5_ib_qp.c Tue Nov 14 14:51:37 2017 (r325807)
@@ -2497,7 +2497,7 @@ int mlx5_ib_post_send(struct ib_qp *ibqp, struct ib_se
}
for (nreq = 0; wr; nreq++, wr = wr->next) {
- if (unlikely(wr->opcode >= ARRAY_SIZE(mlx5_ib_opcode))) {
+ if (unlikely(wr->opcode < 0 || wr->opcode >= ARRAY_SIZE(mlx5_ib_opcode))) {
mlx5_ib_warn(dev, "Invalid opcode 0x%x\n", wr->opcode);
err = -EINVAL;
*bad_wr = wr;
Modified: head/sys/ofed/drivers/infiniband/hw/mthca/mthca_qp.c
==============================================================================
--- head/sys/ofed/drivers/infiniband/hw/mthca/mthca_qp.c Tue Nov 14 14:43:35 2017 (r325806)
+++ head/sys/ofed/drivers/infiniband/hw/mthca/mthca_qp.c Tue Nov 14 14:51:37 2017 (r325807)
@@ -1765,7 +1765,7 @@ int mthca_tavor_post_send(struct ib_qp *ibqp, struct i
qp->wrid[ind] = wr->wr_id;
- if (wr->opcode >= ARRAY_SIZE(mthca_opcode)) {
+ if (wr->opcode < 0 || wr->opcode >= ARRAY_SIZE(mthca_opcode)) {
mthca_err(dev, "opcode invalid\n");
err = -EINVAL;
*bad_wr = wr;
Modified: head/sys/ofed/include/rdma/ib_verbs.h
==============================================================================
--- head/sys/ofed/include/rdma/ib_verbs.h Tue Nov 14 14:43:35 2017 (r325806)
+++ head/sys/ofed/include/rdma/ib_verbs.h Tue Nov 14 14:51:37 2017 (r325807)
@@ -1136,6 +1136,8 @@ enum ib_wr_opcode {
IB_WR_RESERVED8,
IB_WR_RESERVED9,
IB_WR_RESERVED10,
+
+ IB_WR_DUMMY = -1, /* force enum type signed */
};
enum ib_send_flags {
More information about the svn-src-head
mailing list