]> git.openfabrics.org - ~ardavis/dapl.git/commit
mpxyd: m_req_event assert during large io streams, HST to MIC
authorArlin Davis <arlin.r.davis@intel.com>
Wed, 6 Apr 2016 22:41:44 +0000 (15:41 -0700)
committerArlin Davis <arlin.r.davis@intel.com>
Wed, 6 Apr 2016 22:41:44 +0000 (15:41 -0700)
commit12f3d778acdf0e984af839221636beb04a5be7b0
tree01af8c9a97d9b7ea5a7efe3fc464ed6e062de5ab
parent79b885fac295f6dbe9d2dc772b87755ba5b90734
mpxyd: m_req_event assert during large io streams, HST to MIC

When proxy-in (PI) WR queue is full and client is blocked on
new WR entries, the WR completion processing can
incorrectly reference a PI WR field after the client is
given remote access.

m_qp = (struct mcm_qp *)m_wr_rx->context;
assert(m_qp);

After data is forwarded to the appropriate MIC, the proxy
service will send a RW_imm WC message. This releases
the m_wr_rx entry for re-use by remote mcm provider client.
At the same time, the proxy can be processing the RW_imm
completion and incorrectly use the wr_rx->context field for
m_qp reference. Change the proxy_in event processing code
to avoid dependencies on any wr_rx content.

Signed-off-by: Arlin Davis <arlin.r.davis@intel.com>
dapl/svc/mpxy_in.c
dapl/svc/mpxy_out.c