[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <1583557436.8911.25.camel@mtksdccf07>
Date: Sat, 7 Mar 2020 13:03:56 +0800
From: Walter Wu <walter-zh.wu@...iatek.com>
To: Dmitry Vyukov <dvyukov@...gle.com>
CC: Stephen Rothwell <sfr@...b.auug.org.au>,
Andrew Morton <akpm@...ux-foundation.org>,
Linux Next Mailing List <linux-next@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Andrey Ryabinin <aryabinin@...tuozzo.com>,
kasan-dev <kasan-dev@...glegroups.com>
Subject: Re: linux-next: build warning after merge of the akpm-current tree
On Thu, 2020-03-05 at 06:54 +0100, Dmitry Vyukov wrote:
> On Thu, Mar 5, 2020 at 6:37 AM Stephen Rothwell <sfr@...b.auug.org.au> wrote:
> >
> > Hi all,
> >
> > After merging the akpm-current tree, today's linux-next build (x86_64
> > allmodconfig) produced this warning:
> >
> > mm/kasan/common.o: warning: objtool: kasan_report()+0x17: call to report_enabled() with UACCESS enabled
> > In file included from include/linux/bitmap.h:9,
> > from include/linux/cpumask.h:12,
> > from arch/x86/include/asm/paravirt.h:17,
> > from arch/x86/include/asm/irqflags.h:72,
> > from include/linux/irqflags.h:16,
> > from include/linux/rcupdate.h:26,
> > from include/linux/rculist.h:11,
> > from include/linux/pid.h:5,
> > from include/linux/sched.h:14,
> > from include/linux/uaccess.h:6,
> > from arch/x86/include/asm/fpu/xstate.h:5,
> > from arch/x86/include/asm/pgtable.h:26,
> > from include/linux/kasan.h:15,
> > from lib/test_kasan.c:12:
> > In function 'memmove',
> > inlined from 'kmalloc_memmove_invalid_size' at lib/test_kasan.c:301:2:
> > include/linux/string.h:441:9: warning: '__builtin_memmove' specified bound 18446744073709551614 exceeds maximum object size 9223372036854775807 [-Wstringop-overflow=]
>
> +kasan-dev
>
> We probably need to make this 18446744073709551614 constant "dynamic"
> so that compiler does not see it.
>
> Walter, will you take a look? Thanks
Hi Dmitry,
Yes, I have fixed it. This warning need newer gcc enough to reproduce.
Maybe I should replace original gcc-7.4.0.
Thanks.
--- a/lib/test_kasan.c
+++ b/lib/test_kasan.c
@@ -286,17 +286,19 @@ static noinline void __init
kmalloc_oob_in_memset(void)
static noinline void __init kmalloc_memmove_invalid_size(void)
{
char *ptr;
- size_t size = 64;
+ size_t size1 = 64;
+ volatile size_t size2 = -2;
pr_info("invalid size in memmove\n");
- ptr = kmalloc(size, GFP_KERNEL);
+ ptr = kmalloc(size1, GFP_KERNEL);
if (!ptr) {
pr_err("Allocation failed\n");
return;
}
- memset((char *)ptr, 0, 64);
- memmove((char *)ptr, (char *)ptr + 4, -2);
+ memset((char *)ptr, 0, size1);
+ /* the size of memmove() is negative number */
+ memmove((char *)ptr, (char *)ptr + 4, size2);
kfree(ptr);
}
>
> > 441 | return __builtin_memmove(p, q, size);
> > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >
> > Introduced by commit
> >
> > 519e500fac64 ("kasan: add test for invalid size in memmove")
> >
> > That's a bit annoying during a normal x86_64 allmodconfig build ...
> >
> > --
> > Cheers,
> > Stephen Rothwell
Powered by blists - more mailing lists