]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/mm: Fix kernel RAM protection after freeing unused memory on PPC32
authorChristophe Leroy <christophe.leroy@c-s.fr>
Wed, 2 Aug 2017 13:51:03 +0000 (15:51 +0200)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 15 Aug 2017 12:55:56 +0000 (22:55 +1000)
commit30cd1da3e083214b8f1d541765beb63136677d40
tree17341318eeeb4e3d4611620b8b6db846ab10e52d
parente57678b5b79d34583a7befeacf09bf8bce659bda
powerpc/mm: Fix kernel RAM protection after freeing unused memory on PPC32

As seen below, allthough the init sections have been freed, the
associated memory area is still marked as executable in the
page tables.

~ dmesg
[    5.860093] Freeing unused kernel memory: 592K (c0570000 - c0604000)

~ cat /sys/kernel/debug/kernel_page_tables
---[ Start of kernel VM ]---
0xc0000000-0xc0497fff        4704K  rw  X  present dirty accessed shared
0xc0498000-0xc056ffff         864K  rw     present dirty accessed shared
0xc0570000-0xc059ffff         192K  rw  X  present dirty accessed shared
0xc05a0000-0xc7ffffff      125312K  rw     present dirty accessed shared
---[ vmalloc() Area ]---

This patch fixes that.

The implementation is done by reusing the change_page_attr()
function implemented for CONFIG_DEBUG_PAGEALLOC

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/include/asm/pgtable.h
arch/powerpc/mm/pgtable_32.c