xtensa: use __memset in __xtensa_clear_user
authorMax Filippov <jcmvbkbc@gmail.com>
Tue, 5 Dec 2017 05:20:33 +0000 (21:20 -0800)
committerMax Filippov <jcmvbkbc@gmail.com>
Sun, 17 Dec 2017 06:37:13 +0000 (22:37 -0800)
memset on xtensa is capable of accessing user memory, but KASAN checks
if memset function is actually used for that and reports it as an error:

 ==================================================================
 BUG: KASAN: user-memory-access in padzero+0x4d/0x58
 Write of size 519 at addr 0049ddf9 by task init/1

 Call Trace:
  [<b0189978>] kasan_report+0x160/0x238
  [<b0188818>] check_memory_region+0xf8/0x100
  [<b018891c>] memset+0x20/0x34
  [<b0238b71>] padzero+0x4d/0x58
 ==================================================================

Use __memset in __xtensa_clear_user to avoid that.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
arch/xtensa/include/asm/uaccess.h

index b8f152b6aaa50238e3b9cde48571881d90f478b1..18bbe1caad94e7e5450c8c67521f8ab47a39a192 100644 (file)
@@ -261,7 +261,7 @@ raw_copy_to_user(void __user *to, const void *from, unsigned long n)
 static inline unsigned long
 __xtensa_clear_user(void *addr, unsigned long size)
 {
-       if ( ! memset(addr, 0, size) )
+       if (!__memset(addr, 0, size))
                return size;
        return 0;
 }