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()
Showing the changes to Documentation/locking/locktypes.rst (1 of 1 file). Show all
Unified · Split
| @@ -164,14 +164,14 @@ by disabling preemption or interrupts. · 163 unmodified lines | |||
| 164 | On non-PREEMPT_RT kernels local_lock operations map to the preemption and | 164 | On non-PREEMPT_RT kernels local_lock operations map to the preemption and |
| 165 | interrupt disabling and enabling primitives: | 165 | interrupt disabling and enabling primitives: |
| 166 | 166 | ||
| 167 | =========================== ====================== | 167 | =============================== ====================== |
| 168 | local_lock(&llock) preempt_disable() | 168 | local_lock(&llock) preempt_disable() |
| 169 | local_unlock(&llock) preempt_enable() | 169 | local_unlock(&llock) preempt_enable() |
| 170 | local_lock_irq(&llock) local_irq_disable() | 170 | local_lock_irq(&llock) local_irq_disable() |
| 171 | local_unlock_irq(&llock) local_irq_enable() | 171 | local_unlock_irq(&llock) local_irq_enable() |
| 172 | local_lock_save(&llock) local_irq_save() | 172 | local_lock_irqsave(&llock) local_irq_save() |
| 173 | local_lock_restore(&llock) local_irq_save() | 173 | local_unlock_irqrestore(&llock) local_irq_restore() |
| 174 | =========================== ====================== | 174 | =============================== ====================== |
| 175 | 175 | ||
| 176 | The named scope of local_lock has two advantages over the regular | 176 | The named scope of local_lock has two advantages over the regular |
| 177 | primitives: | 177 | primitives: |
| @@ -353,14 +353,14 @@ protection scope. So the following substitution is wrong:: · 175 unmodified lines | |||
| 353 | { | 353 | { |
| 354 | local_irq_save(flags); -> local_lock_irqsave(&local_lock_1, flags); | 354 | local_irq_save(flags); -> local_lock_irqsave(&local_lock_1, flags); |
| 355 | func3(); | 355 | func3(); |
| 356 | local_irq_restore(flags); -> local_lock_irqrestore(&local_lock_1, flags); | 356 | local_irq_restore(flags); -> local_unlock_irqrestore(&local_lock_1, flags); |
| 357 | } | 357 | } |
| 358 | 358 | ||
| 359 | func2() | 359 | func2() |
| 360 | { | 360 | { |
| 361 | local_irq_save(flags); -> local_lock_irqsave(&local_lock_2, flags); | 361 | local_irq_save(flags); -> local_lock_irqsave(&local_lock_2, flags); |
| 362 | func3(); | 362 | func3(); |
| 363 | local_irq_restore(flags); -> local_lock_irqrestore(&local_lock_2, flags); | 363 | local_irq_restore(flags); -> local_unlock_irqrestore(&local_lock_2, flags); |
| 364 | } | 364 | } |
| 365 | 365 | ||
| 366 | func3() | 366 | func3() |
| @@ -379,14 +379,14 @@ PREEMPT_RT-specific semantics of spinlock_t. The correct substitution is:: · 12 unmodified lines | |||
| 379 | { | 379 | { |
| 380 | local_irq_save(flags); -> local_lock_irqsave(&local_lock, flags); | 380 | local_irq_save(flags); -> local_lock_irqsave(&local_lock, flags); |
| 381 | func3(); | 381 | func3(); |
| 382 | local_irq_restore(flags); -> local_lock_irqrestore(&local_lock, flags); | 382 | local_irq_restore(flags); -> local_unlock_irqrestore(&local_lock, flags); |
| 383 | } | 383 | } |
| 384 | 384 | ||
| 385 | func2() | 385 | func2() |
| 386 | { | 386 | { |
| 387 | local_irq_save(flags); -> local_lock_irqsave(&local_lock, flags); | 387 | local_irq_save(flags); -> local_lock_irqsave(&local_lock, flags); |
| 388 | func3(); | 388 | func3(); |
| 389 | local_irq_restore(flags); -> local_lock_irqrestore(&local_lock, flags); | 389 | local_irq_restore(flags); -> local_unlock_irqrestore(&local_lock, flags); |
| 390 | } | 390 | } |
| 391 | 391 | ||
| 392 | func3() | 392 | func3() |