]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
Merge tag 'ntb-4.13-bugfixes' of git://github.com/jonmason/ntb
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 28 Aug 2017 00:01:54 +0000 (17:01 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 28 Aug 2017 00:01:54 +0000 (17:01 -0700)
Pull NTB fixes from Jon Mason:
 "NTB bug fixes to address an incorrect ntb_mw_count reference in the
  NTB transport, improperly bringing down the link if SPADs are
  corrupted, and an out-of-order issue regarding link negotiation and
  data passing"

* tag 'ntb-4.13-bugfixes' of git://github.com/jonmason/ntb:
  ntb: ntb_test: ensure the link is up before trying to configure the mws
  ntb: transport shouldn't disable link due to bogus values in SPADs
  ntb: use correct mw_count function in ntb_tool and ntb_transport

drivers/ntb/ntb_transport.c
drivers/ntb/test/ntb_tool.c
tools/testing/selftests/ntb/ntb_test.sh

index 9a03c5871efe675015418e6f5e1ebd1745faaac0..f58d8e3053236ad4608e5552052214b0694a3a95 100644 (file)
@@ -924,10 +924,8 @@ out1:
                ntb_free_mw(nt, i);
 
        /* if there's an actual failure, we should just bail */
-       if (rc < 0) {
-               ntb_link_disable(ndev);
+       if (rc < 0)
                return;
-       }
 
 out:
        if (ntb_link_is_up(ndev, NULL, NULL) == 1)
@@ -1059,7 +1057,7 @@ static int ntb_transport_probe(struct ntb_client *self, struct ntb_dev *ndev)
        int node;
        int rc, i;
 
-       mw_count = ntb_mw_count(ndev, PIDX);
+       mw_count = ntb_peer_mw_count(ndev);
 
        if (!ndev->ops->mw_set_trans) {
                dev_err(&ndev->dev, "Inbound MW based NTB API is required\n");
index f002bf48a08dbefd0602532bc6d2f1dbf4f68a3a..a69815c45ce6f2137d9f409bad0b8742fa530df4 100644 (file)
@@ -959,7 +959,7 @@ static int tool_probe(struct ntb_client *self, struct ntb_dev *ntb)
        tc->ntb = ntb;
        init_waitqueue_head(&tc->link_wq);
 
-       tc->mw_count = min(ntb_mw_count(tc->ntb, PIDX), MAX_MWS);
+       tc->mw_count = min(ntb_peer_mw_count(tc->ntb), MAX_MWS);
        for (i = 0; i < tc->mw_count; i++) {
                rc = tool_init_mw(tc, i);
                if (rc)
index 1c12b5855e4f929c75706a4adf0d117931e29dec..5fc7ad359e2195ed45588091df4b0a439f15551c 100755 (executable)
@@ -333,6 +333,10 @@ function ntb_tool_tests()
        link_test $LOCAL_TOOL $REMOTE_TOOL
        link_test $REMOTE_TOOL $LOCAL_TOOL
 
+       #Ensure the link is up on both sides before continuing
+       write_file Y $LOCAL_TOOL/link_event
+       write_file Y $REMOTE_TOOL/link_event
+
        for PEER_TRANS in $(ls $LOCAL_TOOL/peer_trans*); do
                PT=$(basename $PEER_TRANS)
                write_file $MW_SIZE $LOCAL_TOOL/$PT