Joonsoo Kim
458f7920f9
mm/kasan/kasan_init.c: use kasan_zero_pud for p4d table
...
There is missing optimization in zero_p4d_populate() that can save some
memory when mapping zero shadow. Implement it like as others.
Link: http://lkml.kernel.org/r/1494829255-23946-1-git-send-email-iamjoonsoo.kim@lge.com
Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com >
Acked-by: Andrey Ryabinin <aryabinin@virtuozzo.com >
Cc: "Kirill A . Shutemov" <kirill.shutemov@linux.intel.com >
Cc: Alexander Potapenko <glider@google.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2017-07-10 16:32:33 -07:00
Kirill A. Shutemov
c2febafc67
mm: convert generic code to 5-level paging
...
Convert all non-architecture-specific code to 5-level paging.
It's mostly mechanical adding handling one more page table level in
places where we deal with pud_t.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Acked-by: Michal Hocko <mhocko@suse.com >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2017-03-09 11:48:47 -08:00
Laura Abbott
5c6a84a3f4
mm/kasan: Switch to using __pa_symbol and lm_alias
...
__pa_symbol is the correct API to find the physical address of symbols.
Switch to it to allow for debugging APIs to work correctly. Other
functions such as p*d_populate may call __pa internally. Ensure that the
address passed is in the linear region by calling lm_alias.
Reviewed-by: Mark Rutland <mark.rutland@arm.com >
Tested-by: Mark Rutland <mark.rutland@arm.com >
Signed-off-by: Laura Abbott <labbott@redhat.com >
Signed-off-by: Will Deacon <will.deacon@arm.com >
2017-01-11 13:56:50 +00:00
Andrey Ryabinin
69786cdb37
x86/kasan, mm: Introduce generic kasan_populate_zero_shadow()
...
Introduce generic kasan_populate_zero_shadow(shadow_start,
shadow_end). This function maps kasan_zero_page to the
[shadow_start, shadow_end] addresses.
This replaces x86_64 specific populate_zero_shadow() and will
be used for ARM64 in follow on patches.
The main changes from original version are:
* Use p?d_populate*() instead of set_p?d()
* Use memblock allocator directly instead of vmemmap_alloc_block()
* __pa() instead of __pa_nodebug(). __pa() causes troubles
iff we use it before kasan_early_init(). kasan_populate_zero_shadow()
will be used later, so we ok with __pa() here.
Signed-off-by: Andrey Ryabinin <ryabinin.a.a@gmail.com >
Acked-by: Catalin Marinas <catalin.marinas@arm.com >
Cc: Alexander Potapenko <glider@google.com >
Cc: Alexey Klimov <klimov.linux@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: David Keitel <dkeitel@codeaurora.org >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Linus Walleij <linus.walleij@linaro.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Rik van Riel <riel@redhat.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Will Deacon <will.deacon@arm.com >
Cc: Yury <yury.norov@gmail.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mm@kvack.org
Link: http://lkml.kernel.org/r/1439444244-26057-3-git-send-email-ryabinin.a.a@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2015-08-22 14:54:55 +02:00