[openib-general] [PATCH] Fix MAD completion handling

Sean Hefty mshefty at ichips.intel.com
Wed Sep 29 09:30:45 PDT 2004


On Tue, 28 Sep 2004 14:50:57 -0700
Roland Dreier <roland at topspin.com> wrote:

> @@ -892,6 +892,8 @@
>  	struct ib_wc wc;
>  	int err_status = 0;
>  	
> +	ib_req_notify_cq(port_priv->cq, IB_CQ_NEXT_COMP);
> +
>  	while (ib_poll_cq(port_priv->cq, 1, &wc) == 1) {
>  		printk(KERN_DEBUG "Completion opcode 0x%x WRID 0x%Lx\n", wc.opcode, wc.wr_id);
>  		if (wc.status != IB_WC_SUCCESS) {
> @@ -928,11 +930,8 @@
>  		}
>  	}
>  
> -	if (err_status) {
> +	if (err_status)
>  		ib_mad_port_restart(port_priv);
> -	} else {
> -		ib_req_notify_cq(port_priv->cq, IB_CQ_NEXT_COMP);
> -	}

Shouldn't we be able to keep the ib_req_notify_cq at the end of this function?  If additional completions are left after polling, a second event should be generated.  Or at least that's what I remember from out discussions about this...



More information about the general mailing list