Thread (11 messages) 11 messages, 4 authors, 2021-12-14

Re: ppc64le STRICT_MODULE_RWX and livepatch apply_relocate_add() crashes

flat view

From: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
Date: 2021-11-03 21:34:29
Also in: live-patching

Hi Russell,

On Mon, 2021-11-01 at 19:20 +1000, Russell Currey wrote:
On Sun, 2021-10-31 at 22:43 -0400, Joe Lawrence wrote:
quoted
Starting with 5.14 kernels, I can reliably reproduce a crash [1] on
ppc64le when loading livepatches containing late klp-relocations
[2].
These are relocations, specific to livepatching, that are resolved
not
when a livepatch module is loaded, but only when a livepatch-target
module is loaded.
Hey Joe, thanks for the report.
quoted
I haven't started looking at a fix yet, but in the case of the x86
code
update, its apply_relocate_add() implementation was modified to use
a
common text_poke() function to allowed us to drop
module_{en,dis}ble_ro() games by the livepatching code.
It should be a similar fix for Power, our patch_instruction() uses a
text poke area but apply_relocate_add() doesn't use it and does its
own
raw patching instead.
quoted
I can take a closer look this week, but thought I'd send out a
report
in case this may be a known todo for STRICT_MODULE_RWX on Power.
I'm looking into this now, will update when there's progress.  I
personally wasn't aware but Jordan flagged this as an issue back in
August [0].  Are the selftests in the klp-convert tree sufficient for
testing?  I'm not especially familiar with livepatching & haven't
used
the userspace tools.
You can test this by livepatching any module since this only occurs
when writing relocations for modules since the vmlinux relocations are
written earlier before the module text is mapped read-only.

- Suraj
- Russell

[0] https://github.com/linuxppc/issues/issues/375
quoted
-- Joe
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help