summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorNoa Osherovich <noaos@mellanox.com>2019-02-19 15:07:34 +0200
committerJason Gunthorpe <jgg@mellanox.com>2019-02-19 20:52:19 -0700
commitd0e02bf6cd6da339a31f7ef6a10aba9ad362a4d9 (patch)
tree3c4859d02e7b0231bff41e9b619d0157f44c7c80 /drivers/infiniband
parent1882ab867863531ab9caab81fd6ac5fee6d1a314 (diff)
downloadlinux-d0e02bf6cd6da339a31f7ef6a10aba9ad362a4d9.tar.bz2
RDMA/core: Verify that memory window type is legal
Before calling the provider's alloc_mw function, verify that the given memory type is either IB_MW_TYPE_1 or IB_MW_TYPE_2. Signed-off-by: Noa Osherovich <noaos@mellanox.com> Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/core/uverbs_cmd.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
index 6baafa1d62d8..6fcfaca82332 100644
--- a/drivers/infiniband/core/uverbs_cmd.c
+++ b/drivers/infiniband/core/uverbs_cmd.c
@@ -885,6 +885,11 @@ static int ib_uverbs_alloc_mw(struct uverbs_attr_bundle *attrs)
goto err_free;
}
+ if (cmd.mw_type != IB_MW_TYPE_1 && cmd.mw_type != IB_MW_TYPE_2) {
+ ret = -EINVAL;
+ goto err_put;
+ }
+
mw = pd->device->ops.alloc_mw(pd, cmd.mw_type, &attrs->driver_udata);
if (IS_ERR(mw)) {
ret = PTR_ERR(mw);