iopl() call is mostly for the i386 architecture. In Power architecture. It doesn't exist. This patch modified rte_eal_iopl_init() and make it return -1 on Power. This means rte_config.flags will not contain EAL_FLG_HIGH_IOPL flag on IBM Power architecture.
Signed-off-by: Chao Zhu <bjzhuc at cn.ibm.com> --- lib/librte_eal/linuxapp/eal/eal.c | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-) diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c index 4869e7c..8cc1f21 100644 --- a/lib/librte_eal/linuxapp/eal/eal.c +++ b/lib/librte_eal/linuxapp/eal/eal.c @@ -50,7 +50,10 @@ #include <errno.h> #include <sys/mman.h> #include <sys/queue.h> +/* Power architecture doesn't have this header file */ +#ifndef RTE_ARCH_PPC_64 #include <sys/io.h> +#endif #include <rte_common.h> #include <rte_debug.h> @@ -1019,11 +1022,19 @@ rte_eal_mcfg_complete(void) /* * Request iopl privilege for all RPL, returns 0 on success + * + * Power architecture doesn't have iopl function, so this function + * return -1 on Power architecture, because this function is only used + * in rte_eal_init to add EAL_FLG_HIGH_IOPL to rte_config.flags. */ static int rte_eal_iopl_init(void) { +#ifndef RTE_ARCH_PPC_64 return iopl(HIGHEST_RPL); +#else + return -1; +#endif } /* Launch threads, called at application init(). */ -- 1.7.1