[infiniband] Include destination address vector in ib_complete_recv()

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2012-08-31 01:48:49 +01:00
parent cbe41cb31b
commit f54a61e434
11 changed files with 55 additions and 22 deletions

View File

@@ -1170,6 +1170,7 @@ static void linda_complete_recv ( struct ib_device *ibdev,
struct io_buffer headers;
struct io_buffer *iobuf;
struct ib_queue_pair *intended_qp;
struct ib_address_vector dest;
struct ib_address_vector source;
unsigned int rcvtype;
unsigned int pktlen;
@@ -1238,7 +1239,7 @@ static void linda_complete_recv ( struct ib_device *ibdev,
qp0 = ( qp->qpn == 0 );
intended_qp = NULL;
if ( ( rc = ib_pull ( ibdev, &headers, ( qp0 ? &intended_qp : NULL ),
&payload_len, &source ) ) != 0 ) {
&payload_len, &dest, &source ) ) != 0 ) {
DBGC ( linda, "Linda %p could not parse headers: %s\n",
linda, strerror ( rc ) );
err = 1;
@@ -1295,11 +1296,11 @@ static void linda_complete_recv ( struct ib_device *ibdev,
qp->recv.fill--;
intended_qp->recv.fill++;
}
ib_complete_recv ( ibdev, intended_qp, &source,
ib_complete_recv ( ibdev, intended_qp, &dest, &source,
iobuf, rc);
} else {
/* Completing on a skipped-over eager buffer */
ib_complete_recv ( ibdev, qp, &source, iobuf,
ib_complete_recv ( ibdev, qp, &dest, &source, iobuf,
-ECANCELED );
}