On Mon, Apr 25, 2022 at 01:16:24PM -0500, Shiraz Saleem wrote: > From: Mustafa Ismail <mustafa.ismail@xxxxxxxxx> > > HW flushes after QP in error state is not reliable. This can lead to > application hang waiting on a completion for outstanding WRs. > Implement a SW mechanism to generate completions for any > outstanding WR's after the QP is modified to error. > > This is accomplished by starting a delayed worker after the QP is > modified to error and the HW flush is performed. The worker > will generate completions that will be returned to the application > when it polls the CQ. This mechanism only applies to Kernel > applications. > > Signed-off-by: Mustafa Ismail <mustafa.ismail@xxxxxxxxx> > Signed-off-by: Shiraz Saleem <shiraz.saleem@xxxxxxxxx> > --- > drivers/infiniband/hw/irdma/hw.c | 31 ++++---- > drivers/infiniband/hw/irdma/utils.c | 147 ++++++++++++++++++++++++++++++++++++ > drivers/infiniband/hw/irdma/verbs.c | 56 ++++++++------ > drivers/infiniband/hw/irdma/verbs.h | 13 +++- > 4 files changed, 210 insertions(+), 37 deletions(-) Applied to for-next, thanks Jason