Thread (61 messages) 61 messages, 7 authors, 2021-03-17

Re: [dpdk-dev] [PATCH v11 2/2] bus/pci: support MMIO in PCI ioport accessors

From: David Marchand <hidden>
Date: 2021-03-15 10:19:51

On Thu, Mar 11, 2021 at 7:43 AM Wang, Haiyue [off-list ref] wrote:
Like kernel use macro to do pio and mmio, maybe we can also to do so for
making code clean:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/lib/iomap.c

#define IO_COND(addr, is_pio, is_mmio) do {                     \
        unsigned long port = (unsigned long __force)addr;       \
        if (port >= PIO_RESERVED) {                             \
                is_mmio;                                        \
        } else if (port > PIO_OFFSET) {                         \
                port &= PIO_MASK;                               \
                is_pio;                                         \
        } else                                                  \
                bad_io_access(port, #is_pio );                  \
} while (0)


Like:

#if defined(RTE_ARCH_X86)
#define IO_COND(addr, is_pio, is_mmio) do {           \
        if ((uint64_t)(uintptr_t)addr >= PIO_MAX) {   \
                is_mmio;                              \
        } else {                                      \
                is_pio;                               \
        }                                             \
} while (0)
#else
#define IO_COND(addr, is_pio, is_mmio) do {           \
                is_mmio;                              \
} while (0)
#endif
We should not just copy/paste kernel code.

Plus here, this seems a bit overkill.
And there are other parts in this code that could use some polishing.

What do you think of merging this series as is (now that we got non
regression reports) and doing such cleanups in followup patches?


-- 
David Marchand
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help