* [PATCH v2 1/6] ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr()
[not found] <20220610113427.908751-1-alexandr.lobakin@intel.com>
@ 2022-06-10 11:34 ` Alexander Lobakin
2022-06-10 12:18 ` David Laight
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Alexander Lobakin @ 2022-06-10 11:34 UTC (permalink / raw)
To: Arnd Bergmann, Yury Norov
Cc: Alexander Lobakin, Andy Shevchenko, Mark Rutland, Matt Turner,
Brian Cain, Geert Uytterhoeven, Yoshinori Sato, Rich Felker,
David S. Miller, Kees Cook, Peter Zijlstra (Intel), Marco Elver,
Borislav Petkov, Tony Luck, Greg Kroah-Hartman, linux-alpha,
linux-hexagon, linux-ia64, linux-m68k, linux-sh, sparclinux,
linux-arch, linux-kernel, stable, kernel test robot
test_bit(), as any other bitmap op, takes `unsigned long *` as a
second argument (pointer to the actual bitmap), as any bitmap
itself is an array of unsigned longs. However, the ia64_get_irr()
code passes a ref to `u64` as a second argument.
This works with the ia64 bitops implementation due to that they
have `void *` as the second argument and then cast it later on.
This works with the bitmap API itself due to that `unsigned long`
has the same size on ia64 as `u64` (`unsigned long long`), but
from the compiler PoV those two are different.
Define @irr as `unsigned long` to fix that. That implies no
functional changes. Has been hidden for 16 years!
Fixes: a58786917ce2 ("[IA64] avoid broken SAL_CACHE_FLUSH implementations")
Cc: stable@vger.kernel.org # 2.6.16+
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Alexander Lobakin <alexandr.lobakin@intel.com>
---
arch/ia64/include/asm/processor.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/ia64/include/asm/processor.h b/arch/ia64/include/asm/processor.h
index 7cbce290f4e5..757c2f6d8d4b 100644
--- a/arch/ia64/include/asm/processor.h
+++ b/arch/ia64/include/asm/processor.h
@@ -538,7 +538,7 @@ ia64_get_irr(unsigned int vector)
{
unsigned int reg = vector / 64;
unsigned int bit = vector % 64;
- u64 irr;
+ unsigned long irr;
switch (reg) {
case 0: irr = ia64_getreg(_IA64_REG_CR_IRR0); break;
--
2.36.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* RE: [PATCH v2 1/6] ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr()
2022-06-10 11:34 ` [PATCH v2 1/6] ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr() Alexander Lobakin
@ 2022-06-10 12:18 ` David Laight
2022-06-10 13:46 ` Andy Shevchenko
2022-06-15 2:59 ` Yury Norov
2 siblings, 0 replies; 4+ messages in thread
From: David Laight @ 2022-06-10 12:18 UTC (permalink / raw)
To: 'Alexander Lobakin', Arnd Bergmann, Yury Norov
Cc: Andy Shevchenko, Mark Rutland, Matt Turner, Brian Cain,
Geert Uytterhoeven, Yoshinori Sato, Rich Felker, David S. Miller,
Kees Cook, Peter Zijlstra (Intel), Marco Elver, Borislav Petkov,
Tony Luck, Greg Kroah-Hartman, linux-alpha@vger.kernel.org,
linux-hexagon@vger.kernel.org, linux-ia64@vger.kernel.org,
linux-m68k@lists.linux-m68k.org, linux-sh@vger.kernel.org,
sparclinux@vger.kernel.org, linux-arch@vger.kernel.org,
linux-kernel@vger.kernel.org, stable@vger.kernel.org,
kernel test robot
From: Alexander Lobakin
> Sent: 10 June 2022 12:34
>
> test_bit(), as any other bitmap op, takes `unsigned long *` as a
> second argument (pointer to the actual bitmap), as any bitmap
> itself is an array of unsigned longs. However, the ia64_get_irr()
> code passes a ref to `u64` as a second argument.
> This works with the ia64 bitops implementation due to that they
> have `void *` as the second argument and then cast it later on.
> This works with the bitmap API itself due to that `unsigned long`
> has the same size on ia64 as `u64` (`unsigned long long`), but
> from the compiler PoV those two are different.
> Define @irr as `unsigned long` to fix that. That implies no
> functional changes. Has been hidden for 16 years!
Wouldn't it be better to just test the bit?
As in:
return irr & (1ull << bit);
David
>
> Fixes: a58786917ce2 ("[IA64] avoid broken SAL_CACHE_FLUSH implementations")
> Cc: stable@vger.kernel.org # 2.6.16+
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: Alexander Lobakin <alexandr.lobakin@intel.com>
> ---
> arch/ia64/include/asm/processor.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/ia64/include/asm/processor.h b/arch/ia64/include/asm/processor.h
> index 7cbce290f4e5..757c2f6d8d4b 100644
> --- a/arch/ia64/include/asm/processor.h
> +++ b/arch/ia64/include/asm/processor.h
> @@ -538,7 +538,7 @@ ia64_get_irr(unsigned int vector)
> {
> unsigned int reg = vector / 64;
> unsigned int bit = vector % 64;
> - u64 irr;
> + unsigned long irr;
>
> switch (reg) {
> case 0: irr = ia64_getreg(_IA64_REG_CR_IRR0); break;
> --
> 2.36.1
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 1/6] ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr()
2022-06-10 11:34 ` [PATCH v2 1/6] ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr() Alexander Lobakin
2022-06-10 12:18 ` David Laight
@ 2022-06-10 13:46 ` Andy Shevchenko
2022-06-15 2:59 ` Yury Norov
2 siblings, 0 replies; 4+ messages in thread
From: Andy Shevchenko @ 2022-06-10 13:46 UTC (permalink / raw)
To: Alexander Lobakin
Cc: Arnd Bergmann, Yury Norov, Mark Rutland, Matt Turner, Brian Cain,
Geert Uytterhoeven, Yoshinori Sato, Rich Felker, David S. Miller,
Kees Cook, Peter Zijlstra (Intel), Marco Elver, Borislav Petkov,
Tony Luck, Greg Kroah-Hartman, linux-alpha, linux-hexagon,
linux-ia64, linux-m68k, linux-sh, sparclinux, linux-arch,
linux-kernel, stable, kernel test robot
On Fri, Jun 10, 2022 at 01:34:22PM +0200, Alexander Lobakin wrote:
> test_bit(), as any other bitmap op, takes `unsigned long *` as a
> second argument (pointer to the actual bitmap), as any bitmap
> itself is an array of unsigned longs. However, the ia64_get_irr()
> code passes a ref to `u64` as a second argument.
> This works with the ia64 bitops implementation due to that they
> have `void *` as the second argument and then cast it later on.
> This works with the bitmap API itself due to that `unsigned long`
> has the same size on ia64 as `u64` (`unsigned long long`), but
> from the compiler PoV those two are different.
> Define @irr as `unsigned long` to fix that. That implies no
> functional changes. Has been hidden for 16 years!
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Fixes: a58786917ce2 ("[IA64] avoid broken SAL_CACHE_FLUSH implementations")
> Cc: stable@vger.kernel.org # 2.6.16+
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: Alexander Lobakin <alexandr.lobakin@intel.com>
> ---
> arch/ia64/include/asm/processor.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/ia64/include/asm/processor.h b/arch/ia64/include/asm/processor.h
> index 7cbce290f4e5..757c2f6d8d4b 100644
> --- a/arch/ia64/include/asm/processor.h
> +++ b/arch/ia64/include/asm/processor.h
> @@ -538,7 +538,7 @@ ia64_get_irr(unsigned int vector)
> {
> unsigned int reg = vector / 64;
> unsigned int bit = vector % 64;
> - u64 irr;
> + unsigned long irr;
>
> switch (reg) {
> case 0: irr = ia64_getreg(_IA64_REG_CR_IRR0); break;
> --
> 2.36.1
>
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 1/6] ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr()
2022-06-10 11:34 ` [PATCH v2 1/6] ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr() Alexander Lobakin
2022-06-10 12:18 ` David Laight
2022-06-10 13:46 ` Andy Shevchenko
@ 2022-06-15 2:59 ` Yury Norov
2 siblings, 0 replies; 4+ messages in thread
From: Yury Norov @ 2022-06-15 2:59 UTC (permalink / raw)
To: Alexander Lobakin
Cc: Arnd Bergmann, Andy Shevchenko, Mark Rutland, Matt Turner,
Brian Cain, Geert Uytterhoeven, Yoshinori Sato, Rich Felker,
David S. Miller, Kees Cook, Peter Zijlstra (Intel), Marco Elver,
Borislav Petkov, Tony Luck, Greg Kroah-Hartman, linux-alpha,
linux-hexagon, linux-ia64, linux-m68k, linux-sh, sparclinux,
linux-arch, linux-kernel, stable, kernel test robot
On Fri, Jun 10, 2022 at 01:34:22PM +0200, Alexander Lobakin wrote:
> test_bit(), as any other bitmap op, takes `unsigned long *` as a
> second argument (pointer to the actual bitmap), as any bitmap
> itself is an array of unsigned longs. However, the ia64_get_irr()
> code passes a ref to `u64` as a second argument.
> This works with the ia64 bitops implementation due to that they
> have `void *` as the second argument and then cast it later on.
> This works with the bitmap API itself due to that `unsigned long`
> has the same size on ia64 as `u64` (`unsigned long long`), but
> from the compiler PoV those two are different.
> Define @irr as `unsigned long` to fix that. That implies no
> functional changes. Has been hidden for 16 years!
>
> Fixes: a58786917ce2 ("[IA64] avoid broken SAL_CACHE_FLUSH implementations")
> Cc: stable@vger.kernel.org # 2.6.16+
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: Alexander Lobakin <alexandr.lobakin@intel.com>
Reviewed-by: Yury Norov <yury.norov@gmail.com>
> ---
> arch/ia64/include/asm/processor.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/ia64/include/asm/processor.h b/arch/ia64/include/asm/processor.h
> index 7cbce290f4e5..757c2f6d8d4b 100644
> --- a/arch/ia64/include/asm/processor.h
> +++ b/arch/ia64/include/asm/processor.h
> @@ -538,7 +538,7 @@ ia64_get_irr(unsigned int vector)
> {
> unsigned int reg = vector / 64;
> unsigned int bit = vector % 64;
> - u64 irr;
> + unsigned long irr;
>
> switch (reg) {
> case 0: irr = ia64_getreg(_IA64_REG_CR_IRR0); break;
> --
> 2.36.1
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-06-15 2:59 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20220610113427.908751-1-alexandr.lobakin@intel.com>
2022-06-10 11:34 ` [PATCH v2 1/6] ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr() Alexander Lobakin
2022-06-10 12:18 ` David Laight
2022-06-10 13:46 ` Andy Shevchenko
2022-06-15 2:59 ` Yury Norov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox