Re: [PATCH 07/14] proc/kcore: hide a harmless warning

From: Ard Biesheuvel
Date: Tue Jul 18 2017 - 15:55:52 EST


On 18 July 2017 at 20:53, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> On Fri, Jul 14, 2017 at 2:28 PM, Ard Biesheuvel
> <ard.biesheuvel@xxxxxxxxxx> wrote:
>> On 14 July 2017 at 10:25, Arnd Bergmann <arnd@xxxxxxxx> wrote:
>>> gcc warns when MODULES_VADDR/END is defined to the same value as
>>> VMALLOC_START/VMALLOC_END, e.g. on x86-32:
>>>
>>> fs/proc/kcore.c: In function âadd_modules_rangeâ:
>>> fs/proc/kcore.c:622:161: error: self-comparison always evaluates to false [-Werror=tautological-compare]
>>> if (/*MODULES_VADDR != VMALLOC_START && */MODULES_END != VMALLOC_END) {
>>>
>>
>> Does it occur for subtraction as well? Or only for comparison?
>
> This replacement patch would also address the warning:
>
> diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c
> index 45629f4b5402..35824e986c2c 100644
> --- a/fs/proc/kcore.c
> +++ b/fs/proc/kcore.c
> @@ -623,7 +623,7 @@ static void __init proc_kcore_text_init(void)
> struct kcore_list kcore_modules;
> static void __init add_modules_range(void)
> {
> - if (MODULES_VADDR != VMALLOC_START && MODULES_END != VMALLOC_END) {
> + if (MODULES_VADDR - VMALLOC_START && MODULES_END - VMALLOC_END) {
> kclist_add(&kcore_modules, (void *)MODULES_VADDR,
> MODULES_END - MODULES_VADDR, KCORE_VMALLOC);
> }
>
> I have also verified that four of the 14 patches are not needed when building
> without ccache, this is one of them:
>
> acpi: thermal: fix gcc-6/ccache warning
> proc/kcore: hide a harmless warning
> SFI: fix tautological-compare warning
> [media] fix warning on v4l2_subdev_call() result interpreted as bool
>
> Not sure what to do with those, we could either ignore them all and
> not care about ccache, or we try to address them all in some way.
>

Any idea why ccache makes a difference here? It is not obvious (not to
me at least)