On 2025-09-16 06:47, pengdonglin wrote:
> From: pengdonglin <pengdonglin@xiaomi.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@linux.ibm.com>
> Cc: Holger Dengler <dengler@linux.ibm.com>
> Cc: Vasily Gorbik <gor@linux.ibm.com>
> Cc: Alexander Gordeev <agordeev@linux.ibm.com>
> Signed-off-by: pengdonglin <pengdonglin@xiaomi.com>
> Signed-off-by: pengdonglin <dolinux.peng@gmail.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@linux.ibm.com>