]> git.baikalelectronics.ru Git - kernel.git/commit
IB/ipath: fix null deref during rdma ops
authorBryan O'Sullivan <bos@pathscale.com>
Tue, 23 May 2006 18:32:37 +0000 (11:32 -0700)
committerRoland Dreier <rolandd@cisco.com>
Tue, 23 May 2006 20:29:35 +0000 (13:29 -0700)
commit57c3f7a1518d53fff5d63ca956c6a411cf1babc9
treed9fbd218ac4a742371468a67db1a738f52af5a83
parentf299d418f654cebe1cc32897c692ff7e969d6ad2
IB/ipath: fix null deref during rdma ops

The problem was that node A's sending thread, which handles sending RDMA
read response data, would write the trigger word, the last packet would
be sent, node B would send a new RDMA read request, node A's interrupt
handler would initialize s_rdma_sge, then node A's sending thread would
update s_rdma_sge.  This didn't happen very often naturally but was more
frequent with 1 byte RDMA reads.  Rather than adding more locking or
increasing the QP structure size and copying sge data, I modified the
copy routine to update the pointers before writing the trigger word to
avoid the update race.

Signed-off-by: Ralph Campbell <ralphc@pathscale.com>
Signed-off-by: Bryan O'Sullivan <bos@pathscale.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/ipath/ipath_layer.c