Subject: Re: [PATCH 27/41]bnx2x: smp_mb and not just smp_rmb

From: Ben Hutchings <[email-masked]>
Date: Thu, 12 Feb 2009 19:21:49 +0000

On Thu, 2009-02-12 at 20:37 +0200, Eilon Greenstein wrote:
> Subject: [PATCH 27/41]bnx2x: smp_mb and not just smp_rmb

This could do with some more explanation (and comments in the code).

> Signed-off-by: Eilon Greenstein <[email-masked]>
> ---
>  drivers/net/bnx2x_main.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c
> index 6bd9219..2e95799 100644
> --- a/drivers/net/bnx2x_main.c
> +++ b/drivers/net/bnx2x_main.c
> @@ -7173,7 +7173,7 @@ static int bnx2x_nic_unload(struct bnx2x *bp, int unload_mode)
>  		struct bnx2x_fastpath *fp = &bp->fp[i];
>  
>  		cnt = 1000;
> -		smp_rmb();
> +		smp_mb();
>  		while (bnx2x_has_tx_work_unload(fp)) {
>  
>  			bnx2x_tx_int(fp, 1000);
> @@ -7189,7 +7189,7 @@ static int bnx2x_nic_unload(struct bnx2x *bp, int unload_mode)
>  			}
>  			cnt--;
>  			msleep(1);
> -			smp_rmb();
> +			smp_mb();

I suspect that smp_*mb() is redundant after a schedule().

>  		}
>  	}
>  	/* Give HW time to discard old tx messages */

Ben.

-- 
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.