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
Unified · Split
| @@ -924,10 +924,8 @@ out1: · 923 unmodified lines | |||
| 924 | ntb_free_mw(nt, i); | 924 | ntb_free_mw(nt, i); |
| 925 | 925 | ||
| 926 | /* if there's an actual failure, we should just bail */ | 926 | /* if there's an actual failure, we should just bail */ |
| 927 | if (rc < 0) { | 927 | if (rc < 0) |
| 928 | ntb_link_disable(ndev); | ||
| 929 | return; | 928 | return; |
| 930 | } | ||
| 931 | 929 | ||
| 932 | out: | 930 | out: |
| 933 | if (ntb_link_is_up(ndev, NULL, NULL) == 1) | 931 | 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) · 125 unmodified lines | |||
| 1059 | int node; | 1057 | int node; |
| 1060 | int rc, i; | 1058 | int rc, i; |
| 1061 | 1059 | ||
| 1062 | mw_count = ntb_mw_count(ndev, PIDX); | 1060 | mw_count = ntb_peer_mw_count(ndev); |
| 1063 | 1061 | ||
| 1064 | if (!ndev->ops->mw_set_trans) { | 1062 | if (!ndev->ops->mw_set_trans) { |
| 1065 | dev_err(&ndev->dev, "Inbound MW based NTB API is required\n"); | 1063 | dev_err(&ndev->dev, "Inbound MW based NTB API is required\n"); |
| @@ -959,7 +959,7 @@ static int tool_probe(struct ntb_client *self, struct ntb_dev *ntb) · 958 unmodified lines | |||
| 959 | tc->ntb = ntb; | 959 | tc->ntb = ntb; |
| 960 | init_waitqueue_head(&tc->link_wq); | 960 | init_waitqueue_head(&tc->link_wq); |
| 961 | 961 | ||
| 962 | tc->mw_count = min(ntb_mw_count(tc->ntb, PIDX), MAX_MWS); | 962 | tc->mw_count = min(ntb_peer_mw_count(tc->ntb), MAX_MWS); |
| 963 | for (i = 0; i < tc->mw_count; i++) { | 963 | for (i = 0; i < tc->mw_count; i++) { |
| 964 | rc = tool_init_mw(tc, i); | 964 | rc = tool_init_mw(tc, i); |
| 965 | if (rc) | 965 | if (rc) |
| @@ -333,6 +333,10 @@ function ntb_tool_tests() · 332 unmodified lines | |||
| 333 | link_test $LOCAL_TOOL $REMOTE_TOOL | 333 | link_test $LOCAL_TOOL $REMOTE_TOOL |
| 334 | link_test $REMOTE_TOOL $LOCAL_TOOL | 334 | link_test $REMOTE_TOOL $LOCAL_TOOL |
| 335 | 335 | ||
| 336 | #Ensure the link is up on both sides before continuing | ||
| 337 | write_file Y $LOCAL_TOOL/link_event | ||
| 338 | write_file Y $REMOTE_TOOL/link_event | ||
| 339 | |||
| 336 | for PEER_TRANS in $(ls $LOCAL_TOOL/peer_trans*); do | 340 | for PEER_TRANS in $(ls $LOCAL_TOOL/peer_trans*); do |
| 337 | PT=$(basename $PEER_TRANS) | 341 | PT=$(basename $PEER_TRANS) |
| 338 | write_file $MW_SIZE $LOCAL_TOOL/$PT | 342 | write_file $MW_SIZE $LOCAL_TOOL/$PT |