RDMA/nes: Fix for crash when registering zero length MR for CQ
[pandora-kernel.git] / drivers / infiniband / hw / nes / nes_verbs.c
index 5095bc4..09e83da 100644 (file)
@@ -2559,6 +2559,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");