mirror of
https://github.com/team-infusion-developers/android_kernel_samsung_msm8976.git
synced 2024-09-21 03:43:03 +00:00
ARM: mm: fix reporting of read-only PMD bits
On non-LPAE ARMv6+, read-only PMD bits are defined with the combination "PMD_SECT_APX | PMD_SECT_AP_WRITE". Adjusted the bit masks to correctly report this. Change-Id: I96f64eea038f9464bb0122b82172838181e4f201 Signed-off-by: Kees Cook <keescook@chromium.org> Tested-by: Laura Abbott <lauraa@codeaurora.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Git-commit: fff00db852f2ff0faf5f539b5e28ac498fc007f8 Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
This commit is contained in:
parent
5698cb804e
commit
55d4f3e8a5
|
@ -120,25 +120,7 @@ static const struct prot_bits pte_bits[] = {
|
|||
};
|
||||
|
||||
static const struct prot_bits section_bits[] = {
|
||||
#ifndef CONFIG_ARM_LPAE
|
||||
/* These are approximate */
|
||||
{
|
||||
.mask = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
||||
.val = 0,
|
||||
.set = " ro",
|
||||
}, {
|
||||
.mask = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
||||
.val = PMD_SECT_AP_WRITE,
|
||||
.set = " RW",
|
||||
}, {
|
||||
.mask = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
||||
.val = PMD_SECT_AP_READ,
|
||||
.set = "USR ro",
|
||||
}, {
|
||||
.mask = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
||||
.val = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
||||
.set = "USR RW",
|
||||
#else
|
||||
#ifdef CONFIG_ARM_LPAE
|
||||
{
|
||||
.mask = PMD_SECT_USER,
|
||||
.val = PMD_SECT_USER,
|
||||
|
@ -148,6 +130,41 @@ static const struct prot_bits section_bits[] = {
|
|||
.val = PMD_SECT_RDONLY,
|
||||
.set = "ro",
|
||||
.clear = "RW",
|
||||
#elif __LINUX_ARM_ARCH__ >= 6
|
||||
{
|
||||
.mask = PMD_SECT_APX | PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
||||
.val = PMD_SECT_APX | PMD_SECT_AP_WRITE,
|
||||
.set = " ro",
|
||||
}, {
|
||||
.mask = PMD_SECT_APX | PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
||||
.val = PMD_SECT_AP_WRITE,
|
||||
.set = " RW",
|
||||
}, {
|
||||
.mask = PMD_SECT_APX | PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
||||
.val = PMD_SECT_AP_READ,
|
||||
.set = "USR ro",
|
||||
}, {
|
||||
.mask = PMD_SECT_APX | PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
||||
.val = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
||||
.set = "USR RW",
|
||||
#else /* ARMv4/ARMv5 */
|
||||
/* These are approximate */
|
||||
{
|
||||
.mask = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
||||
.val = 0,
|
||||
.set = " ro",
|
||||
}, {
|
||||
.mask = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
||||
.val = PMD_SECT_AP_WRITE,
|
||||
.set = " RW",
|
||||
}, {
|
||||
.mask = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
||||
.val = PMD_SECT_AP_READ,
|
||||
.set = "USR ro",
|
||||
}, {
|
||||
.mask = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
||||
.val = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
||||
.set = "USR RW",
|
||||
#endif
|
||||
}, {
|
||||
.mask = PMD_SECT_XN,
|
||||
|
|
Loading…
Reference in a new issue