| From 3a7d24d4b1bdab794efefc47fb38113f93c140ca Mon Sep 17 00:00:00 2001 |
| From: Sanjay R Mehta <sanju.mehta@amd.com> |
| Date: Fri, 29 Mar 2019 11:32:50 +0000 |
| Subject: [PATCH] ntb: point to right memory window index |
| |
| commit ae89339b08f3fe02457ec9edd512ddc3d246d0f8 upstream. |
| |
| second parameter of ntb_peer_mw_get_addr is pointing to wrong memory |
| window index by passing "peer gidx" instead of "local gidx". |
| |
| For ex, "local gidx" value is '0' and "peer gidx" value is '1', then |
| |
| on peer side ntb_mw_set_trans() api is used as below with gidx pointing to |
| local side gidx which is '0', so memroy window '0' is chosen and XLAT '0' |
| will be programmed by peer side. |
| |
| ntb_mw_set_trans(perf->ntb, peer->pidx, peer->gidx, peer->inbuf_xlat, |
| peer->inbuf_size); |
| |
| Now, on local side ntb_peer_mw_get_addr() is been used as below with gidx |
| pointing to "peer gidx" which is '1', so pointing to memory window '1' |
| instead of memory window '0'. |
| |
| ntb_peer_mw_get_addr(perf->ntb, peer->gidx, &phys_addr, |
| &peer->outbuf_size); |
| |
| So this patch pass "local gidx" as parameter to ntb_peer_mw_get_addr(). |
| |
| Signed-off-by: Sanjay R Mehta <sanju.mehta@amd.com> |
| Signed-off-by: Jon Mason <jdmason@kudzu.us> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/ntb/test/ntb_perf.c b/drivers/ntb/test/ntb_perf.c |
| index 11a6cd374004..c6a1dee3c429 100644 |
| --- a/drivers/ntb/test/ntb_perf.c |
| +++ b/drivers/ntb/test/ntb_perf.c |
| @@ -1370,7 +1370,7 @@ static int perf_setup_peer_mw(struct perf_peer *peer) |
| int ret; |
| |
| /* Get outbound MW parameters and map it */ |
| - ret = ntb_peer_mw_get_addr(perf->ntb, peer->gidx, &phys_addr, |
| + ret = ntb_peer_mw_get_addr(perf->ntb, perf->gidx, &phys_addr, |
| &peer->outbuf_size); |
| if (ret) |
| return ret; |
| -- |
| 2.7.4 |
| |