Subject: Re: [PATCH] gianfar: Add I/O barriers when touching buffer descriptor ownership.

From: Segher Boessenkool <[email-masked]>
Date: Wed, 2 May 2007 02:54:40 +0200

> The hardware must not see that is given ownership of a buffer until it 
> is
> completely written, and when the driver receives ownership of a buffer,
> it must ensure that any other reads to the buffer reflect its final
> state.  Thus, I/O barriers are added where required.
>
> Without this patch, I have observed GCC reordering the setting of
> bdp->length and bdp->status in gfar_new_skb.

The :::"memory" in the barriers you used prevent GCC
from reordering accesses around the barriers.

AFAICS you need stronger barriers though; {w,r,}mb(),
to prevent _any_ reordering of those memory accesses,
not just the compiler-generated ones.

Segher