aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Jiang <dave.jiang@intel.com>2015-06-02 03:45:07 -0400
committerJon Mason <jdmason@kudzu.us>2015-07-04 14:06:00 -0400
commit0f69a7dff94d3e82ee51685f6a8fea7860b023b8 (patch)
tree1b2bbe4b795149637127ff210105ea4c9f9c9370
parente26a5843f7f5014ae4460030ca4de029a3ac35d3 (diff)
NTB: Read peer info from local SPAD in transport
The transport was writing and then reading the peer scratch pad, essentially reading what it just wrote instead of exchanging any information with the peer. The transport expects the peer values to be the same as the local values, so this issue was not obvious. Signed-off-by: Dave Jiang <dave.jiang@intel.com> Signed-off-by: Jon Mason <jdmason@kudzu.us>
-rw-r--r--drivers/ntb/ntb_transport.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/ntb/ntb_transport.c b/drivers/ntb/ntb_transport.c
index 9faf1c6029af..d9538e911df6 100644
--- a/drivers/ntb/ntb_transport.c
+++ b/drivers/ntb/ntb_transport.c
@@ -761,17 +761,17 @@ static void ntb_transport_link_work(struct work_struct *work)
ntb_peer_spad_write(ndev, VERSION, NTB_TRANSPORT_VERSION);
/* Query the remote side for its info */
- val = ntb_peer_spad_read(ndev, VERSION);
+ val = ntb_spad_read(ndev, VERSION);
dev_dbg(&pdev->dev, "Remote version = %d\n", val);
if (val != NTB_TRANSPORT_VERSION)
goto out;
- val = ntb_peer_spad_read(ndev, NUM_QPS);
+ val = ntb_spad_read(ndev, NUM_QPS);
dev_dbg(&pdev->dev, "Remote max number of qps = %d\n", val);
if (val != nt->qp_count)
goto out;
- val = ntb_peer_spad_read(ndev, NUM_MWS);
+ val = ntb_spad_read(ndev, NUM_MWS);
dev_dbg(&pdev->dev, "Remote number of mws = %d\n", val);
if (val != nt->mw_count)
goto out;
@@ -779,10 +779,10 @@ static void ntb_transport_link_work(struct work_struct *work)
for (i = 0; i < nt->mw_count; i++) {
u64 val64;
- val = ntb_peer_spad_read(ndev, MW0_SZ_HIGH + (i * 2));
+ val = ntb_spad_read(ndev, MW0_SZ_HIGH + (i * 2));
val64 = (u64)val << 32;
- val = ntb_peer_spad_read(ndev, MW0_SZ_LOW + (i * 2));
+ val = ntb_spad_read(ndev, MW0_SZ_LOW + (i * 2));
val64 |= val;
dev_dbg(&pdev->dev, "Remote MW%d size = %#llx\n", i, val64);

Privacy Policy