From e0a1cd7a620dea9d91972b4d08e9364bcc8557db Mon Sep 17 00:00:00 2001 From: Konstantin Ananyev Date: Thu, 15 Oct 2020 12:53:56 +0100 Subject: [PATCH] acl: fix build with gcc 5.4.0 gcc 5.4 fails with: ../lib/librte_acl/acl_run_avx512x8.h: In function 'match_process_avx512x8': ../lib/librte_acl/acl_run_avx512x8.h:382:31: error: pointer targets in passing argument 1 of '_mm256_mask_i32scatter_epi32' differ in signedness [-Werror=pointer-sign] Later gcc versions work fine, as for them parameter type was changed to 'void *'. Fixed by applying explicit cast for offending argument. Bugzilla ID: 556 Fixes: b64c2295f7fc ("acl: add 256-bit AVX512 classify method") Fixes: 45da22e42ec3 ("acl: add 512-bit AVX512 classify method") Reported-by: Ali Alnubani Signed-off-by: Konstantin Ananyev Tested-by: Ali Alnubani --- lib/librte_acl/acl_run_avx512_common.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_acl/acl_run_avx512_common.h b/lib/librte_acl/acl_run_avx512_common.h index 1baf79b7ae..fafaf591e8 100644 --- a/lib/librte_acl/acl_run_avx512_common.h +++ b/lib/librte_acl/acl_run_avx512_common.h @@ -246,8 +246,8 @@ _F_(match_process)(struct acl_flow_avx512 *flow, uint32_t *fmsk, tr_hi[0] = _M_I_(mask_mov_epi32)(tr_hi[0], rmsk[0], _SV_(trhi_idle)); /* save found match indexes */ - _M_I_(mask_i32scatter_epi32)(flow->matches, rmsk[0], idx[0], res, - sizeof(flow->matches[0])); + _M_I_(mask_i32scatter_epi32)((void *)flow->matches, rmsk[0], idx[0], + res, sizeof(flow->matches[0])); /* update masks and start new flows for matches */ n = update_flow_mask(flow, fmsk, rmsk); -- 2.20.1