Re: [PATCH v3 05/14] s390/pkey: Remove redundant rcu_read_lock/unlock() in spin_lock
Harald Freudenberger <[email protected]>
| Newsgroups | gmane.linux.acpi.devel,gmane.linux.kernel,gmane.linux.nfs,gmane.linux.kernel.aio.general,gmane.linux.file-systems,gmane.linux.kernel.lsm,gmane.linux.network,gmane.comp.freedesktop.xorg.drivers.intel,gmane.linux.kernel.wireless.general,gmane.linux.kernel.cgroups |
|---|---|
| Message-ID | <[email protected]> |
On 2025-09-16 06:47, pengdonglin wrote: > From: pengdonglin <[email protected]> > > 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 <[email protected]> > Cc: Holger Dengler <[email protected]> > Cc: Vasily Gorbik <[email protected]> > Cc: Alexander Gordeev <[email protected]> > Signed-off-by: pengdonglin <[email protected]> > Signed-off-by: pengdonglin <[email protected]> > --- > 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 <[email protected]>