mirror of https://gitee.com/openkylin/linux.git
ea5f95c3d6
In some cases, a pkey's bits need not necessarily change in a way that the value of the pkey register increases when performing a pkey_disable_set() or decreases when performing a pkey_disable_clear(). For example, on powerpc, if a pkey's current state is PKEY_DISABLE_ACCESS and we perform a pkey_write_disable() on it, the bits still remain the same. We will observe something similar when the pkey's current state is 0 and a pkey_access_enable() is performed on it. Either case would cause some assertions to fail. This fixes the problem. Signed-off-by: Ram Pai <linuxram@us.ibm.com> Signed-off-by: Sandipan Das <sandipan@linux.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Acked-by: Dave Hansen <dave.hansen@intel.com> Cc: Dave Hansen <dave.hansen@intel.com> Cc: Florian Weimer <fweimer@redhat.com> Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Thiago Jung Bauermann <bauerman@linux.ibm.com> Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Michal Hocko <mhocko@kernel.org> Cc: Michal Suchanek <msuchanek@suse.de> Cc: Shuah Khan <shuah@kernel.org> Link: http://lkml.kernel.org/r/8240665131e43fc93eed4eea8194676c1ea39a7f.1585646528.git.sandipan@linux.ibm.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
---|---|---|
.. | ||
.gitignore | ||
Makefile | ||
charge_reserved_hugetlb.sh | ||
compaction_test.c | ||
config | ||
gup_benchmark.c | ||
hmm-tests.c | ||
hugepage-mmap.c | ||
hugepage-shm.c | ||
hugetlb_reparenting_test.sh | ||
khugepaged.c | ||
map_fixed_noreplace.c | ||
map_hugetlb.c | ||
map_populate.c | ||
mlock-random-test.c | ||
mlock2-tests.c | ||
mlock2.h | ||
mremap_dontunmap.c | ||
on-fault-limit.c | ||
pkey-helpers.h | ||
pkey-x86.h | ||
protection_keys.c | ||
run_vmtests | ||
test_hmm.sh | ||
test_vmalloc.sh | ||
thuge-gen.c | ||
transhuge-stress.c | ||
userfaultfd.c | ||
va_128TBswitch.c | ||
virtual_address_range.c | ||
write_hugetlb_memory.sh | ||
write_to_hugetlbfs.c |