Commit 94dea151 authored by Marta Rybczynska's avatar Marta Rybczynska Committed by Jonathan Corbet

Documentation/locking/locktypes: fix local_locks documentation

Fix issues with local_locks documentation:
- fix function names, local_lock.h has local_unlock_irqrestore(),
not local_lock_irqrestore()
- fix mapping table, local_unlock_irqrestore() maps to local_irq_restore(),
not _save()
Signed-off-by: default avatarMarta Rybczynska <rybczynska@gmail.com>
Acked-by: default avatarWill Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/CAApg2=SKxQ3Sqwj6TZnV-0x0cKLXFKDaPvXT4N15MPDMKq724g@mail.gmail.comSigned-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 9123e3a7
...@@ -164,14 +164,14 @@ by disabling preemption or interrupts. ...@@ -164,14 +164,14 @@ by disabling preemption or interrupts.
On non-PREEMPT_RT kernels local_lock operations map to the preemption and On non-PREEMPT_RT kernels local_lock operations map to the preemption and
interrupt disabling and enabling primitives: interrupt disabling and enabling primitives:
=========================== ====================== =============================== ======================
local_lock(&llock) preempt_disable() local_lock(&llock) preempt_disable()
local_unlock(&llock) preempt_enable() local_unlock(&llock) preempt_enable()
local_lock_irq(&llock) local_irq_disable() local_lock_irq(&llock) local_irq_disable()
local_unlock_irq(&llock) local_irq_enable() local_unlock_irq(&llock) local_irq_enable()
local_lock_save(&llock) local_irq_save() local_lock_irqsave(&llock) local_irq_save()
local_lock_restore(&llock) local_irq_save() local_unlock_irqrestore(&llock) local_irq_restore()
=========================== ====================== =============================== ======================
The named scope of local_lock has two advantages over the regular The named scope of local_lock has two advantages over the regular
primitives: primitives:
...@@ -353,14 +353,14 @@ protection scope. So the following substitution is wrong:: ...@@ -353,14 +353,14 @@ protection scope. So the following substitution is wrong::
{ {
local_irq_save(flags); -> local_lock_irqsave(&local_lock_1, flags); local_irq_save(flags); -> local_lock_irqsave(&local_lock_1, flags);
func3(); func3();
local_irq_restore(flags); -> local_lock_irqrestore(&local_lock_1, flags); local_irq_restore(flags); -> local_unlock_irqrestore(&local_lock_1, flags);
} }
func2() func2()
{ {
local_irq_save(flags); -> local_lock_irqsave(&local_lock_2, flags); local_irq_save(flags); -> local_lock_irqsave(&local_lock_2, flags);
func3(); func3();
local_irq_restore(flags); -> local_lock_irqrestore(&local_lock_2, flags); local_irq_restore(flags); -> local_unlock_irqrestore(&local_lock_2, flags);
} }
func3() func3()
...@@ -379,14 +379,14 @@ PREEMPT_RT-specific semantics of spinlock_t. The correct substitution is:: ...@@ -379,14 +379,14 @@ PREEMPT_RT-specific semantics of spinlock_t. The correct substitution is::
{ {
local_irq_save(flags); -> local_lock_irqsave(&local_lock, flags); local_irq_save(flags); -> local_lock_irqsave(&local_lock, flags);
func3(); func3();
local_irq_restore(flags); -> local_lock_irqrestore(&local_lock, flags); local_irq_restore(flags); -> local_unlock_irqrestore(&local_lock, flags);
} }
func2() func2()
{ {
local_irq_save(flags); -> local_lock_irqsave(&local_lock, flags); local_irq_save(flags); -> local_lock_irqsave(&local_lock, flags);
func3(); func3();
local_irq_restore(flags); -> local_lock_irqrestore(&local_lock, flags); local_irq_restore(flags); -> local_unlock_irqrestore(&local_lock, flags);
} }
func3() func3()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment