On Sun, 2015-10-18 at 22:21 -0700, Stephen Hemminger wrote: 
> On Sat, 17 Oct 2015 00:21:44 -0400
> Michael Chan <mc...@broadcom.com> wrote:
> 
> > +static inline u32 bnxt_tx_avail(struct bnxt *bp, struct bnxt_tx_ring_info 
> > *txr)
> > +{
> > +   /* Tell compiler to fetch tx indices from memory. */
> > +   barrier();
> 
> Actually, you are telling compiler not to reorder. Which may not
> be sufficient on some platforms. 

Only a compiler barrier is needed here to prevent the compiler from
optimizing out the memory access of tx_prod and tx_cons, in case it
thinks that it has those values in some registers.

> 
> 
> > +   return bp->tx_ring_size -
> > +           ((txr->tx_prod - txr->tx_cons) & bp->tx_ring_mask);
> > +}


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to