]> www.infradead.org Git - users/jedix/linux-maple.git/commit
sif: rq: Do not clear the rq_sw until the completion of flush_rq
authorWei Lin Guay <wei.lin.guay@oracle.com>
Tue, 5 Jul 2016 11:51:37 +0000 (13:51 +0200)
committerSantosh Shilimkar <santosh.shilimkar@oracle.com>
Wed, 27 Jul 2016 17:24:20 +0000 (10:24 -0700)
commit7b4fd805d064215a42b7fb8906121a0468818ff0
tree935695dc88416ebee67963c33d9ecf2fa4282ad7
parent8ba2a16555b66063811da454c633490d8b086f9b
sif: rq: Do not clear the rq_sw until the completion of flush_rq

Orabug: 23754857

The rq can be invalidated from reset_qp or flush_rq. Nevertheless,
the rq_sw data structure has been reset after rq is invalidated in
reset_qp regardless of the completion of the flush_rq. Thus, move
the rq synchronization to reset_qp, and place the synchronization
in between of reset_qp and flush_rq. After invalidating and
reseting the rq, no flush rq is required as both head and tail
have been reset to 0.

This commit creates another atomic_t variable for the synchronization
between reset rq and flush_rq.

Signed-off-by: Wei Lin Guay <wei.lin.guay@oracle.com>
Reviewed-by: Knut Omang <knut.omang@oracle.com>
drivers/infiniband/hw/sif/sif_qp.c
drivers/infiniband/hw/sif/sif_rq.c
drivers/infiniband/hw/sif/sif_rq.h