From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 20BF246F6F for ; Thu, 25 Sep 2025 12:23:46 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1993F402AB; Thu, 25 Sep 2025 12:23:46 +0200 (CEST) Received: from dpdk.org (dpdk.org [92.243.24.197]) by mails.dpdk.org (Postfix) with ESMTP id EDDB2402AB for ; Thu, 25 Sep 2025 12:23:44 +0200 (CEST) Received: by dpdk.org (Postfix, from userid 65534) id 903EE12422E; Thu, 25 Sep 2025 12:20:41 +0200 (CEST) Subject: |WARNING| pw156944 [dpdk-dev v1] cryptodev: introduce constant-time memory comparison In-Reply-To: <20250925102223.145471-1-kai.ji@intel.com> References: <20250925102223.145471-1-kai.ji@intel.com> To: test-report@dpdk.org From: checkpatch@dpdk.org Cc: Kai Ji Message-Id: <20250925102041.903EE12422E@dpdk.org> Date: Thu, 25 Sep 2025 12:20:41 +0200 (CEST) X-BeenThere: test-report@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: automatic DPDK test reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: test-report-bounces@dpdk.org Test-Label: checkpatch Test-Status: WARNING http://dpdk.org/patch/156944 _coding style issues_ ERROR:COMPLEX_MACRO: Macros with complex values should be enclosed in parentheses #209: FILE: lib/cryptodev/rte_cryptodev.h:95: +#define rte_consttime_memcmp(a, b, n) __extension__ ({ \ + const volatile uint8_t *__pa = (const volatile uint8_t *)(a); \ + const volatile uint8_t *__pb = (const volatile uint8_t *)(b); \ + uint8_t __result = 0; \ + for (size_t __i = 0; __i < (n); __i++) \ + __result |= __pa[__i] ^ __pb[__i]; \ + __result; \ +}) BUT SEE: do {} while (0) advice is over-stated in a few situations: The more obvious case is macros, like MODULE_PARM_DESC, invoked at file-scope, where C disallows code (it must be in functions). See $exceptions if you have one to add by name. More troublesome is declarative macros used at top of new scope, like DECLARE_PER_CPU. These might just compile with a do-while-0 wrapper, but would be incorrect. Most of these are handled by detecting struct,union,etc declaration primitives in $exceptions. Theres also macros called inside an if (block), which "return" an expression. These cannot do-while, and need a ({}) wrapper. Enjoy this qualification while we work to improve our heuristics. WARNING:MISSING_FIXES_TAG: The commit message has 'stable@', perhaps it also needs a 'Fixes:' tag? total: 1 errors, 1 warnings, 93 lines checked