Re: [RFC PATCH] printk: _printk_rb_static_dict can be static

From: John Ogness
Date: Fri Jun 19 2020 - 02:49:31 EST


On 2020-06-18, kernel test robot <lkp@xxxxxxxxx> wrote:
> Signed-off-by: kernel test robot <lkp@xxxxxxxxx>
> ---
> printk.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
> index 7642ef634956f..d812ada06735f 100644
> --- a/kernel/printk/printk.c
> +++ b/kernel/printk/printk.c
> @@ -434,7 +434,7 @@ static u32 log_buf_len = __LOG_BUF_LEN;
> */
> #define PRB_AVGBITS 5 /* 32 character average length */
>
> -_DECLARE_PRINTKRB(printk_rb_static, CONFIG_LOG_BUF_SHIFT - PRB_AVGBITS,
> +static _DECLARE_PRINTKRB(printk_rb_static, CONFIG_LOG_BUF_SHIFT - PRB_AVGBITS,
> PRB_AVGBITS, PRB_AVGBITS, &__log_buf[0]);

_DECLARE_PRINTKRB declares multiple variables, so this patch will not
work as intended. I would like to declare the variables static but am
not sure how best to go about it.

In the Linux source I see examples of macros just desclaring the
variables static. And I see examples of the macros providing a parameter
where the "static" keyword can be specified.

Since the ringbuffer was created exclusively to serve printk, I would
prefer to just have _DECLARE_PRINTKRB (and DECLARE_PRINTKRB) declare all
the variables as static.

John Ogness