答复: [PATCH] x86: livepatch: Treat R_X86_64_PLT32 as R_X86_64_PC32

From: chenzefeng (A)
Date: Fri Feb 15 2019 - 03:17:46 EST


HI, Jiri Kosina,

On Fri, 15 Feb 2019, Jiri Kosina wrote:
>On Fri, 15 Feb 2019, chenzefeng (A) wrote:

>> On x86-64, for 32-bit PC-relacive branches, we can generate PLT32
>> relocation, instead of PC32 relocation. and R_X86_64_PLT32 can be
>> treated the same as R_X86_64_PC32 since linux kernel doesn't use PLT.
>>
>> In linux 4.4 commit b21ebf2fb4cd ("x86: Treat R_X86_64_PLT32 as
>> R_X86_64_PC32") been fixed for the module loading, but not fixed for
>> livepatch relocation, which will fail to load livepatch with the error
>> message as follow: relocation failed for symbol <symbol name> at
>> <symbol
>> address>
>>
>> Signed-off-by: chenzefeng <chenzefeng2@xxxxxxxxxx>

>What kernel version is this patch based on? We've got rid of x86-specific module loading stub and offloaded all the relocation handling to generic kmod loader long time ago.

The patch is based on kernel version Linux 4.4.174.

Thanks.
chenzefeng