> Bart Van Assche help us and resulting patch you can see below:
> diff --git a/drivers/infiniband/ulp/srp/ib_srp.c
> b/drivers/infiniband/ulp/srp/ib_srp.c
> index c5af67a..470eb54 100644
> --- a/drivers/infiniband/ulp/srp/ib_srp.c
> +++ b/drivers/infiniband/ulp/srp/ib_srp.c
> @@ -59,6 +59,7 @@
>   #include "../../../../include/scsi/scsi_transport_srp.h"
> 
>   #include "ib_srp.h"
> +#include <linux/delay.h>
> 
>   #define DRV_NAME    "ib_srp"
>   #define PFX         DRV_NAME ": "
> @@ -621,11 +622,7 @@ static void srp_destroy_qp(struct srp_rdma_ch *ch)
>       if (ret)
>               goto out;
> 
> -     init_completion(&ch->done);
> -     ret = ib_post_recv(ch->qp, &wr, &bad_wr);
> -     WARN_ONCE(ret, "ib_post_recv() returned %d\n", ret);
> -     if (ret == 0)
> -             wait_for_completion(&ch->done);
> +     msleep(100);
> 
>   out:
>       ib_destroy_qp(ch->qp);

Post receive can return a synchronous failure.   The question would be which 
one and why?

Bart, any ideas?

Mike
N�����r��y����b�X��ǧv�^�)޺{.n�+����{��ٚ�{ay�ʇڙ�,j��f���h���z��w���
���j:+v���w�j�m��������zZ+�����ݢj"��!�i

Reply via email to