public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ARC: fix __ffs return value to avoid build warnings
@ 2018-12-13 15:42 Eugeniy Paltsev
  2018-12-13 18:23 ` Vineet Gupta
  0 siblings, 1 reply; 3+ messages in thread
From: Eugeniy Paltsev @ 2018-12-13 15:42 UTC (permalink / raw)
  To: linux-snps-arc, Vineet Gupta
  Cc: linux-kernel, Alexey Brodkin, Eugeniy Paltsev

Change __ffs return value from 'int' to 'unsigned long' as it
is done in other implementations (like asm-generic, x86, etc...)
to avoid build-time warnings in places where type is strictly
checked.

As __ffs may return values in [0-31] interval changing return
type to unsigned is valid.

Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
---
 arch/arc/include/asm/bitops.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/arc/include/asm/bitops.h b/arch/arc/include/asm/bitops.h
index 8da87feec59a..99e6d8948f4a 100644
--- a/arch/arc/include/asm/bitops.h
+++ b/arch/arc/include/asm/bitops.h
@@ -340,7 +340,7 @@ static inline __attribute__ ((const)) int __fls(unsigned long x)
 /*
  * __ffs: Similar to ffs, but zero based (0-31)
  */
-static inline __attribute__ ((const)) int __ffs(unsigned long word)
+static inline __attribute__ ((const)) unsigned long __ffs(unsigned long word)
 {
 	if (!word)
 		return word;
@@ -400,9 +400,9 @@ static inline __attribute__ ((const)) int ffs(unsigned long x)
 /*
  * __ffs: Similar to ffs, but zero based (0-31)
  */
-static inline __attribute__ ((const)) int __ffs(unsigned long x)
+static inline __attribute__ ((const)) unsigned long __ffs(unsigned long x)
 {
-	int n;
+	unsigned long n;
 
 	asm volatile(
 	"	ffs.f	%0, %1		\n"  /* 0:31; 31(Z) if src 0 */
-- 
2.14.5


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] ARC: fix __ffs return value to avoid build warnings
  2018-12-13 15:42 [PATCH] ARC: fix __ffs return value to avoid build warnings Eugeniy Paltsev
@ 2018-12-13 18:23 ` Vineet Gupta
  2018-12-14 10:47   ` Eugeniy Paltsev
  0 siblings, 1 reply; 3+ messages in thread
From: Vineet Gupta @ 2018-12-13 18:23 UTC (permalink / raw)
  To: Eugeniy Paltsev, linux-snps-arc@lists.infradead.org
  Cc: linux-kernel@vger.kernel.org, Alexey Brodkin

On 12/13/18 7:43 AM, Eugeniy Paltsev wrote:
> Change __ffs return value from 'int' to 'unsigned long' as it
> is done in other implementations (like asm-generic, x86, etc...)
> to avoid build-time warnings in places where type is strictly
> checked.
>
> As __ffs may return values in [0-31] interval changing return
> type to unsigned is valid.
>
> Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>

Can you please paste a couple of lines of offending output !

-Vineet

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] ARC: fix __ffs return value to avoid build warnings
  2018-12-13 18:23 ` Vineet Gupta
@ 2018-12-14 10:47   ` Eugeniy Paltsev
  0 siblings, 0 replies; 3+ messages in thread
From: Eugeniy Paltsev @ 2018-12-14 10:47 UTC (permalink / raw)
  To: Eugeniy.Paltsev@synopsys.com, Vineet Gupta,
	linux-snps-arc@lists.infradead.org
  Cc: linux-kernel@vger.kernel.org, Alexey Brodkin

Hi Vineet,

On Thu, 2018-12-13 at 18:23 +0000, Vineet Gupta wrote:
> On 12/13/18 7:43 AM, Eugeniy Paltsev wrote:
> > Change __ffs return value from 'int' to 'unsigned long' as it
> > is done in other implementations (like asm-generic, x86, etc...)
> > to avoid build-time warnings in places where type is strictly
> > checked.
> > 
> > As __ffs may return values in [0-31] interval changing return
> > type to unsigned is valid.
> > 
> > Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
> 
> Can you please paste a couple of lines of offending output !

---------------------------------->8---------------------------------
  CC      mm/nobootmem.o
In file included from ./include/asm-generic/bug.h:18:0,
                 from ./arch/arc/include/asm/bug.h:32,
                 from ./include/linux/bug.h:5,
                 from ./include/linux/mmdebug.h:5,
                 from ./include/linux/gfp.h:5,
                 from ./include/linux/slab.h:15,
                 from mm/nobootmem.c:14:
mm/nobootmem.c: In function ‘__free_pages_memory’:
./include/linux/kernel.h:845:29: warning: comparison of distinct pointer types lacks a cast
   (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
                             ^
./include/linux/kernel.h:859:4: note: in expansion of macro ‘__typecheck’
   (__typecheck(x, y) && __no_side_effects(x, y))
    ^~~~~~~~~~~
./include/linux/kernel.h:869:24: note: in expansion of macro ‘__safe_cmp’
  __builtin_choose_expr(__safe_cmp(x, y), \
                        ^~~~~~~~~~
./include/linux/kernel.h:878:19: note: in expansion of macro ‘__careful_cmp’
 #define min(x, y) __careful_cmp(x, y, <)
                   ^~~~~~~~~~~~~
mm/nobootmem.c:104:11: note: in expansion of macro ‘min’
   order = min(MAX_ORDER - 1UL, __ffs(start));
           ^~~
---------------------------------->8---------------------------------

> 
> -Vineet
-- 
 Eugeniy Paltsev

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-12-14 10:47 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-12-13 15:42 [PATCH] ARC: fix __ffs return value to avoid build warnings Eugeniy Paltsev
2018-12-13 18:23 ` Vineet Gupta
2018-12-14 10:47   ` Eugeniy Paltsev

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox