The patch titled Subject: mm/kasan: add API to check memory regions has been added to the -mm tree. Its filename is mm-kasan-add-api-to-check-memory-regions.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/mm-kasan-add-api-to-check-memory-regions.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/mm-kasan-add-api-to-check-memory-regions.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx> Subject: mm/kasan: add API to check memory regions Memory access coded in an assembly won't be seen by KASAN as a compiler can instrument only C code. Add kasan_check_[read,write]() API which is going to be used to check a certain memory range. Link: http://lkml.kernel.org/r/1462538722-1574-3-git-send-email-aryabinin@xxxxxxxxxxxxx Signed-off-by: Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx> Cc: Alexander Potapenko <glider@xxxxxxxxxx> Cc: Dmitry Vyukov <dvyukov@xxxxxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxx> Cc: "H. Peter Anvin" <hpa@xxxxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- MAINTAINERS | 2 +- include/linux/kasan-checks.h | 12 ++++++++++++ mm/kasan/kasan.c | 12 ++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff -puN MAINTAINERS~mm-kasan-add-api-to-check-memory-regions MAINTAINERS --- a/MAINTAINERS~mm-kasan-add-api-to-check-memory-regions +++ a/MAINTAINERS @@ -6175,7 +6175,7 @@ S: Maintained F: arch/*/include/asm/kasan.h F: arch/*/mm/kasan_init* F: Documentation/kasan.txt -F: include/linux/kasan.h +F: include/linux/kasan*.h F: lib/test_kasan.c F: mm/kasan/ F: scripts/Makefile.kasan diff -puN /dev/null include/linux/kasan-checks.h --- /dev/null +++ a/include/linux/kasan-checks.h @@ -0,0 +1,12 @@ +#ifndef _LINUX_KASAN_CHECKS_H +#define _LINUX_KASAN_CHECKS_H + +#ifdef CONFIG_KASAN +void kasan_check_read(const void *p, unsigned int size); +void kasan_check_write(const void *p, unsigned int size); +#else +static inline void kasan_check_read(const void *p, unsigned int size) { } +static inline void kasan_check_write(const void *p, unsigned int size) { } +#endif + +#endif diff -puN mm/kasan/kasan.c~mm-kasan-add-api-to-check-memory-regions mm/kasan/kasan.c --- a/mm/kasan/kasan.c~mm-kasan-add-api-to-check-memory-regions +++ a/mm/kasan/kasan.c @@ -299,6 +299,18 @@ static void check_memory_region(unsigned check_memory_region_inline(addr, size, write, ret_ip); } +void kasan_check_read(const void *p, unsigned int size) +{ + check_memory_region((unsigned long)p, size, false, _RET_IP_); +} +EXPORT_SYMBOL(kasan_check_read); + +void kasan_check_write(const void *p, unsigned int size) +{ + check_memory_region((unsigned long)p, size, true, _RET_IP_); +} +EXPORT_SYMBOL(kasan_check_write); + #undef memset void *memset(void *addr, int c, size_t len) { _ Patches currently in -mm which might be from aryabinin@xxxxxxxxxxxxx are mm-kasan-print-name-of-mem-caller-in-report.patch mm-kasan-add-api-to-check-memory-regions.patch x86-kasan-instrument-user-memory-access-api.patch kasan-tests-add-tests-for-user-memory-access-functions.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html