]> www.infradead.org Git - users/jedix/linux-maple.git/commit
sif: qp: added persistent_state in sif_qp struct
authorWei Lin Guay <wei.lin.guay@oracle.com>
Thu, 30 Jun 2016 08:42:26 +0000 (10:42 +0200)
committerKnut Omang <knut.omang@oracle.com>
Sun, 3 Jul 2016 14:44:16 +0000 (16:44 +0200)
commit43609bf97210f3036436fd137c88fd2bb3291e85
treece7ee9ff8d1619f394de979e6aa2f1af071865db
parenteaa5b7c973fc9c43caa5962b9269a57388d7721d
sif: qp: added persistent_state in sif_qp struct

Orabug: 23491094

QP state needs to be referred in certain context which may not sleep.
Nevertheless, the state is not guarantee as mutex cannot be used. Thus,
this commit added new atomic persistent_state to determine the QP
state in non-sleep context.

This commit removes non-used flush_sq_done_wa4074 variable and added
mutex for sif_query_qp due to WA #3714 and WA #662. In SIF, there is
intermediate QP state from RTS->ERR and RTS->RESET. Thus, without
mutex, the sif_query_qp might gets the intermediate QP state.

Signed-off-by: Wei Lin Guay <wei.lin.guay@oracle.com>
Reviewed-by: HÃ¥kon Bugge <haakon.bugge@oracle.com>
Reviewed-by: Knut Omang <knut.omang@oracle.com>
drivers/infiniband/hw/sif/sif_cq.c
drivers/infiniband/hw/sif/sif_qp.c
drivers/infiniband/hw/sif/sif_qp.h
drivers/infiniband/hw/sif/sif_r3.c