On 4/25/20 7:07 AM, Josh Poimboeuf wrote:
v3:
- klp: split klp_write_relocations() into object/section specific
functions [joe]
- s390: fix plt/got writes [joe]
- s390: remove text_mutex usage [mbenes]
- x86: do text_poke_sync() before releasing text_mutex [peterz]
- split x86 text_mutex changes into separate patch [mbenes]
v2:
- add vmlinux.ko check [peterz]
- remove 'klp_object' forward declaration [mbenes]
- use text_mutex [jeyu]
- fix documentation TOC [jeyu]
- fix s390 issues [mbenes]
- upstream kpatch-build now supports this
(though it's only enabled for Linux >= 5.8)
These patches add simplifications and improvements for some issues Peter
found six months ago, as part of his non-writable text code (W^X)
cleanups.
Highlights:
- Remove the livepatch arch-specific .klp.arch sections, which were used
to do paravirt patching and alternatives patching for livepatch
replacement code.
- Add support for jump labels in patched code.
- Remove the last module_disable_ro() usage.
For more background, see this thread:
https://lkml.kernel.org/r/20191021135312.jbbxsuipxldocdjk@treble
This has been tested with kpatch-build integration tests and klp-convert
selftests.
Hi Josh,
I've added some late module patching tests for klp-convert as well as
extended the existing ones. I'll put them on-top of v3 and give it some
test runs today (x86, ppc64le, s390x) and report back.
BTW, this may be out of scope for this patchset, but is it a large
amount of work to support clearing klp-relocations on target module
unload? ie, this test case:
- (target module and livepatch loaded)
- rmmod target_mod
- modprobe target_mod << fails as reloc target is non-zero
IIRC, Miroslav had taken a stab at this last year, but I don't remember
what the technical problems were then.
-- Joe