]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ACPI: APEI: Remove redundant rcu_read_lock/unlock() under spinlock
authorpengdonglin <pengdonglin@xiaomi.com>
Tue, 16 Sep 2025 04:47:22 +0000 (12:47 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sun, 28 Sep 2025 10:31:54 +0000 (12:31 +0200)
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.

Signed-off-by: pengdonglin <pengdonglin@xiaomi.com>
Signed-off-by: pengdonglin <dolinux.peng@gmail.com>
Reviewed-by: Hanjun Guo <guohanjun@huawei.com>
Link: https://patch.msgid.link/20250916044735.2316171-2-dolinux.peng@gmail.com
[ rjw: Subject adjustment ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/apei/ghes.c

index a0d54993edb3b6fbd265664ca5d11507767f815c..97ee19f2cae0607be65aacce4cd21be99ae0a7a3 100644 (file)
@@ -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;