IB/qib: Fix comparison error with qperf compare/swap test
This failure exists with qib:
ver_rc_compare_swap:
mismatch, sequence 2, expected 123456789abcdef, got 0
The request builder was using the incorrect inlines to
build the request header resulting in incorrect data
in the atomic header.
Fix by using the appropriate inlines to create the request.
Cc: <stable@vger.kernel.org> # 4.9.x+
Fixes: 261a435184
("IB/qib,IB/hfi: Use core common header file")
Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
parent
69a3ffaa0a
commit
87b3524cb5
|
@ -434,13 +434,13 @@ int qib_make_rc_req(struct rvt_qp *qp, unsigned long *flags)
|
|||
qp->s_state = OP(COMPARE_SWAP);
|
||||
put_ib_ateth_swap(wqe->atomic_wr.swap,
|
||||
&ohdr->u.atomic_eth);
|
||||
put_ib_ateth_swap(wqe->atomic_wr.compare_add,
|
||||
&ohdr->u.atomic_eth);
|
||||
put_ib_ateth_compare(wqe->atomic_wr.compare_add,
|
||||
&ohdr->u.atomic_eth);
|
||||
} else {
|
||||
qp->s_state = OP(FETCH_ADD);
|
||||
put_ib_ateth_swap(wqe->atomic_wr.compare_add,
|
||||
&ohdr->u.atomic_eth);
|
||||
put_ib_ateth_swap(0, &ohdr->u.atomic_eth);
|
||||
put_ib_ateth_compare(0, &ohdr->u.atomic_eth);
|
||||
}
|
||||
put_ib_ateth_vaddr(wqe->atomic_wr.remote_addr,
|
||||
&ohdr->u.atomic_eth);
|
||||
|
|
Loading…
Reference in New Issue