From: Santosh Shukla <santosh.shu...@caviumnetworks.com> Replace the raw I/O device memory read/write access with eal abstraction for I/O device memory read/write access to fix portability issues across different architectures.
CC: Jan Medala <j...@semihalf.com> CC: Jakub Palider <j...@semihalf.com> Signed-off-by: Santosh Shukla <santosh.shu...@caviumnetworks.com> Signed-off-by: Jerin Jacob <jerin.ja...@caviumnetworks.com> Acked-by: Jan Medala <j...@semihalf.com> --- drivers/net/ena/base/ena_eth_com.h | 2 +- drivers/net/ena/base/ena_plat_dpdk.h | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/net/ena/base/ena_eth_com.h b/drivers/net/ena/base/ena_eth_com.h index 71a880c..ee62685 100644 --- a/drivers/net/ena/base/ena_eth_com.h +++ b/drivers/net/ena/base/ena_eth_com.h @@ -118,7 +118,7 @@ static inline int ena_com_write_sq_doorbell(struct ena_com_io_sq *io_sq) ena_trc_dbg("write submission queue doorbell for queue: %d tail: %d\n", io_sq->qid, tail); - ENA_REG_WRITE32(tail, io_sq->db_addr); + ENA_REG_WRITE32_RELAXED(tail, io_sq->db_addr); return 0; } diff --git a/drivers/net/ena/base/ena_plat_dpdk.h b/drivers/net/ena/base/ena_plat_dpdk.h index 87c3bf1..09d540a 100644 --- a/drivers/net/ena/base/ena_plat_dpdk.h +++ b/drivers/net/ena/base/ena_plat_dpdk.h @@ -48,6 +48,7 @@ #include <rte_malloc.h> #include <rte_memzone.h> #include <rte_spinlock.h> +#include <rte_io.h> #include <sys/time.h> @@ -226,15 +227,21 @@ typedef uint64_t dma_addr_t; static inline void writel(u32 value, volatile void *addr) { - *(volatile u32 *)addr = value; + rte_write32(value, addr); +} + +static inline void writel_relaxed(u32 value, volatile void *addr) +{ + rte_write32_relaxed(value, addr); } static inline u32 readl(const volatile void *addr) { - return *(const volatile u32 *)addr; + return rte_read32(addr); } #define ENA_REG_WRITE32(value, reg) writel((value), (reg)) +#define ENA_REG_WRITE32_RELAXED(value, reg) writel_relaxed((value), (reg)) #define ENA_REG_READ32(reg) readl((reg)) #define ATOMIC32_INC(i32_ptr) rte_atomic32_inc(i32_ptr) -- 2.5.5