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