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

Reply via email to