diff options
author | Andrew Boyer <andrew.boyer@dell.com> | 2017-08-28 23:11:52 +0300 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2017-08-29 02:12:33 +0300 |
commit | d45d29567f87492e467ec854e0e81ad847c9b840 (patch) | |
tree | a653e59081a9db3a03b178a14f025060f0b0c6b7 /drivers/infiniband/sw | |
parent | cffec53daf9f9a87e4e532da1dfaac4bbfcc2e29 (diff) | |
download | linux-d45d29567f87492e467ec854e0e81ad847c9b840.tar.xz |
IB/rxe: Fix up the responder's find_resources() function
The resource array is sized by max_dest_rd_atomic, not max_rd_atomic.
Iterating over max_rd_atomic entries of qp->resp.resources[] will cause
incorrect behavior when the two attributes are different (or even
crash if max_rd_atomic is larger).
Fixes: 8700e3e7c485 ("Soft RoCE driver")
Signed-off-by: Andrew Boyer <andrew.boyer@dell.com>
Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/sw')
-rw-r--r-- | drivers/infiniband/sw/rxe/rxe_resp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/infiniband/sw/rxe/rxe_resp.c b/drivers/infiniband/sw/rxe/rxe_resp.c index a958ee918a49..4240866a5331 100644 --- a/drivers/infiniband/sw/rxe/rxe_resp.c +++ b/drivers/infiniband/sw/rxe/rxe_resp.c @@ -1055,7 +1055,7 @@ static struct resp_res *find_resource(struct rxe_qp *qp, u32 psn) { int i; - for (i = 0; i < qp->attr.max_rd_atomic; i++) { + for (i = 0; i < qp->attr.max_dest_rd_atomic; i++) { struct resp_res *res = &qp->resp.resources[i]; if (res->type == 0) |