On Fri, 19 Jun 2020 08:49:21 +0200
John Ogness <john.ogness(a)linutronix.de> wrote:
> +++ 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.
Haven written macros that do such things, I agree with your last
statement. Just have the macro declare all the variables static.
-- Steve