diff options
Diffstat (limited to 'src/net/infiniband/ib_cm.c')
-rw-r--r-- | src/net/infiniband/ib_cm.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/net/infiniband/ib_cm.c b/src/net/infiniband/ib_cm.c index 13539b40..859d56f2 100644 --- a/src/net/infiniband/ib_cm.c +++ b/src/net/infiniband/ib_cm.c @@ -148,6 +148,8 @@ static void ib_cm_req_complete ( struct ib_device *ibdev, size_t private_data_len = 0; /* Report failures */ + if ( ( rc == 0 ) && ( mad->hdr.status != htons ( IB_MGMT_STATUS_OK ) )) + rc = -EIO; if ( rc != 0 ) { DBGC ( conn, "CM %p connection request failed: %s\n", conn, strerror ( rc ) ); @@ -195,7 +197,7 @@ static void ib_cm_req_complete ( struct ib_device *ibdev, default: DBGC ( conn, "CM %p unexpected response (attribute %04x)\n", conn, ntohs ( mad->hdr.attr_id ) ); - rc = -EIO; + rc = -ENOTSUP; break; } |