Re: [PATCH printk v2 2/5] printk: remove safe buffers

From: John Ogness
Date: Wed Mar 31 2021 - 04:00:20 EST


On 2021-03-30, John Ogness <john.ogness@xxxxxxxxxxxxx> wrote:
> diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
> index e971c0a9ec9e..f090d6a1b39e 100644
> --- a/kernel/printk/printk.c
> +++ b/kernel/printk/printk.c
> @@ -1772,16 +1759,21 @@ static struct task_struct *console_owner;
> static bool console_waiter;
>
> /**
> - * console_lock_spinning_enable - mark beginning of code where another
> + * console_lock_spinning_enable_irqsave - mark beginning of code where another
> * thread might safely busy wait
> *
> * This basically converts console_lock into a spinlock. This marks
> * the section where the console_lock owner can not sleep, because
> * there may be a waiter spinning (like a spinlock). Also it must be
> * ready to hand over the lock at the end of the section.
> + *
> + * This disables interrupts because the hand over to a waiter must not be
> + * interrupted until the hand over is completed (@console_waiter is cleared).
> */
> -static void console_lock_spinning_enable(void)
> +static void console_lock_spinning_enable_irqsave(unsigned long *flags)

I missed the prototype change for the !CONFIG_PRINTK case, resulting in:

linux/kernel/printk/printk.c:2707:3: error: implicit declaration of function ‘console_lock_spinning_enable_irqsave’; did you mean ‘console_lock_spinning_enable’? [-Werror=implicit-function-declaration]
console_lock_spinning_enable_irqsave(&flags);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
console_lock_spinning_enable

Will be fixed for v3.

(I have now officially added !CONFIG_PRINTK to my CI tests.)

John Ogness