Subject: Re: [PATCH 1/1] qlcnic: add wmb() call in transmit data path. > >> + /* Ensure writes are complete before HW fetches Tx descriptors */ >> + wmb(); >> qlcnic_update_cmd_producer(tx_ring); >> >> return NETDEV_TX_OK; >> > > Would not an mmiowb be more appropriate in this case? > > Regards, > Lino
Sorry, this was nonsense.This should be "dma_wmb" not "mmiowb". Lino, The patch is based on this kernel documentation. https://www.kernel.org/doc/Documentation/memory-barriers.txt /* force memory to sync before notifying device via MMIO */ wmb(); /* notify device of new descriptors */ writel(DESC_NOTIFY, doorbell); } The wmb() is needed to guarantee that the cache coherent memory writes have completed before attempting a write to the cache incoherent MMIO region. Thanks, Sony