Thread (30 messages) flat view 30 messages, 4 authors, 2021-07-09

Re: [RESEND PATCH v4 10/11] powerpc: Protect patching_mm with a lock

From: Peter Zijlstra <peterz@infradead.org>
Date: 2021-05-06 10:54:09
Also in: linux-hardening

On Wed, May 05, 2021 at 11:34:51PM -0500, Christopher M. Riedl wrote:
Powerpc allows for multiple CPUs to patch concurrently. When patching
with STRICT_KERNEL_RWX a single patching_mm is allocated for use by all
CPUs for the few times that patching occurs. Use a spinlock to protect
the patching_mm from concurrent use.

Modify patch_instruction() to acquire the lock, perform the patch op,
and then release the lock.

Also introduce {lock,unlock}_patching() along with
patch_instruction_unlocked() to avoid per-iteration lock overhead when
patch_instruction() is called in a loop. A follow-up patch converts some
uses of patch_instruction() to use patch_instruction_unlocked() instead.
x86 uses text_mutex for all this, why not do the same?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help