Messages in this thread | | | Subject | Re: question on read_barrier_depends | From | Oliver Neukum <> | Date | Thu, 17 Apr 2014 17:16:07 +0200 |
| |
On Wed, 2014-04-16 at 11:26 -0400, Alan Stern wrote:
> In addition, the following code in kfifo_get() does this: > > *(typeof(__tmp->type))__val = \ > (__is_kfifo_ptr(__tmp) ? \ > ((typeof(__tmp->type))__kfifo->data) : \ > (__tmp->buf) \ > )[__kfifo->out & __tmp->kfifo.mask]; \ > smp_wmb(); \ > __kfifo->out++; \ > > It looks like the smp_wmb() should really be smp_mb(), because it > separates the _read_ for val from the _write_ of kfifo->out.
But where is kfifo->out read at all?
Regards Oliver
| |