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

From: Martin KaFai Lau
Date: Wed Jun 29 2022 - 13:37:16 EST


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 <jbi.octave@xxxxxxxxx>
> ---
> 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
>