src/dpdk/drivers/net/bnx2x/bnx2x.c
static void bnx2x_sp_prod_update(struct bnx2x_softc *sc)
{
	int func = SC_FUNC(sc);

	/*
	 * Make sure that BD data is updated before writing the producer.
	 * BD data is written to the memory, the producer is read from the
	 * memory, thus we need a full memory barrier to ensure the ordering.
	 */
	mb();

	REG_WR16(sc, (BAR_XSTRORM_INTMEM + XSTORM_SPQ_PROD_OFFSET(func)),
		 sc->spq_prod_idx);

	mb();
}
/* must be called under the spq lock */
must be called under the spq lock
must be called under the spq lock
static void bnx2x_sp_prod_update(struct bnx2x_softc *sc)
{
	int func = SC_FUNC(sc);
	mb();
	REG_WR16(sc, (BAR_XSTRORM_INTMEM + XSTORM_SPQ_PROD_OFFSET(func)),
		 sc->spq_prod_idx);
	mb();
}
static void bnx2x_sp_prod_update ( struct bnx2x_softc * sc ) { int func = SC_FUNC ( sc ) ; mb ( ) ; REG_WR16 ( sc , ( BAR_XSTRORM_INTMEM + XSTORM_SPQ_PROD_OFFSET ( func ) ) , sc -> spq_prod_idx ) ; mb ( ) ; }
must be called under the spq lock
must be called under the spq lock
/*
	 * Make sure that BD data is updated before writing the producer.
	 * BD data is written to the memory, the producer is read from the
	 * memory, thus we need a full memory barrier to ensure the ordering.
	 */