|WARNING| pw156098 [PATCH v2 02/43] eal: add BSD version of queue.h

checkpatch at dpdk.org checkpatch at dpdk.org
Mon Aug 25 05:42:35 CEST 2025


Test-Label: checkpatch
Test-Status: WARNING
http://dpdk.org/patch/156098

_coding style issues_


WARNING:SPACING: space prohibited between function name and open parenthesis '('
#520: FILE: lib/eal/include/rte_bsd_queue.h:98:
+#warn Use QUEUE_MACRO_DEBUG_xxx instead (TRACE, TRASH and/or ASSERTIONS)

WARNING:TRAILING_SEMICOLON: macros should not use a trailing semicolon
#533: FILE: lib/eal/include/rte_bsd_queue.h:111:
+#define TRACEBUF	struct qm_trace trace;

ERROR:SPACING: space prohibited before that ',' (ctx:WxE)
#534: FILE: lib/eal/include/rte_bsd_queue.h:112:
+#define TRACEBUF_INITIALIZER	{ __LINE__, 0, __FILE__, NULL } ,
                             	                                ^

ERROR:COMPLEX_MACRO: Macros with complex values should be enclosed in parentheses
#534: FILE: lib/eal/include/rte_bsd_queue.h:112:
+#define TRACEBUF_INITIALIZER	{ __LINE__, 0, __FILE__, NULL } ,

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.

ERROR:SPACING: space required after that ';' (ctx:VxV)
#559: FILE: lib/eal/include/rte_bsd_queue.h:137:
+#define TRASHIT(x)		do {(x) = (void *)-1;} while (0)
                   		                    ^

WARNING:SINGLE_STATEMENT_DO_WHILE_MACRO: Single statement macros should not use a do {} while (0) loop
#559: FILE: lib/eal/include/rte_bsd_queue.h:137:
+#define TRASHIT(x)		do {(x) = (void *)-1;} while (0)

WARNING:LEADING_SPACE: please, no spaces at the start of a line
#568: FILE: lib/eal/include/rte_bsd_queue.h:146:
+    defined(QUEUE_MACRO_NO_DEBUG_ASSERTIONS)$

WARNING:LEADING_SPACE: please, no spaces at the start of a line
#578: FILE: lib/eal/include/rte_bsd_queue.h:156:
+    !defined(QUEUE_MACRO_NO_DEBUG_ASSERTIONS) &&^I^I^I\$

WARNING:LEADING_SPACE: please, no spaces at the start of a line
#579: FILE: lib/eal/include/rte_bsd_queue.h:157:
+    (defined(_KERNEL) && defined(INVARIANTS))$

WARNING:TYPO_SPELLING: 'stdio' may be misspelled - perhaps 'studio'?
#589: FILE: lib/eal/include/rte_bsd_queue.h:167:
+#include <stdio.h>
           ^^^^^

WARNING:MACRO_ARG_UNUSED: Argument 'test' is not used in function-like macro
#606: FILE: lib/eal/include/rte_bsd_queue.h:184:
+#define QMD_ASSERT(test, fmt, ...) do {} while (0)

WARNING:MACRO_ARG_UNUSED: Argument 'fmt' is not used in function-like macro
#606: FILE: lib/eal/include/rte_bsd_queue.h:184:
+#define QMD_ASSERT(test, fmt, ...) do {} while (0)

WARNING:MACRO_ARG_UNUSED: Argument 'head' is not used in function-like macro
#633: FILE: lib/eal/include/rte_bsd_queue.h:211:
+#define SLIST_HEAD_INITIALIZER(head)					\
+	{ NULL }

ERROR:SPACING: need consistent spacing around '*' (ctx:WxV)
#664: FILE: lib/eal/include/rte_bsd_queue.h:242:
+	QUEUE_TYPEOF(type) *_Curelm = SLIST_FIRST(head1);		\
 	                   ^

ERROR:ASSIGN_IN_IF: do not use assignment in if condition
#666: FILE: lib/eal/include/rte_bsd_queue.h:244:
+		if ((SLIST_FIRST(head1) = SLIST_FIRST(head2)) != NULL)	\

WARNING:SINGLE_STATEMENT_DO_WHILE_MACRO: Single statement macros should not use a do {} while (0) loop
#708: FILE: lib/eal/include/rte_bsd_queue.h:286:
+#define SLIST_INIT(head) do {						\
+	SLIST_FIRST((head)) = NULL;					\
+} while (0)

ERROR:SPACING: need consistent spacing around '*' (ctx:WxV)
#729: FILE: lib/eal/include/rte_bsd_queue.h:307:
+		QUEUE_TYPEOF(type) *_Curelm = SLIST_FIRST(head);		\
 		                   ^

ERROR:SPACING: need consistent spacing around '*' (ctx:WxV)
#762: FILE: lib/eal/include/rte_bsd_queue.h:340:
+	QUEUE_TYPEOF(type) *_Swap_first = SLIST_FIRST(head1);		\
 	                   ^

WARNING:MACRO_ARG_UNUSED: Argument 'head' is not used in function-like macro
#767: FILE: lib/eal/include/rte_bsd_queue.h:345:
+#define SLIST_END(head)		NULL

ERROR:SPACING: space required before the open parenthesis '('
#852: FILE: lib/eal/include/rte_bsd_queue.h:430:
+	for((var) = STAILQ_FIRST((head));				\

ERROR:ASSIGN_IN_IF: do not use assignment in if condition
#877: FILE: lib/eal/include/rte_bsd_queue.h:455:
+	if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\

ERROR:ASSIGN_IN_IF: do not use assignment in if condition
#883: FILE: lib/eal/include/rte_bsd_queue.h:461:
+	if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL)	\

ERROR:SPACING: need consistent spacing around '*' (ctx:WxV)
#908: FILE: lib/eal/include/rte_bsd_queue.h:486:
+		QUEUE_TYPEOF(type) *_Curelm = STAILQ_FIRST(head);	\
 		                   ^

ERROR:ASSIGN_IN_IF: do not use assignment in if condition
#917: FILE: lib/eal/include/rte_bsd_queue.h:495:
+	if ((STAILQ_NEXT(elm, field) =					\

ERROR:ASSIGN_IN_IF: do not use assignment in if condition
#923: FILE: lib/eal/include/rte_bsd_queue.h:501:
+	if ((STAILQ_FIRST((head)) =					\

ERROR:SPACING: need consistent spacing around '*' (ctx:WxV)
#943: FILE: lib/eal/include/rte_bsd_queue.h:521:
+	QUEUE_TYPEOF(type) *_Swap_first = STAILQ_FIRST(head1);		\
 	                   ^

ERROR:SPACING: need consistent spacing around '*' (ctx:WxO)
#944: FILE: lib/eal/include/rte_bsd_queue.h:522:
+	QUEUE_TYPEOF(type) **_Swap_last = (head1)->stqh_last;		\
 	                   ^

ERROR:SPACING: need consistent spacing around '*' (ctx:WxV)
#958: FILE: lib/eal/include/rte_bsd_queue.h:536:
+	QUEUE_TYPEOF(type) *_Var, *_Varp, *_Varn;			\
 	                   ^

WARNING:MACRO_ARG_UNUSED: Argument 'head' is not used in function-like macro
#970: FILE: lib/eal/include/rte_bsd_queue.h:548:
+#define STAILQ_END(head)	NULL

WARNING:MACRO_ARG_UNUSED: Argument 'head' is not used in function-like macro
#987: FILE: lib/eal/include/rte_bsd_queue.h:565:
+#define LIST_HEAD_INITIALIZER(head)					\
+	{ NULL }

ERROR:SPACING: need consistent spacing around '*' (ctx:WxV)
#1049: FILE: lib/eal/include/rte_bsd_queue.h:627:
+	QUEUE_TYPEOF(type) *_Curelm = LIST_FIRST(head1);			\
 	                   ^

ERROR:ASSIGN_IN_IF: do not use assignment in if condition
#1051: FILE: lib/eal/include/rte_bsd_queue.h:629:
+		if ((LIST_FIRST(head1) = LIST_FIRST(head2)) != NULL) {	\

WARNING:SINGLE_STATEMENT_DO_WHILE_MACRO: Single statement macros should not use a do {} while (0) loop
#1092: FILE: lib/eal/include/rte_bsd_queue.h:670:
+#define LIST_INIT(head) do {						\
+	LIST_FIRST((head)) = NULL;					\
+} while (0)

ERROR:ASSIGN_IN_IF: do not use assignment in if condition
#1098: FILE: lib/eal/include/rte_bsd_queue.h:676:
+	if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\

ERROR:ASSIGN_IN_IF: do not use assignment in if condition
#1115: FILE: lib/eal/include/rte_bsd_queue.h:693:
+	if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL)	\

ERROR:SPACING: need consistent spacing around '*' (ctx:WxV)
#1173: FILE: lib/eal/include/rte_bsd_queue.h:751:
+	QUEUE_TYPEOF(type) *swap_tmp = LIST_FIRST(head1);		\
 	                   ^

ERROR:ASSIGN_IN_IF: do not use assignment in if condition
#1176: FILE: lib/eal/include/rte_bsd_queue.h:754:
+	if ((swap_tmp = LIST_FIRST((head1))) != NULL)			\

ERROR:ASSIGN_IN_IF: do not use assignment in if condition
#1178: FILE: lib/eal/include/rte_bsd_queue.h:756:
+	if ((swap_tmp = LIST_FIRST((head2))) != NULL)			\

WARNING:MACRO_ARG_UNUSED: Argument 'head' is not used in function-like macro
#1182: FILE: lib/eal/include/rte_bsd_queue.h:760:
+#define LIST_END(head)	NULL

WARNING:MACRO_ARG_UNUSED: Argument 'field' is not used in function-like macro
#1241: FILE: lib/eal/include/rte_bsd_queue.h:819:
+#define QMD_TAILQ_CHECK_TAIL(head, field)				\
+	QMD_ASSERT(*(head)->tqh_last == NULL,				\
+	    "Bad tailq NEXT(%p->tqh_last) != NULL",			\
+	    (head))

ERROR:ASSIGN_IN_IF: do not use assignment in if condition
#1341: FILE: lib/eal/include/rte_bsd_queue.h:919:
+	if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\

ERROR:ASSIGN_IN_IF: do not use assignment in if condition
#1366: FILE: lib/eal/include/rte_bsd_queue.h:944:
+	if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL)	\

WARNING:LEADING_SPACE: please, no spaces at the start of a line
#1398: FILE: lib/eal/include/rte_bsd_queue.h:976:
+    (TAILQ_EMPTY(head) ? NULL : __containerof((head)->tqh_last, QUEUE_TYPEOF(type), field.tqe_next))$

WARNING:LEADING_SPACE: please, no spaces at the start of a line
#1406: FILE: lib/eal/include/rte_bsd_queue.h:984:
+    ((elm)->field.tqe_prev == &(head)->tqh_first ? NULL :^I^I\$

WARNING:LEADING_SPACE: please, no spaces at the start of a line
#1407: FILE: lib/eal/include/rte_bsd_queue.h:985:
+     __containerof((elm)->field.tqe_prev, QUEUE_TYPEOF(type), field.tqe_next))$

ERROR:SPACING: need consistent spacing around '*' (ctx:WxV)
#1466: FILE: lib/eal/include/rte_bsd_queue.h:1044:
+	QUEUE_TYPEOF(type) *swap_first = (head1)->tqh_first;		\
 	                   ^

ERROR:SPACING: need consistent spacing around '*' (ctx:WxO)
#1467: FILE: lib/eal/include/rte_bsd_queue.h:1045:
+	QUEUE_TYPEOF(type) **swap_last = (head1)->tqh_last;		\
 	                   ^

ERROR:ASSIGN_IN_IF: do not use assignment in if condition
#1472: FILE: lib/eal/include/rte_bsd_queue.h:1050:
+	if ((swap_first = (head1)->tqh_first) != NULL)			\

ERROR:ASSIGN_IN_IF: do not use assignment in if condition
#1476: FILE: lib/eal/include/rte_bsd_queue.h:1054:
+	if ((swap_first = (head2)->tqh_first) != NULL)			\

WARNING:MACRO_ARG_UNUSED: Argument 'head' is not used in function-like macro
#1482: FILE: lib/eal/include/rte_bsd_queue.h:1060:
+#define TAILQ_END(head)		NULL

total: 29 errors, 21 warnings, 1355 lines checked
Warning in lib/eal/include/rte_bsd_queue.h:
Writing to stdout or stderr


More information about the test-report mailing list