2020-02-14 06:44:11

by Nathan Chancellor

[permalink] [raw]
Subject: [PATCH] s390/mm: Explicitly compare PAGE_DEFAULT_KEY against zero in storage_key_init_range

Clang warns:

In file included from ../arch/s390/purgatory/purgatory.c:10:
In file included from ../include/linux/kexec.h:18:
In file included from ../include/linux/crash_core.h:6:
In file included from ../include/linux/elfcore.h:5:
In file included from ../include/linux/user.h:1:
In file included from ../arch/s390/include/asm/user.h:11:
../arch/s390/include/asm/page.h:45:6: warning: converting the result of
'<<' to a boolean always evaluates to false
[-Wtautological-constant-compare]
if (PAGE_DEFAULT_KEY)
^
../arch/s390/include/asm/page.h:23:44: note: expanded from macro
'PAGE_DEFAULT_KEY'
#define PAGE_DEFAULT_KEY (PAGE_DEFAULT_ACC << 4)
^
1 warning generated.

Explicitly compare this against zero to silence the warning as it is
intended to be used in a boolean context.

Fixes: de3fa841e429 ("s390/mm: fix compile for PAGE_DEFAULT_KEY != 0")
Link: https://github.com/ClangBuiltLinux/linux/issues/860
Signed-off-by: Nathan Chancellor <[email protected]>
---
arch/s390/include/asm/page.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/s390/include/asm/page.h b/arch/s390/include/asm/page.h
index 85e944f04c70..1019efd85b9d 100644
--- a/arch/s390/include/asm/page.h
+++ b/arch/s390/include/asm/page.h
@@ -42,7 +42,7 @@ void __storage_key_init_range(unsigned long start, unsigned long end);

static inline void storage_key_init_range(unsigned long start, unsigned long end)
{
- if (PAGE_DEFAULT_KEY)
+ if (PAGE_DEFAULT_KEY != 0)
__storage_key_init_range(start, end);
}

--
2.25.0


2020-02-14 07:36:18

by Christian Borntraeger

[permalink] [raw]
Subject: Re: [PATCH] s390/mm: Explicitly compare PAGE_DEFAULT_KEY against zero in storage_key_init_range



On 14.02.20 07:42, Nathan Chancellor wrote:
> Clang warns:
>
> In file included from ../arch/s390/purgatory/purgatory.c:10:
> In file included from ../include/linux/kexec.h:18:
> In file included from ../include/linux/crash_core.h:6:
> In file included from ../include/linux/elfcore.h:5:
> In file included from ../include/linux/user.h:1:
> In file included from ../arch/s390/include/asm/user.h:11:
> ../arch/s390/include/asm/page.h:45:6: warning: converting the result of
> '<<' to a boolean always evaluates to false
> [-Wtautological-constant-compare]
> if (PAGE_DEFAULT_KEY)
> ^
> ../arch/s390/include/asm/page.h:23:44: note: expanded from macro
> 'PAGE_DEFAULT_KEY'
> #define PAGE_DEFAULT_KEY (PAGE_DEFAULT_ACC << 4)
> ^
> 1 warning generated.
>
> Explicitly compare this against zero to silence the warning as it is
> intended to be used in a boolean context.
>
> Fixes: de3fa841e429 ("s390/mm: fix compile for PAGE_DEFAULT_KEY != 0")
> Link: https://github.com/ClangBuiltLinux/linux/issues/860
> Signed-off-by: Nathan Chancellor <[email protected]>

Acked-by: Christian Borntraeger <[email protected]>

> ---
> arch/s390/include/asm/page.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/s390/include/asm/page.h b/arch/s390/include/asm/page.h
> index 85e944f04c70..1019efd85b9d 100644
> --- a/arch/s390/include/asm/page.h
> +++ b/arch/s390/include/asm/page.h
> @@ -42,7 +42,7 @@ void __storage_key_init_range(unsigned long start, unsigned long end);
>
> static inline void storage_key_init_range(unsigned long start, unsigned long end)
> {
> - if (PAGE_DEFAULT_KEY)
> + if (PAGE_DEFAULT_KEY != 0)
> __storage_key_init_range(start, end);
> }
>
>

2020-02-17 17:10:12

by Vasily Gorbik

[permalink] [raw]
Subject: Re: [PATCH] s390/mm: Explicitly compare PAGE_DEFAULT_KEY against zero in storage_key_init_range

On Thu, Feb 13, 2020 at 11:42:07PM -0700, Nathan Chancellor wrote:
> Clang warns:
>
> In file included from ../arch/s390/purgatory/purgatory.c:10:
> In file included from ../include/linux/kexec.h:18:
> In file included from ../include/linux/crash_core.h:6:
> In file included from ../include/linux/elfcore.h:5:
> In file included from ../include/linux/user.h:1:
> In file included from ../arch/s390/include/asm/user.h:11:
> ../arch/s390/include/asm/page.h:45:6: warning: converting the result of
> '<<' to a boolean always evaluates to false
> [-Wtautological-constant-compare]
> if (PAGE_DEFAULT_KEY)
> ^
> ../arch/s390/include/asm/page.h:23:44: note: expanded from macro
> 'PAGE_DEFAULT_KEY'
> #define PAGE_DEFAULT_KEY (PAGE_DEFAULT_ACC << 4)
> ^
> 1 warning generated.
>
> Explicitly compare this against zero to silence the warning as it is
> intended to be used in a boolean context.
>
> Fixes: de3fa841e429 ("s390/mm: fix compile for PAGE_DEFAULT_KEY != 0")
> Link: https://github.com/ClangBuiltLinux/linux/issues/860
> Signed-off-by: Nathan Chancellor <[email protected]>
> ---
Applied to fixes, thanks