[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <31be6bb6541bb3e338e3025ac9e8fce5@linux.ibm.com>
Date: Tue, 16 Sep 2025 12:51:03 +0200
From: Harald Freudenberger <freude@...ux.ibm.com>
To: pengdonglin <dolinux.peng@...il.com>
Cc: tj@...nel.org, tony.luck@...el.com, jani.nikula@...ux.intel.com,
ap420073@...il.com, jv@...sburgh.net, bcrl@...ck.org,
trondmy@...nel.org, longman@...hat.com, kees@...nel.org,
bigeasy@...utronix.de, hdanton@...a.com, paulmck@...nel.org,
linux-kernel@...r.kernel.org, linux-rt-devel@...ts.linux.dev,
linux-nfs@...r.kernel.org, linux-aio@...ck.org,
linux-fsdevel@...r.kernel.org, linux-security-module@...r.kernel.org,
netdev@...r.kernel.org, intel-gfx@...ts.freedesktop.org,
linux-wireless@...r.kernel.org, linux-acpi@...r.kernel.org,
linux-s390@...r.kernel.org, cgroups@...r.kernel.org,
Holger Dengler <dengler@...ux.ibm.com>,
Vasily
Gorbik <gor@...ux.ibm.com>,
Alexander Gordeev <agordeev@...ux.ibm.com>,
pengdonglin <pengdonglin@...omi.com>
Subject: Re: [PATCH v3 05/14] s390/pkey: Remove redundant
rcu_read_lock/unlock() in spin_lock
On 2025-09-16 06:47, pengdonglin wrote:
> From: pengdonglin <pengdonglin@...omi.com>
>
> Since commit a8bb74acd8efe ("rcu: Consolidate RCU-sched update-side
> function definitions")
> there is no difference between rcu_read_lock(), rcu_read_lock_bh() and
> rcu_read_lock_sched() in terms of RCU read section and the relevant
> grace
> period. That means that spin_lock(), which implies
> rcu_read_lock_sched(),
> also implies rcu_read_lock().
>
> There is no need no explicitly start a RCU read section if one has
> already
> been started implicitly by spin_lock().
>
> Simplify the code and remove the inner rcu_read_lock() invocation.
>
> Cc: Harald Freudenberger <freude@...ux.ibm.com>
> Cc: Holger Dengler <dengler@...ux.ibm.com>
> Cc: Vasily Gorbik <gor@...ux.ibm.com>
> Cc: Alexander Gordeev <agordeev@...ux.ibm.com>
> Signed-off-by: pengdonglin <pengdonglin@...omi.com>
> Signed-off-by: pengdonglin <dolinux.peng@...il.com>
> ---
> drivers/s390/crypto/pkey_base.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/s390/crypto/pkey_base.c
> b/drivers/s390/crypto/pkey_base.c
> index b15741461a63..4c4a9feecccc 100644
> --- a/drivers/s390/crypto/pkey_base.c
> +++ b/drivers/s390/crypto/pkey_base.c
> @@ -48,16 +48,13 @@ int pkey_handler_register(struct pkey_handler
> *handler)
>
> spin_lock(&handler_list_write_lock);
>
> - rcu_read_lock();
> list_for_each_entry_rcu(h, &handler_list, list) {
> if (h == handler) {
> - rcu_read_unlock();
> spin_unlock(&handler_list_write_lock);
> module_put(handler->module);
> return -EEXIST;
> }
> }
> - rcu_read_unlock();
>
> list_add_rcu(&handler->list, &handler_list);
> spin_unlock(&handler_list_write_lock);
Acked-by: Harald Freudenberger <freude@...ux.ibm.com>
Powered by blists - more mailing lists