Commit b34d2ef0 authored by Ard Biesheuvel's avatar Ard Biesheuvel Committed by Will Deacon

arm64: mm: purge lazily unmapped vm regions before changing permissions

Call vm_unmap_aliases() every time we apply any changes to permission
attributes of mappings in the vmalloc region. This avoids any potential
issues resulting from lingering writable or executable aliases of
mappings that should be read-only or non-executable, respectively.
Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
parent 9ff01193
...@@ -93,6 +93,12 @@ static int change_memory_common(unsigned long addr, int numpages, ...@@ -93,6 +93,12 @@ static int change_memory_common(unsigned long addr, int numpages,
if (!numpages) if (!numpages)
return 0; return 0;
/*
* Get rid of potentially aliasing lazily unmapped vm areas that may
* have permissions set that deviate from the ones we are setting here.
*/
vm_unmap_aliases();
return __change_memory_common(start, size, set_mask, clear_mask); return __change_memory_common(start, size, set_mask, clear_mask);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment