2022-06-29 17:39:30

by Jules Irenge

[permalink] [raw]
Subject: [PATCH 2/2] btf: Fix error of Macros with multiple statements

This patch fixes an error reported by checkpatch.pl

ERROR: Macros with multiple statements should be
enclosed in a do while loop

To fix this a do while(0) loop is used
to encloses the multiple statements.

Signed-off-by: Jules Irenge <[email protected]>
---
kernel/bpf/btf.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c
index 1bc496162572..95c1ee525e28 100644
--- a/kernel/bpf/btf.c
+++ b/kernel/bpf/btf.c
@@ -5057,8 +5057,10 @@ extern struct btf *btf_vmlinux;
static union {
struct bpf_ctx_convert {
#define BPF_PROG_TYPE(_id, _name, prog_ctx_type, kern_ctx_type) \
- prog_ctx_type _id##_prog; \
- kern_ctx_type _id##_kern;
+ do { \
+ prog_ctx_type _id##_prog; \
+ kern_ctx_type _id##_kern; \
+ } while (0)
#include <linux/bpf_types.h>
#undef BPF_PROG_TYPE
} *__t;
--
2.36.1


2022-06-29 18:04:02

by Martin KaFai Lau

[permalink] [raw]
Subject: Re: [PATCH 2/2] btf: Fix error of Macros with multiple statements

On Wed, Jun 29, 2022 at 06:19:30PM +0100, Jules Irenge wrote:
> This patch fixes an error reported by checkpatch.pl
No. It is not a fix.

Have you at least compiler tested it ?

>
> ERROR: Macros with multiple statements should be
> enclosed in a do while loop
>
> To fix this a do while(0) loop is used
> to encloses the multiple statements.
>
> Signed-off-by: Jules Irenge <[email protected]>
> ---
> kernel/bpf/btf.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c
> index 1bc496162572..95c1ee525e28 100644
> --- a/kernel/bpf/btf.c
> +++ b/kernel/bpf/btf.c
> @@ -5057,8 +5057,10 @@ extern struct btf *btf_vmlinux;
> static union {
> struct bpf_ctx_convert {
> #define BPF_PROG_TYPE(_id, _name, prog_ctx_type, kern_ctx_type) \
> - prog_ctx_type _id##_prog; \
> - kern_ctx_type _id##_kern;
> + do { \
> + prog_ctx_type _id##_prog; \
> + kern_ctx_type _id##_kern; \
> + } while (0)
> #include <linux/bpf_types.h>
> #undef BPF_PROG_TYPE
> } *__t;
> --
> 2.36.1
>