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/375quoted
-- Joe