IB: Return error for unsupported QP creation flags
authorOr Gerlitz <ogerlitz@mellanox.com>
Sun, 11 May 2014 12:15:10 +0000 (15:15 +0300)
committerRoland Dreier <roland@purestorage.com>
Mon, 2 Jun 2014 21:58:11 +0000 (14:58 -0700)
Fix the usnic and thw qib drivers to err when QP creation flags that
they don't understand are provided.

Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/qib/qib_qp.c
drivers/infiniband/hw/usnic/usnic_ib_verbs.c

index 0cad0c4..7fcc150 100644 (file)
@@ -985,7 +985,8 @@ struct ib_qp *qib_create_qp(struct ib_pd *ibpd,
        struct ib_qp *ret;
 
        if (init_attr->cap.max_send_sge > ib_qib_max_sges ||
-           init_attr->cap.max_send_wr > ib_qib_max_qp_wrs) {
+           init_attr->cap.max_send_wr > ib_qib_max_qp_wrs ||
+           init_attr->create_flags) {
                ret = ERR_PTR(-EINVAL);
                goto bail;
        }
index d48d2c0..53bd6a2 100644 (file)
@@ -466,6 +466,9 @@ struct ib_qp *usnic_ib_create_qp(struct ib_pd *pd,
        ucontext = to_uucontext(pd->uobject->context);
        us_ibdev = to_usdev(pd->device);
 
+       if (init_attr->create_flags)
+               return ERR_PTR(-EINVAL);
+
        err = ib_copy_from_udata(&cmd, udata, sizeof(cmd));
        if (err) {
                usnic_err("%s: cannot copy udata for create_qp\n",