diff options
-rw-r--r-- | drivers/infiniband/hw/cxgb4/qp.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/cxgb4/qp.c b/drivers/infiniband/hw/cxgb4/qp.c index 4f5dd66da39d..bdbf54d517d9 100644 --- a/drivers/infiniband/hw/cxgb4/qp.c +++ b/drivers/infiniband/hw/cxgb4/qp.c | |||
@@ -263,6 +263,9 @@ static int build_immd(struct t4_sq *sq, struct fw_ri_immd *immdp, | |||
263 | rem -= len; | 263 | rem -= len; |
264 | } | 264 | } |
265 | } | 265 | } |
266 | len = roundup(plen + sizeof *immdp, 16) - (plen + sizeof *immdp); | ||
267 | if (len) | ||
268 | memset(dstp, 0, len); | ||
266 | immdp->op = FW_RI_DATA_IMMD; | 269 | immdp->op = FW_RI_DATA_IMMD; |
267 | immdp->r1 = 0; | 270 | immdp->r1 = 0; |
268 | immdp->r2 = 0; | 271 | immdp->r2 = 0; |
@@ -292,6 +295,7 @@ static int build_isgl(__be64 *queue_start, __be64 *queue_end, | |||
292 | if (++flitp == queue_end) | 295 | if (++flitp == queue_end) |
293 | flitp = queue_start; | 296 | flitp = queue_start; |
294 | } | 297 | } |
298 | *flitp = (__force __be64)0; | ||
295 | isglp->op = FW_RI_DATA_ISGL; | 299 | isglp->op = FW_RI_DATA_ISGL; |
296 | isglp->r1 = 0; | 300 | isglp->r1 = 0; |
297 | isglp->nsge = cpu_to_be16(num_sge); | 301 | isglp->nsge = cpu_to_be16(num_sge); |