git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
common/cnxk: add null authentication with IPsec
[dpdk.git]
/
drivers
/
common
/
dpaax
/
dpaax_iova_table.h
diff --git
a/drivers/common/dpaax/dpaax_iova_table.h
b/drivers/common/dpaax/dpaax_iova_table.h
index
fc3b9e7
..
b1f2300
100644
(file)
--- a/
drivers/common/dpaax/dpaax_iova_table.h
+++ b/
drivers/common/dpaax/dpaax_iova_table.h
@@
-1,5
+1,5
@@
/* SPDX-License-Identifier: BSD-3-Clause
/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright 2018 NXP
+ * Copyright 2018
-2021
NXP
*/
#ifndef _DPAAX_IOVA_TABLE_H_
*/
#ifndef _DPAAX_IOVA_TABLE_H_
@@
-61,9
+61,13
@@
extern struct dpaax_iova_table *dpaax_iova_table_p;
#define DPAAX_MEM_SPLIT_MASK_OFF (DPAAX_MEM_SPLIT - 1) /**< Offset */
/* APIs exposed */
#define DPAAX_MEM_SPLIT_MASK_OFF (DPAAX_MEM_SPLIT - 1) /**< Offset */
/* APIs exposed */
+__rte_internal
int dpaax_iova_table_populate(void);
int dpaax_iova_table_populate(void);
+__rte_internal
void dpaax_iova_table_depopulate(void);
void dpaax_iova_table_depopulate(void);
+__rte_internal
int dpaax_iova_table_update(phys_addr_t paddr, void *vaddr, size_t length);
int dpaax_iova_table_update(phys_addr_t paddr, void *vaddr, size_t length);
+__rte_internal
void dpaax_iova_table_dump(void);
static inline void *dpaax_iova_table_get_va(phys_addr_t paddr) __rte_hot;
void dpaax_iova_table_dump(void);
static inline void *dpaax_iova_table_get_va(phys_addr_t paddr) __rte_hot;
@@
-97,6
+101,12
@@
dpaax_iova_table_get_va(phys_addr_t paddr) {
/* paddr > entry->start && paddr <= entry->(start+len) */
index = (paddr_align - entry[i].start)/DPAAX_MEM_SPLIT;
/* paddr > entry->start && paddr <= entry->(start+len) */
index = (paddr_align - entry[i].start)/DPAAX_MEM_SPLIT;
+ /* paddr is within range, but no vaddr entry ever written
+ * at index
+ */
+ if ((void *)(uintptr_t)entry[i].pages[index] == NULL)
+ return NULL;
+
vaddr = (void *)((uintptr_t)entry[i].pages[index] + offset);
break;
} while (1);
vaddr = (void *)((uintptr_t)entry[i].pages[index] + offset);
break;
} while (1);