lkml.org 
[lkml]   [2021]   [Jan]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v11 6/6] arm64: kexec: remove head from relocation argument
    Date
    Now, that relocation is done using virtual addresses, reloc_arg->head
    is not needed anymore.

    Signed-off-by: Pavel Tatashin <pasha.tatashin@soleen.com>
    ---
    arch/arm64/include/asm/kexec.h | 2 --
    arch/arm64/kernel/asm-offsets.c | 1 -
    arch/arm64/kernel/machine_kexec.c | 1 -
    3 files changed, 4 deletions(-)

    diff --git a/arch/arm64/include/asm/kexec.h b/arch/arm64/include/asm/kexec.h
    index 049cde429b1b..2fa4109bd582 100644
    --- a/arch/arm64/include/asm/kexec.h
    +++ b/arch/arm64/include/asm/kexec.h
    @@ -97,7 +97,6 @@ extern const char arm64_kexec_el2_vectors[];

    /*
    * kern_reloc_arg is passed to kernel relocation function as an argument.
    - * head kimage->head, allows to traverse through relocation segments.
    * entry_addr kimage->start, where to jump from relocation function (new
    * kernel, or purgatory entry address).
    * kern_arg0 first argument to kernel is its dtb address. The other
    @@ -113,7 +112,6 @@ extern const char arm64_kexec_el2_vectors[];
    * copy_len Number of bytes that need to be copied
    */
    struct kern_reloc_arg {
    - phys_addr_t head;
    phys_addr_t entry_addr;
    phys_addr_t kern_arg0;
    phys_addr_t kern_arg1;
    diff --git a/arch/arm64/kernel/asm-offsets.c b/arch/arm64/kernel/asm-offsets.c
    index 06278611451d..94f050ad6471 100644
    --- a/arch/arm64/kernel/asm-offsets.c
    +++ b/arch/arm64/kernel/asm-offsets.c
    @@ -153,7 +153,6 @@ int main(void)
    BLANK();
    #endif
    #ifdef CONFIG_KEXEC_CORE
    - DEFINE(KEXEC_KRELOC_HEAD, offsetof(struct kern_reloc_arg, head));
    DEFINE(KEXEC_KRELOC_ENTRY_ADDR, offsetof(struct kern_reloc_arg, entry_addr));
    DEFINE(KEXEC_KRELOC_KERN_ARG0, offsetof(struct kern_reloc_arg, kern_arg0));
    DEFINE(KEXEC_KRELOC_KERN_ARG1, offsetof(struct kern_reloc_arg, kern_arg1));
    diff --git a/arch/arm64/kernel/machine_kexec.c b/arch/arm64/kernel/machine_kexec.c
    index 9588c91f67c6..07da8d623d8e 100644
    --- a/arch/arm64/kernel/machine_kexec.c
    +++ b/arch/arm64/kernel/machine_kexec.c
    @@ -166,7 +166,6 @@ int machine_kexec_post_load(struct kimage *kimage)
    memcpy(reloc_code, __relocate_new_kernel_start, reloc_size);
    kimage->arch.kern_reloc = __pa(reloc_code) + func_offset;
    kimage->arch.kern_reloc_arg = __pa(kern_reloc_arg);
    - kern_reloc_arg->head = kimage->head;
    kern_reloc_arg->entry_addr = kimage->start;
    kern_reloc_arg->kern_arg0 = kimage->arch.dtb_mem;

    --
    2.25.1
    \
     
     \ /
      Last update: 2021-01-27 18:34    [W:2.149 / U:0.316 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site