Re: [PATCH 2/3] x86/mm: Sync also unmappings in vmalloc_sync_one()

2019-07-19 Thread Thomas Gleixner
On Fri, 19 Jul 2019, Joerg Roedel wrote: > On Thu, Jul 18, 2019 at 11:04:57AM +0200, Thomas Gleixner wrote: > > Joerg, > > > > On Thu, 18 Jul 2019, Joerg Roedel wrote: > > > On Wed, Jul 17, 2019 at 11:43:43PM +0200, Thomas Gleixner wrote: > > > > On Wed, 17 Jul 2019, Joerg Roedel wrote: > > > > >

Re: [PATCH 2/3] x86/mm: Sync also unmappings in vmalloc_sync_one()

2019-07-19 Thread Joerg Roedel
On Thu, Jul 18, 2019 at 11:04:57AM +0200, Thomas Gleixner wrote: > Joerg, > > On Thu, 18 Jul 2019, Joerg Roedel wrote: > > On Wed, Jul 17, 2019 at 11:43:43PM +0200, Thomas Gleixner wrote: > > > On Wed, 17 Jul 2019, Joerg Roedel wrote: > > > > + > > > > + if (!pmd_present(*pmd_k)) > > > > +

Re: [PATCH 2/3] x86/mm: Sync also unmappings in vmalloc_sync_one()

2019-07-18 Thread Joerg Roedel
On Thu, Jul 18, 2019 at 11:04:57AM +0200, Thomas Gleixner wrote: > On Thu, 18 Jul 2019, Joerg Roedel wrote: > > No, you are right, I missed that. It is a bug in this patch, the code > > that breaks out of the loop in vmalloc_sync_all() needs to be removed as > > well. Will do that in the next

Re: [PATCH 2/3] x86/mm: Sync also unmappings in vmalloc_sync_one()

2019-07-18 Thread Thomas Gleixner
Joerg, On Thu, 18 Jul 2019, Joerg Roedel wrote: > On Wed, Jul 17, 2019 at 11:43:43PM +0200, Thomas Gleixner wrote: > > On Wed, 17 Jul 2019, Joerg Roedel wrote: > > > + > > > + if (!pmd_present(*pmd_k)) > > > + return NULL; > > > else > > > BUG_ON(pmd_pfn(*pmd) !=

Re: [PATCH 2/3] x86/mm: Sync also unmappings in vmalloc_sync_one()

2019-07-18 Thread Joerg Roedel
Hi Thomas, On Wed, Jul 17, 2019 at 11:43:43PM +0200, Thomas Gleixner wrote: > On Wed, 17 Jul 2019, Joerg Roedel wrote: > > + > > + if (!pmd_present(*pmd_k)) > > + return NULL; > > else > > BUG_ON(pmd_pfn(*pmd) != pmd_pfn(*pmd_k)); > > So in case of unmap, this updates

Re: [PATCH 2/3] x86/mm: Sync also unmappings in vmalloc_sync_one()

2019-07-18 Thread Joerg Roedel
Hi Dave, On Wed, Jul 17, 2019 at 02:06:01PM -0700, Dave Hansen wrote: > On 7/17/19 12:14 AM, Joerg Roedel wrote: > > - if (!pmd_present(*pmd)) > > + if (pmd_present(*pmd) ^ pmd_present(*pmd_k)) > > set_pmd(pmd, *pmd_k); > > Wouldn't: > > if (pmd_present(*pmd) !=

Re: [PATCH 2/3] x86/mm: Sync also unmappings in vmalloc_sync_one()

2019-07-17 Thread Thomas Gleixner
On Wed, 17 Jul 2019, Joerg Roedel wrote: > From: Joerg Roedel > > With huge-page ioremap areas the unmappings also need to be > synced between all page-tables. Otherwise it can cause data > corruption when a region is unmapped and later re-used. > > Make the vmalloc_sync_one() function ready

Re: [PATCH 2/3] x86/mm: Sync also unmappings in vmalloc_sync_one()

2019-07-17 Thread Dave Hansen
On 7/17/19 12:14 AM, Joerg Roedel wrote: > > diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c > index 4a4049f6d458..d71e167662c3 100644 > --- a/arch/x86/mm/fault.c > +++ b/arch/x86/mm/fault.c > @@ -194,11 +194,12 @@ static inline pmd_t *vmalloc_sync_one(pgd_t *pgd, > unsigned long address)

[PATCH 2/3] x86/mm: Sync also unmappings in vmalloc_sync_one()

2019-07-17 Thread Joerg Roedel
From: Joerg Roedel With huge-page ioremap areas the unmappings also need to be synced between all page-tables. Otherwise it can cause data corruption when a region is unmapped and later re-used. Make the vmalloc_sync_one() function ready to sync unmappings. Fixes: 5d72b4fba40ef ('x86, mm:

Re: [PATCH 2/3] x86/mm: Sync also unmappings in vmalloc_sync_one()

2019-07-15 Thread Thomas Gleixner
On Mon, 15 Jul 2019, Joerg Roedel wrote: > From: Joerg Roedel > > With huge-page ioremap areas the unmappings also need to be > synced between all page-tables. Otherwise it can cause data > corruption when a region is unmapped and later re-used. > > Make the vmalloc_sync_one() function ready

[PATCH 2/3] x86/mm: Sync also unmappings in vmalloc_sync_one()

2019-07-15 Thread Joerg Roedel
From: Joerg Roedel With huge-page ioremap areas the unmappings also need to be synced between all page-tables. Otherwise it can cause data corruption when a region is unmapped and later re-used. Make the vmalloc_sync_one() function ready to sync unmappings. Signed-off-by: Joerg Roedel ---