Messages in this thread | | | From | Rik van Riel <> | Subject | Re: [PATCH] x86/mm/pti: in pti_clone_pgtable() don't increase addr by PUD_SIZE | Date | Tue, 20 Aug 2019 13:21:53 +0000 |
| |
On Tue, 2019-08-20 at 13:16 +0200, Thomas Gleixner wrote: > On Tue, 20 Aug 2019, Peter Zijlstra wrote: > > What that code wants to do is skip to the end of the pud, a > > pmd_size > > increase will not do that. And right below this, there's a second > > instance of this exact pattern. > > > > Did I get the below right? > > > > --- > > diff --git a/arch/x86/mm/pti.c b/arch/x86/mm/pti.c > > index b196524759ec..32b20b3cb227 100644 > > --- a/arch/x86/mm/pti.c > > +++ b/arch/x86/mm/pti.c > > @@ -330,12 +330,14 @@ pti_clone_pgtable(unsigned long start, > > unsigned long end, > > > > pud = pud_offset(p4d, addr); > > if (pud_none(*pud)) { > > + addr &= PUD_MASK; > > addr += PUD_SIZE; > > round_up(addr, PUD_SIZE); > > perhaps?
Won't that keep returning the same address forever if addr & PUD_MASK == 0?
| |