aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/nes
diff options
context:
space:
mode:
authorTatyana Nikolova <Tatyana.E.Nikolova@intel.com>2012-12-06 20:05:02 +0000
committerRoland Dreier <roland@purestorage.com>2012-12-08 00:31:03 -0800
commit7d9c199a55200c9b9fcad08e150470d02fb385be (patch)
treea2268970fef6ab55b973e4a008a4bb9c1b5ae520 /drivers/infiniband/hw/nes
parentRDMA/nes: Fix for terminate timer crash (diff)
downloadlinux-dev-7d9c199a55200c9b9fcad08e150470d02fb385be.tar.xz
linux-dev-7d9c199a55200c9b9fcad08e150470d02fb385be.zip
RDMA/nes: Fix for crash when registering zero length MR for CQ
Signed-off-by: Tatyana Nikolova <Tatyana.E.Nikolova@intel.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband/hw/nes')
-rw-r--r--drivers/infiniband/hw/nes/nes_verbs.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c
index c47ec2599bc9..07e4fbad987a 100644
--- a/drivers/infiniband/hw/nes/nes_verbs.c
+++ b/drivers/infiniband/hw/nes/nes_verbs.c
@@ -2561,6 +2561,11 @@ static struct ib_mr *nes_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
return ibmr;
case IWNES_MEMREG_TYPE_QP:
case IWNES_MEMREG_TYPE_CQ:
+ if (!region->length) {
+ nes_debug(NES_DBG_MR, "Unable to register zero length region for CQ\n");
+ ib_umem_release(region);
+ return ERR_PTR(-EINVAL);
+ }
nespbl = kzalloc(sizeof(*nespbl), GFP_KERNEL);
if (!nespbl) {
nes_debug(NES_DBG_MR, "Unable to allocate PBL\n");