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 0cad0c40d742638a3f5756a0c51d0b5974e98477..7fcc150d603c4d341034d6c4b9e9847588dfb69f 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 d48d2c0a2e3ca10dcf7272da71ce44110f957346..53bd6a2d9cdbbae4545a70d1d070b17eafb18154 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",