eal/arm64: fix instrinsic for GCC < 4.9
[dpdk.git] / lib / librte_hash / rte_jhash.h
index 457f225..42c4568 100644 (file)
@@ -48,6 +48,7 @@ extern "C" {
 #include <string.h>
 #include <limits.h>
 
+#include <rte_config.h>
 #include <rte_log.h>
 #include <rte_byteorder.h>
 
@@ -120,7 +121,7 @@ __rte_jhash_2hashes(const void *key, uint32_t length, uint32_t *pc,
         * If check_align is not set, first case will be used
         */
 #if defined(RTE_ARCH_X86_64) || defined(RTE_ARCH_I686) || defined(RTE_ARCH_X86_X32)
-       const uint32_t *k = key;
+       const uint32_t *k = (const uint32_t *)key;
        const uint32_t s = 0;
 #else
        const uint32_t *k = (uint32_t *)((uintptr_t)key & (uintptr_t)~3);
@@ -290,7 +291,10 @@ rte_jhash_32b_2hashes(const uint32_t *k, uint32_t length, uint32_t *pc, uint32_t
 /**
  * The most generic version, hashes an arbitrary sequence
  * of bytes.  No alignment or length assumptions are made about
- * the input key.
+ * the input key.  For keys not aligned to four byte boundaries
+ * or a multiple of four bytes in length, the memory region
+ * just after may be read (but not used in the computation).
+ * This may cross a page boundary.
  *
  * @param key
  *   Key to calculate hash of.