vhost/crypto: fix build with gcc 4.7.2
authorMaxime Coquelin <maxime.coquelin@redhat.com>
Fri, 27 Apr 2018 09:04:38 +0000 (11:04 +0200)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 27 Apr 2018 09:31:39 +0000 (11:31 +0200)
Build error has been reported by Intel build system:
SUSE12SP3_64 / Linux 3.7.10-1 / GCC 4.7.2
lib/librte_vhost/vhost_crypto.c: In function ‘rte_vhost_crypto_set_zero_copy’:
lib/librte_vhost/vhost_crypto.c:1192:2: error:
comparison of unsigned expression < 0 is always false

As enums can be either signed or unsigned, this patch removes
the negative check and cast to unsigned the upper limit check.

Fixes: 939066d96563 ("vhost/crypto: add public function implementation")

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
lib/librte_vhost/vhost_crypto.c

index c38eb3b..c6fb2fe 100644 (file)
@@ -1189,8 +1189,8 @@ rte_vhost_crypto_set_zero_copy(int vid, enum rte_vhost_crypto_zero_copy option)
                return -EINVAL;
        }
 
-       if (unlikely(option < 0 || option >=
-                       RTE_VHOST_CRYPTO_MAX_ZERO_COPY_OPTIONS)) {
+       if (unlikely((uint32_t)option >=
+                               RTE_VHOST_CRYPTO_MAX_ZERO_COPY_OPTIONS)) {
                VC_LOG_ERR("Invalid option %i", option);
                return -EINVAL;
        }