x86/mm: Sync also unmappings in vmalloc_sync_all()
authorJoerg Roedel <jroedel@suse.de>
Fri, 19 Jul 2019 18:46:51 +0000 (20:46 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 22 Jul 2019 08:18:30 +0000 (10:18 +0200)
commit8e998fc24de47c55b47a887f6c95ab91acd4a720
tree3ea783fa077c813487ae0760772c08e7c019ef0c
parent51b75b5b563a2637f9d8dc5bd02a31b2ff9e5ea0
x86/mm: Sync also unmappings in vmalloc_sync_all()

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 and make sure
vmalloc_sync_all() iterates over all page-tables even when an unmapped PMD
is found.

Fixes: 5d72b4fba40ef ('x86, mm: support huge I/O mapping capability I/F')
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Dave Hansen <dave.hansen@linux.intel.com>
Link: https://lkml.kernel.org/r/20190719184652.11391-3-joro@8bytes.org
arch/x86/mm/fault.c