On Sun, 2021-10-31 at 22:43 -0400, Joe Lawrence wrote:
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.
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.
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.
- Russell
[0] https://github.com/linuxppc/issues/issues/375
-- Joe