Re: [PATCH] Revert "x86/module: Detect and skip invalid relocations"

From: Miroslav Benes
Date: Thu Jun 20 2019 - 04:38:48 EST


On Thu, 20 Jun 2019, Cheng Jian wrote:

> This reverts commit eda9cec4c9a12208a6f69fbe68f72a6311d50032.
>
> Since commit (eda9cec4c9a1 'x86/module: Detect and skip invalid
> relocations') add some sanity check in apply_relocate_add, borke
> re-insmod a kernel module which has been patched before,
>
> The relocation informations of the livepatch module have been
> overwritten since first patched, so if we rmmod and insmod the
> kernel module, these values are not zero anymore, when
> klp_module_coming doing, and that commit marks them as invalid
> invalid_relocation.
>
> Then the following error occurs:
>
> module: x86/modules: Skipping invalid relocation target, existing value is nonzero for type 2, loc (____ptrval____), val ffffffffc000236c
> livepatch: failed to initialize patch 'livepatch_0001_test' for module 'test' (-8)
> livepatch: patch 'livepatch_0001_test' failed for module 'test', refusing to load module 'test'

Oh yeah. First reported here 20180602161151.apuhs2dygsexmcg2@treble (LP ML
only and there is no archive on lore.kernel.org yet. Sorry about that.). I
posted v1 here
https://lore.kernel.org/lkml/20180607092949.1706-1-mbenes@xxxxxxx/ and
even started to work on v2 in March with arch-specific nullifying, but
then I got sidetracked again. I'll move it up my todo list a bit.

Miroslav