[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250128144452.fb5f9741e58f059c7cdf4ce9@kernel.org>
Date: Tue, 28 Jan 2025 14:44:52 +0900
From: Masami Hiramatsu (Google) <mhiramat@...nel.org>
To: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
Cc: linux-modules@...r.kernel.org, linux-kernel@...r.kernel.org, Daniel
Gomez <da.gomez@...sung.com>, Luis Chamberlain <mcgrof@...nel.org>,
"Paul E . McKenney" <paulmck@...nel.org>, Peter Zijlstra
<peterz@...radead.org>, Petr Pavlu <petr.pavlu@...e.com>, Sami Tolvanen
<samitolvanen@...gle.com>, Thomas Gleixner <tglx@...utronix.de>,
"David S. Miller" <davem@...emloft.net>, Anil S Keshavamurthy
<anil.s.keshavamurthy@...el.com>, Masami Hiramatsu <mhiramat@...nel.org>,
Naveen N Rao <naveen@...nel.org>, linux-trace-kernel@...r.kernel.org
Subject: Re: [PATCH v3 26/28] kprobes: Use RCU in all users of
__module_text_address().
On Wed, 8 Jan 2025 10:04:55 +0100
Sebastian Andrzej Siewior <bigeasy@...utronix.de> wrote:
> __module_text_address() can be invoked within a RCU section, there is no
> requirement to have preemption disabled.
>
> Replace the preempt_disable() section around __module_text_address()
> with RCU.
Hi,
Since the below cleanup has been merged, this patch needs to be updated.
https://lore.kernel.org/all/20241121-kprobes-preempt-v1-1-fd581ee7fcbb@linutronix.de/
(may need to change the guard(preempt)() -> guard(rcu)() in the new version.)
Thank you,
>
> Cc: David S. Miller <davem@...emloft.net>
> Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@...el.com>
> Cc: Masami Hiramatsu <mhiramat@...nel.org>
> Cc: Naveen N Rao <naveen@...nel.org>
> Cc: linux-trace-kernel@...r.kernel.org
> Acked-by: Peter Zijlstra (Intel) <peterz@...radead.org>
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
> ---
> kernel/kprobes.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/kprobes.c b/kernel/kprobes.c
> index b027a4030976a..22e47a27df4aa 100644
> --- a/kernel/kprobes.c
> +++ b/kernel/kprobes.c
> @@ -1566,7 +1566,7 @@ static int check_kprobe_address_safe(struct kprobe *p,
> if (ret)
> return ret;
> jump_label_lock();
> - preempt_disable();
> + rcu_read_lock();
>
> /* Ensure the address is in a text area, and find a module if exists. */
> *probed_mod = NULL;
> @@ -1612,7 +1612,7 @@ static int check_kprobe_address_safe(struct kprobe *p,
> }
>
> out:
> - preempt_enable();
> + rcu_read_unlock();
> jump_label_unlock();
>
> return ret;
> --
> 2.47.1
>
--
Masami Hiramatsu (Google) <mhiramat@...nel.org>
Powered by blists - more mailing lists