Re: [PATCH V7] mm/debug: Add tests validating architecture page table helpers

From: Anshuman Khandual
Date: Fri Oct 25 2019 - 02:35:07 EST




On 10/25/2019 11:22 AM, Qian Cai wrote:
>
>
>> On Oct 24, 2019, at 11:45 PM, Anshuman Khandual <Anshuman.Khandual@xxxxxxx> wrote:
>>
>> Nothing specific. But just tested this with x86 defconfig with relevant configs
>> which are required for this test. Not sure if it involved W=1.
>
> No, it will not. It needs to run like,
>
> make W=1 -j 64 2>/tmp/warns

Ahh, so we explicitly ask for it.

Unfortunately compiler still flags it as an warning. Just wondering why this
is still a problem if the second condition for an OR expression is always false.
Because evaluation still needs to be performed for the first condition anyways,
before arriving at the result.

DESCEND objtool
CALL scripts/atomic/check-atomics.sh
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
CC mm/debug_vm_pgtable.o
In file included from ./arch/x86/include/asm/bug.h:83:0,
from ./include/linux/bug.h:5,
from ./include/linux/mmdebug.h:5,
from ./include/linux/gfp.h:5,
from mm/debug_vm_pgtable.c:13:
mm/debug_vm_pgtable.c: In function âget_random_vaddrâ:
mm/debug_vm_pgtable.c:314:17: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
(random_vaddr < FIRST_USER_ADDRESS));
^
./include/asm-generic/bug.h:113:25: note: in definition of macro âWARN_ONâ
int __ret_warn_on = !!(condition); \
^~~~~~~~~

As you mentioned GCC is quite stubborn here. Anyways, lets keep it unchanged.