From a8b90eecb49e6b3925a79391e99c588670948fcd Mon Sep 17 00:00:00 2001 From: Dave Jiang Date: Tue, 2 Jun 2015 03:45:07 -0400 Subject: [PATCH] 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 Signed-off-by: Jon Mason --- drivers/ntb/ntb_transport.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/ntb/ntb_transport.c b/drivers/ntb/ntb_transport.c index 9faf1c6029af7..d9538e911df65 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); -- 2.39.5