From: Andrew Rybchenko Date: Fri, 20 Jan 2017 13:53:51 +0000 (+0000) Subject: net/sfc: use eal I/O device memory barriers API X-Git-Tag: spdx-start~4615 X-Git-Url: http://git.droids-corp.org/?p=dpdk.git;a=commitdiff_plain;h=7a7cfb7a75d28ed6809d68ee79f91d768aa7df6b net/sfc: use eal I/O device memory barriers API The previous version relied on the fact that DMA sync for device and PIO write barrier in pair. Now each does its job. Signed-off-by: Andrew Rybchenko --- diff --git a/drivers/net/sfc/efsys.h b/drivers/net/sfc/efsys.h index a024b6c419..60829be184 100644 --- a/drivers/net/sfc/efsys.h +++ b/drivers/net/sfc/efsys.h @@ -612,7 +612,7 @@ typedef struct efsys_bar_s { /* BARRIERS */ #define EFSYS_MEM_READ_BARRIER() rte_rmb() -#define EFSYS_PIO_WRITE_BARRIER() rte_wmb() +#define EFSYS_PIO_WRITE_BARRIER() rte_io_wmb() /* DMA SYNC */ @@ -623,7 +623,9 @@ typedef struct efsys_bar_s { */ #define EFSYS_DMA_SYNC_FOR_KERNEL(_esmp, _offset, _size) ((void)0) -#define EFSYS_DMA_SYNC_FOR_DEVICE(_esmp, _offset, _size) ((void)0) + +/* Just avoid store and compiler (impliciltly) reordering */ +#define EFSYS_DMA_SYNC_FOR_DEVICE(_esmp, _offset, _size) rte_wmb() /* TIMESTAMP */