Subject: Re: [PATCH 1/1] qlcnic: add wmb() call in transmit data path.
quoted
+ /* 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