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.
Signed-off-by: Santosh Shukla <santosh.shu...@caviumnetworks.com> Signed-off-by: Jerin Jacob <jerin.ja...@caviumnetworks.com> CC: Huawei Xie <huawei....@intel.com> CC: Yuanhan Liu <yuanhan....@linux.intel.com> --- drivers/net/virtio/virtio_pci.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c index 9b47165..47c5a2e 100644 --- a/drivers/net/virtio/virtio_pci.c +++ b/drivers/net/virtio/virtio_pci.c @@ -41,6 +41,8 @@ #include "virtio_logs.h" #include "virtqueue.h" +#include <rte_io.h> + /* * Following macros are derived from linux/pci_regs.h, however, * we can't simply include that header here, as there is no such @@ -320,37 +322,37 @@ static const struct virtio_pci_ops legacy_ops = { static inline uint8_t io_read8(uint8_t *addr) { - return *(volatile uint8_t *)addr; + return rte_readb(addr); } static inline void io_write8(uint8_t val, uint8_t *addr) { - *(volatile uint8_t *)addr = val; + rte_writeb(val, addr); } static inline uint16_t io_read16(uint16_t *addr) { - return *(volatile uint16_t *)addr; + return rte_readw(addr); } static inline void io_write16(uint16_t val, uint16_t *addr) { - *(volatile uint16_t *)addr = val; + rte_writew(val, addr); } static inline uint32_t io_read32(uint32_t *addr) { - return *(volatile uint32_t *)addr; + return rte_readl(addr); } static inline void io_write32(uint32_t val, uint32_t *addr) { - *(volatile uint32_t *)addr = val; + rte_writel(val, addr); } static inline void -- 2.5.5