lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 28 Feb 2019 15:14:36 +0000
From:   Will Deacon <will.deacon@....com>
To:     Sasha Levin <sashal@...nel.org>
Cc:     linux-kernel@...r.kernel.org, stable@...r.kernel.org
Subject: Re: [PATCH AUTOSEL 4.20 60/81] arm64: ptdump: Don't iterate kernel
 page tables using PTRS_PER_PXX

On Thu, Feb 28, 2019 at 10:07:52AM -0500, Sasha Levin wrote:
> From: Will Deacon <will.deacon@....com>
> 
> [ Upstream commit d23c808c6fc6132e812690648e14c0d6b0cbe273 ]
> 
> When 52-bit virtual addressing is enabled for userspace
> (CONFIG_ARM64_USER_VA_BITS_52=y), the kernel continues to utilise 48-bit
> virtual addressing in TTBR1. Consequently, PTRS_PER_PGD reflects the
> larger page table size for userspace and the pgd pointer for kernel page
> tables is offset before being written to TTBR1.
> 
> This means that we can't use PTRS_PER_PGD to iterate over kernel page
> tables unless we apply the same offset, which is fiddly to get right and
> leads to some non-idiomatic walking code. Instead, just follow the usual
> pattern when walking page tables by using a while loop driven by
> pXd_offset() and pXd_addr_end().
> 
> Reported-by: Qian Cai <cai@....pw>
> Tested-by: Qian Cai <cai@....pw>
> Acked-by: Steve Capper <steve.capper@....com>
> Tested-by: Steve Capper <steve.capper@....com>
> Signed-off-by: Will Deacon <will.deacon@....com>
> Signed-off-by: Sasha Levin <sashal@...nel.org>
> ---
>  arch/arm64/mm/dump.c | 59 ++++++++++++++++++++++----------------------
>  1 file changed, 29 insertions(+), 30 deletions(-)

4.20 doesn't support 52-bit VAs, so this isn't needed there afaict (and is
why I didn't tag the commit for stable in the first place).

Will

Powered by blists - more mailing lists