Subject: Re: [PATCHv2 net-next 18/31] iw_cxgb4: ignore read reponse type 1 CQEs.

From: Sergei Shtylyov <[email-masked]>
Date: Mon, 03 Mar 2014 21:49:06 +0300

Hello.

On 03/03/2014 09:41 AM, Hariprasad Shenai wrote:

> From: Steve Wise <[email-masked]>

> These are generated by HW in some error cases and need to be
> silently discarded.

> Signed-off-by: Steve Wise <[email-masked]>
> ---
>   drivers/infiniband/hw/cxgb4/cq.c |   20 ++++++++++++++++++++
>   1 files changed, 20 insertions(+), 0 deletions(-)

> diff --git a/drivers/infiniband/hw/cxgb4/cq.c b/drivers/infiniband/hw/cxgb4/cq.c
> index 59f7601..e310762 100644
> --- a/drivers/infiniband/hw/cxgb4/cq.c
> +++ b/drivers/infiniband/hw/cxgb4/cq.c
> @@ -366,6 +366,14 @@ void c4iw_flush_hw_cq(struct c4iw_cq *chp)
>   		if (CQE_OPCODE(hw_cqe) == FW_RI_READ_RESP) {
>
>   			/*
> +			 * If we have reached here because of async
> +			 * event or other error, and have egress error
> +			 * then drop
> +			 */

    The networking code multi-line comment style is:

/* bla
  * bla
  */

> +			if (CQE_TYPE(hw_cqe) == 1)
> +				goto next_cqe;
> +
> +			/*
>   			 * drop peer2peer RTR reads.
>   			 */
>   			if (CQE_WRID_STAG(hw_cqe) == 1)
> @@ -512,6 +520,18 @@ static int poll_cq(struct t4_wq *wq, struct t4_cq *cq, struct t4_cqe *cqe,
>   	if (RQ_TYPE(hw_cqe) && (CQE_OPCODE(hw_cqe) == FW_RI_READ_RESP)) {
>
>   		/*
> +		 * If we have reached here because of async
> +		 * event or other error, and have egress error
> +		 * then drop
> +		 */

    Likewise.

WBR, Sergei