[PATCH] temp

Pratyush Anand panand at redhat.com
Mon Oct 24 09:51:07 PDT 2016


Ohhh..Please ignore this patch. This temporary changes were lying in
my directory and went away.

Sorry for this noise.

~Pratyush

On Mon, Oct 24, 2016 at 10:18 PM, Pratyush Anand <panand at redhat.com> wrote:
> Signed-off-by: Pratyush Anand <panand at redhat.com>
> ---
>  arch/x86_64.c  | 10 ++++++++--
>  makedumpfile.h |  4 ++--
>  2 files changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/arch/x86_64.c b/arch/x86_64.c
> index ddf7be6bc57b..3a53b4fa03ed 100644
> --- a/arch/x86_64.c
> +++ b/arch/x86_64.c
> @@ -187,6 +187,12 @@ vtop4_x86_64(unsigned long vaddr)
>  {
>         unsigned long page_dir, pml4, pgd_paddr, pgd_pte, pmd_paddr, pmd_pte;
>         unsigned long pte_paddr, pte;
> +       unsigned long phys_base;
> +
> +       if (SYMBOL(phys_base) != NOT_FOUND_SYMBOL)
> +               phys_base = info->phys_base;
> +       else
> +               phys_base = 0;
>
>         if (SYMBOL(init_level4_pgt) == NOT_FOUND_SYMBOL) {
>                 ERRMSG("Can't get the symbol of init_level4_pgt.\n");
> @@ -196,9 +202,9 @@ vtop4_x86_64(unsigned long vaddr)
>         /*
>          * Get PGD.
>          */
> -       page_dir  = SYMBOL(init_level4_pgt);
> +       page_dir = SYMBOL(init_level4_pgt) - __START_KERNEL_map + phys_base;
>         page_dir += pml4_index(vaddr) * sizeof(unsigned long);
> -       if (!readmem(VADDR, page_dir, &pml4, sizeof pml4)) {
> +       if (!readmem(PADDR, page_dir, &pml4, sizeof pml4)) {
>                 ERRMSG("Can't get pml4 (page_dir:%lx).\n", page_dir);
>                 return NOT_PADDR;
>         }
> diff --git a/makedumpfile.h b/makedumpfile.h
> index f0154226bcb8..f64652e34901 100644
> --- a/makedumpfile.h
> +++ b/makedumpfile.h
> @@ -876,12 +876,12 @@ int is_vmalloc_addr_x86_64(ulong vaddr);
>  int get_phys_base_x86_64(void);
>  int get_machdep_info_x86_64(void);
>  int get_versiondep_info_x86_64(void);
> -unsigned long long vaddr_to_paddr_x86_64(unsigned long vaddr);
> +unsigned long long vtop4_x86_64(unsigned long vaddr);
>  #define find_vmemmap()         find_vmemmap_x86_64()
>  #define get_phys_base()                get_phys_base_x86_64()
>  #define get_machdep_info()     get_machdep_info_x86_64()
>  #define get_versiondep_info()  get_versiondep_info_x86_64()
> -#define vaddr_to_paddr(X)      vaddr_to_paddr_x86_64(X)
> +#define vaddr_to_paddr(X)      vtop4_x86_64(X)
>  #define is_phys_addr(X)                (!is_vmalloc_addr_x86_64(X))
>  #endif /* x86_64 */
>
> --
> 2.7.4
>



More information about the kexec mailing list