X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fcommon%2Fdpaax%2Fdpaax_iova_table.h;h=fc3b9e7a8f6fe42214fca2af0f02ce71e41b8b6c;hb=c59e2faf147339e9b8375e2698919b8c053b0666;hp=1109a362c83dcd66a67be84c103b6ebc3fab655b;hpb=2f3d633aa593c89c86dfb0e7df75e49ee05ad808;p=dpdk.git diff --git a/drivers/common/dpaax/dpaax_iova_table.h b/drivers/common/dpaax/dpaax_iova_table.h index 1109a362c8..fc3b9e7a8f 100644 --- a/drivers/common/dpaax/dpaax_iova_table.h +++ b/drivers/common/dpaax/dpaax_iova_table.h @@ -45,6 +45,8 @@ extern struct dpaax_iova_table *dpaax_iova_table_p; * is SoC dependent, or even Uboot fixup dependent. */ #define MEM_NODE_PATH_GLOB "/proc/device-tree/memory[@0-9]*/reg" +/* For Virtual Machines memory node is at different path (below) */ +#define MEM_NODE_PATH_GLOB_VM "/proc/device-tree/memory/reg" /* Device file should be multiple of 16 bytes, each containing 8 byte of addr * and its length. Assuming max of 5 entries. */ @@ -64,7 +66,7 @@ void dpaax_iova_table_depopulate(void); int dpaax_iova_table_update(phys_addr_t paddr, void *vaddr, size_t length); void dpaax_iova_table_dump(void); -static inline void *dpaax_iova_table_get_va(phys_addr_t paddr) __attribute__((hot)); +static inline void *dpaax_iova_table_get_va(phys_addr_t paddr) __rte_hot; static inline void * dpaax_iova_table_get_va(phys_addr_t paddr) { @@ -74,6 +76,9 @@ dpaax_iova_table_get_va(phys_addr_t paddr) { size_t offset = paddr & DPAAX_MEM_SPLIT_MASK_OFF; struct dpaax_iovat_element *entry; + if (unlikely(dpaax_iova_table_p == NULL)) + return NULL; + entry = dpaax_iova_table_p->entries; do {