Thread (24 messages) 24 messages, 9 authors, 2026-04-30

Re: [PATCH v3 01/14] ACPI: APEI: Remove redundant rcu_read_lock/unlock() in spin_lock

From: Hanjun Guo <guohanjun@huawei.com>
Date: 2025-09-27 03:22:57
Also in: cgroups, linux-acpi, linux-fsdevel, linux-nfs, linux-rt-devel, linux-s390, linux-security-module, linux-wireless, lkml

On 2025/9/16 12:47, pengdonglin wrote:
quoted hunk ↗ jump to hunk
From: pengdonglin <redacted>

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: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Hanjun Guo <guohanjun@huawei.com>
Signed-off-by: pengdonglin <redacted>
Signed-off-by: pengdonglin <redacted>
---
  drivers/acpi/apei/ghes.c | 2 --
  1 file changed, 2 deletions(-)
diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
index a0d54993edb3..97ee19f2cae0 100644
--- a/drivers/acpi/apei/ghes.c
+++ b/drivers/acpi/apei/ghes.c
@@ -1207,12 +1207,10 @@ static int ghes_notify_hed(struct notifier_block *this, unsigned long event,
  	int ret = NOTIFY_DONE;
  
  	spin_lock_irqsave(&ghes_notify_lock_irq, flags);
-	rcu_read_lock();
  	list_for_each_entry_rcu(ghes, &ghes_hed, list) {
  		if (!ghes_proc(ghes))
  			ret = NOTIFY_OK;
  	}
-	rcu_read_unlock();
  	spin_unlock_irqrestore(&ghes_notify_lock_irq, flags);
  
  	return ret;
Reviewed-by: Hanjun Guo <guohanjun@huawei.com>

Thanks
Hanjun
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help