[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87plpum4jw.fsf@jogness.linutronix.de>
Date: Tue, 27 Aug 2024 16:25:31 +0206
From: John Ogness <john.ogness@...utronix.de>
To: Petr Mladek <pmladek@...e.com>
Cc: Sergey Senozhatsky <senozhatsky@...omium.org>,
Steven Rostedt <rostedt@...dmis.org>,
Thomas Gleixner <tglx@...utronix.de>, linux-kernel@...r.kernel.org,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Sebastian Siewior <bigeasy@...utronix.de>
Subject: Re: [PATCH printk v8 31/35] printk: nbcon: Implement emergency
sections
Hi Petr,
On 2024-08-20, John Ogness <john.ogness@...utronix.de> wrote:
> +static __ref unsigned int *nbcon_get_cpu_emergency_nesting(void)
> +{
> + /*
> + * The value of __printk_percpu_data_ready gets set in normal
> + * context and before SMP initialization. As a result it could
> + * never change while inside an nbcon emergency section.
> + */
> + if (!printk_percpu_data_ready())
> + return &early_nbcon_pcpu_emergency_nesting;
> +
> + /* Open code this_cpu_ptr() without checking migration. */
> + return per_cpu_ptr(&nbcon_pcpu_emergency_nesting, raw_smp_processor_id());
> +}
It was pointed out to me that raw_cpu_ptr() exists exactly for this
purpose. There is no need to open code it. Perhaps you can fold the
following patch into this one for linux-next?
John
------------8<--------------
>From fe50e9646c44360d88749c2c24c109405b27ad9e Mon Sep 17 00:00:00 2001
From: John Ogness <john.ogness@...utronix.de>
Date: Tue, 27 Aug 2024 14:06:19 +0000
Subject: [PATCH] printk: nbcon: Use raw_cpu_ptr() instead of open coding
There is no need to open code a non-migration-checking
this_cpu_ptr(). That is exactly what raw_cpu_ptr() is.
Signed-off-by: John Ogness <john.ogness@...utronix.de>
---
kernel/printk/nbcon.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/kernel/printk/nbcon.c b/kernel/printk/nbcon.c
index 92ac5c590927..cf62f675c673 100644
--- a/kernel/printk/nbcon.c
+++ b/kernel/printk/nbcon.c
@@ -998,8 +998,7 @@ static __ref unsigned int *nbcon_get_cpu_emergency_nesting(void)
if (!printk_percpu_data_ready())
return &early_nbcon_pcpu_emergency_nesting;
- /* Open code this_cpu_ptr() without checking migration. */
- return per_cpu_ptr(&nbcon_pcpu_emergency_nesting, raw_smp_processor_id());
+ return raw_cpu_ptr(&nbcon_pcpu_emergency_nesting);
}
/**
--
2.30.2
Powered by blists - more mailing lists