[Crash-utility] [PATCH 1/5] defs.h: Fix the PHYSICAL_PAGE_MASK macro

Dave Anderson anderson at redhat.com
Thu Jan 11 21:00:17 UTC 2018



----- Original Message -----
> Original crash defines the PHYSICAL_PAGE_MASK as
> 
>   (~(PAGE_SIZE-1) & (__PHYSICAL_MASK << PAGE_SHIFT))
> 
> It moves left PAGE_SHIFT bits for safety, But As crash expands the physical
> bits to 52, this will cause the conversion of phythcal address to virtual
> address failed.
> 
> Remove the PAGE_SHIFT to fix this problem.
> 
> Signed-off-by: Dou Liyang <douly.fnst at cn.fujitsu.com>
> ---
> Hi Dave,
>   The changelog may be not correct, I am not sure why does it move left
> PAGE_SHIFT bits. Could you tell me the reason?

I believe it's a (harmless so far) mistake.  Good catch!

Dave


> ---
>  defs.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/defs.h b/defs.h
> index dcd6c26..8082d6c 100644
> --- a/defs.h
> +++ b/defs.h
> @@ -3403,7 +3403,7 @@ struct arm64_stackframe {
>  #define __VIRTUAL_MASK         ((1UL << __VIRTUAL_MASK_SHIFT) - 1)
>  #define PAGE_SHIFT             12
>  #define PAGE_SIZE              (1UL << PAGE_SHIFT)
> -#define PHYSICAL_PAGE_MASK    (~(PAGE_SIZE-1) & (__PHYSICAL_MASK <<
> PAGE_SHIFT))
> +#define PHYSICAL_PAGE_MASK    (~(PAGE_SIZE-1) & __PHYSICAL_MASK )
>  
>  #define _PAGE_BIT_NX    63
>  #define _PAGE_PRESENT   0x001
> --
> 2.14.3
> 
> 
> 
> 




More information about the Crash-utility mailing list