]> 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)
commit6d4bba5ccae0c0cadf2e0b54d6ef36c5766a63f2
tree17341318eeeb4e3d4611620b8b6db846ab10e52d
parentacf1c46dd6f21d2407966ec15976188d98315f06
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