[PATCH] powerpc: cputime: fix a compile warning

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE3533d

9 messages, 5 authors, 2016-12-02 · open the first message on its own page

[PATCH] powerpc: cputime: fix a compile warning

From: <hidden>
Date: 2016-11-21 04:57:27

From: Yanjiang Jin <redacted>

This patch is to avoid the below warning:

kernel/sched/cpuacct.c:298:25: warning:
format '%lld' expects argument of type 'long long int',
but argument 4 has type 'long unsigned int' [-Wformat=]

Signed-off-by: Yanjiang Jin <redacted>
---
 arch/powerpc/include/asm/cputime.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/include/asm/cputime.h b/arch/powerpc/include/asm/cputime.h
index 4f60db0..4423e97 100644
--- a/arch/powerpc/include/asm/cputime.h
+++ b/arch/powerpc/include/asm/cputime.h
@@ -228,7 +228,8 @@ static inline cputime_t clock_t_to_cputime(const unsigned long clk)
 	return (__force cputime_t) ct;
 }
 
-#define cputime64_to_clock_t(ct)	cputime_to_clock_t((cputime_t)(ct))
+#define cputime64_to_clock_t(ct)	\
+	(__force u64)(cputime_to_clock_t((cputime_t)(ct)))
 
 /*
  * PPC64 uses PACA which is task independent for storing accounting data while
-- 
1.9.1

Re: [PATCH] powerpc: cputime: fix a compile warning

From: Scott Wood <oss@buserror.net>
Date: 2016-11-30 14:41:08

On Mon, 2016-11-21 at 12:56 +0800, yanjiang.jin@windriver.com wrote:
quoted hunk
From: Yanjiang Jin <redacted>

This patch is to avoid the below warning:

kernel/sched/cpuacct.c:298:25: warning:
format '%lld' expects argument of type 'long long int',
but argument 4 has type 'long unsigned int' [-Wformat=]

Signed-off-by: Yanjiang Jin <redacted>
---
 arch/powerpc/include/asm/cputime.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/include/asm/cputime.h
b/arch/powerpc/include/asm/cputime.h
index 4f60db0..4423e97 100644
--- a/arch/powerpc/include/asm/cputime.h
+++ b/arch/powerpc/include/asm/cputime.h
@@ -228,7 +228,8 @@ static inline cputime_t clock_t_to_cputime(const
unsigned long clk)
 	return (__force cputime_t) ct;
 }
 
-#define cputime64_to_clock_t(ct)	cputime_to_clock_t((cputime_t)(ct))
+#define cputime64_to_clock_t(ct)	\
+	(__force u64)(cputime_to_clock_t((cputime_t)(ct)))
Why is __force needed?

-Scott

Re: [PATCH] powerpc: cputime: fix a compile warning

From: yjin <hidden>
Date: 2016-12-01 05:05:28

Hi Scott,

Thanks for your reminder!
I rephrased it as below:

-#define cputime64_to_clock_t(ct) cputime_to_clock_t((cputime_t)(ct))
+#define cputime64_to_clock_t(ct)       \
+       (u64)(cputime_to_clock_t((cputime_t)(ct)))


and rebuilt the kernel, no warnings found.
New patch is attached, could you also help me to review it?

Regards!
Yanjiang

On 2016年11月30日 22:40, Scott Wood wrote:
On Mon, 2016-11-21 at 12:56 +0800, yanjiang.jin@windriver.com wrote:
quoted
From: Yanjiang Jin <redacted>

This patch is to avoid the below warning:

kernel/sched/cpuacct.c:298:25: warning:
format '%lld' expects argument of type 'long long int',
but argument 4 has type 'long unsigned int' [-Wformat=]

Signed-off-by: Yanjiang Jin <redacted>
---
  arch/powerpc/include/asm/cputime.h | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/include/asm/cputime.h
b/arch/powerpc/include/asm/cputime.h
index 4f60db0..4423e97 100644
--- a/arch/powerpc/include/asm/cputime.h
+++ b/arch/powerpc/include/asm/cputime.h
@@ -228,7 +228,8 @@ static inline cputime_t clock_t_to_cputime(const
unsigned long clk)
  	return (__force cputime_t) ct;
  }
  
-#define cputime64_to_clock_t(ct)	cputime_to_clock_t((cputime_t)(ct))
+#define cputime64_to_clock_t(ct)	\
+	(__force u64)(cputime_to_clock_t((cputime_t)(ct)))
Why is __force needed?

-Scott

Re: [PATCH] powerpc: cputime: fix a compile warning

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2016-12-02 04:15:04

yanjiang.jin@windriver.com writes:
quoted hunk
diff --git a/arch/powerpc/include/asm/cputime.h b/arch/powerpc/include/asm/cputime.h
index 4f60db0..4423e97 100644
--- a/arch/powerpc/include/asm/cputime.h
+++ b/arch/powerpc/include/asm/cputime.h
@@ -228,7 +228,8 @@ static inline cputime_t clock_t_to_cputime(const unsigned long clk)
 	return (__force cputime_t) ct;
 }
 
-#define cputime64_to_clock_t(ct)	cputime_to_clock_t((cputime_t)(ct))
+#define cputime64_to_clock_t(ct)	\
+	(__force u64)(cputime_to_clock_t((cputime_t)(ct)))
Given the name of the function is "cputime64 to clock_t", surely we
should be returning a clock_t ?

cheers

Re: [PATCH] powerpc: cputime: fix a compile warning

From: Balbir Singh <bsingharora@gmail.com>
Date: 2016-12-02 04:23:01

On Fri, Dec 2, 2016 at 3:15 PM, Michael Ellerman [off-list ref] wrote:
yanjiang.jin@windriver.com writes:
quoted
diff --git a/arch/powerpc/include/asm/cputime.h b/arch/powerpc/include/asm/cputime.h
index 4f60db0..4423e97 100644
--- a/arch/powerpc/include/asm/cputime.h
+++ b/arch/powerpc/include/asm/cputime.h
@@ -228,7 +228,8 @@ static inline cputime_t clock_t_to_cputime(const unsigned long clk)
      return (__force cputime_t) ct;
 }

-#define cputime64_to_clock_t(ct)     cputime_to_clock_t((cputime_t)(ct))
+#define cputime64_to_clock_t(ct)     \
+     (__force u64)(cputime_to_clock_t((cputime_t)(ct)))
Given the name of the function is "cputime64 to clock_t", surely we
should be returning a clock_t ?
Please fix it in cpuacct.c  Also check out git commit
527b0a76f41d062381adbb55c8eb61e32cb0bfc9
sched/cpuacct: Avoid %lld seq_printf warning

Balbir

Re: [PATCH] powerpc: cputime: fix a compile warning

From: yjin <hidden>
Date: 2016-12-02 04:36:24

On 2016年12月02日 12:22, Balbir Singh wrote:
On Fri, Dec 2, 2016 at 3:15 PM, Michael Ellerman [off-list ref] wrote:
quoted
yanjiang.jin@windriver.com writes:
quoted
diff --git a/arch/powerpc/include/asm/cputime.h b/arch/powerpc/include/asm/cputime.h
index 4f60db0..4423e97 100644
--- a/arch/powerpc/include/asm/cputime.h
+++ b/arch/powerpc/include/asm/cputime.h
@@ -228,7 +228,8 @@ static inline cputime_t clock_t_to_cputime(const unsigned long clk)
       return (__force cputime_t) ct;
  }

-#define cputime64_to_clock_t(ct)     cputime_to_clock_t((cputime_t)(ct))
+#define cputime64_to_clock_t(ct)     \
+     (__force u64)(cputime_to_clock_t((cputime_t)(ct)))
Given the name of the function is "cputime64 to clock_t", surely we
should be returning a clock_t ?
Please fix it in cpuacct.c  Also check out git commit
527b0a76f41d062381adbb55c8eb61e32cb0bfc9
sched/cpuacct: Avoid %lld seq_printf warning
Hi Balbir,

Where can I find this commit?

Thanks!
Yanjiang
Balbir

Re: [PATCH] powerpc: cputime: fix a compile warning

From: Pan Xinhui <hidden>
Date: 2016-12-02 05:16:03


在 2016/12/2 12:35, yjin 写道:
On 2016年12月02日 12:22, Balbir Singh wrote:
quoted
On Fri, Dec 2, 2016 at 3:15 PM, Michael Ellerman [off-list ref] wrote:
quoted
yanjiang.jin@windriver.com writes:
quoted
diff --git a/arch/powerpc/include/asm/cputime.h b/arch/powerpc/include/asm/cputime.h
index 4f60db0..4423e97 100644
--- a/arch/powerpc/include/asm/cputime.h
+++ b/arch/powerpc/include/asm/cputime.h
@@ -228,7 +228,8 @@ static inline cputime_t clock_t_to_cputime(const unsigned long clk)
       return (__force cputime_t) ct;
  }

-#define cputime64_to_clock_t(ct)     cputime_to_clock_t((cputime_t)(ct))
+#define cputime64_to_clock_t(ct)     \
+     (__force u64)(cputime_to_clock_t((cputime_t)(ct)))
Given the name of the function is "cputime64 to clock_t", surely we
should be returning a clock_t ?
Please fix it in cpuacct.c  Also check out git commit
527b0a76f41d062381adbb55c8eb61e32cb0bfc9
sched/cpuacct: Avoid %lld seq_printf warning
Hi Balbir,

Where can I find this commit?
hello,
	it is in next tree. :)

commit 527b0a76f41d062381adbb55c8eb61e32cb0bfc9
Author: Martin Schwidefsky [off-list ref]
Date:   Fri Nov 11 15:27:49 2016 +0100

     sched/cpuacct: Avoid %lld seq_printf warning
     
     For s390 kernel builds I keep getting this warning:
     
      kernel/sched/cpuacct.c: In function 'cpuacct_stats_show':
      kernel/sched/cpuacct.c:298:25: warning: format '%lld' expects argument of type 'long long int', but argument 4 has type 'clock_t {aka long int}' [-Wformat=]
        seq_printf(sf, "%s %lld\n",
     
     Silence the warning by adding an explicit cast.
     
     Signed-off-by: Martin Schwidefsky [off-list ref]
     Signed-off-by: Peter Zijlstra (Intel) [off-list ref]
     Cc: Linus Torvalds [off-list ref]
     Cc: Peter Zijlstra [off-list ref]
     Cc: Thomas Gleixner [off-list ref]
     Link: http://lkml.kernel.org/r/20161111142749.6545-1-schwidefsky@de.ibm.com
     Signed-off-by: Ingo Molnar [off-list ref]
diff --git a/kernel/sched/cpuacct.c b/kernel/sched/cpuacct.c
index bc0b309c..9add206 100644
--- a/kernel/sched/cpuacct.c
+++ b/kernel/sched/cpuacct.c
@@ -297,7 +297,7 @@ static int cpuacct_stats_show(struct seq_file *sf, void *v)
         for (stat = 0; stat < CPUACCT_STAT_NSTATS; stat++) {
                 seq_printf(sf, "%s %lld\n",
                            cpuacct_stat_desc[stat],
-                          cputime64_to_clock_t(val[stat]));
+                          (long long)cputime64_to_clock_t(val[stat]));
         }
  
         return 0;
Thanks!
Yanjiang
quoted
Balbir

Re: [PATCH] powerpc: cputime: fix a compile warning

From: yjin <hidden>
Date: 2016-12-02 05:18:27

On 2016年12月02日 13:15, Pan Xinhui wrote:

在 2016/12/2 12:35, yjin 写道:
quoted
On 2016年12月02日 12:22, Balbir Singh wrote:
quoted
On Fri, Dec 2, 2016 at 3:15 PM, Michael Ellerman 
[off-list ref] wrote:
quoted
yanjiang.jin@windriver.com writes:
quoted
diff --git a/arch/powerpc/include/asm/cputime.h 
b/arch/powerpc/include/asm/cputime.h
index 4f60db0..4423e97 100644
--- a/arch/powerpc/include/asm/cputime.h
+++ b/arch/powerpc/include/asm/cputime.h
@@ -228,7 +228,8 @@ static inline cputime_t 
clock_t_to_cputime(const unsigned long clk)
       return (__force cputime_t) ct;
  }

-#define cputime64_to_clock_t(ct) cputime_to_clock_t((cputime_t)(ct))
+#define cputime64_to_clock_t(ct)     \
+     (__force u64)(cputime_to_clock_t((cputime_t)(ct)))
Given the name of the function is "cputime64 to clock_t", surely we
should be returning a clock_t ?
Please fix it in cpuacct.c  Also check out git commit
527b0a76f41d062381adbb55c8eb61e32cb0bfc9
sched/cpuacct: Avoid %lld seq_printf warning
Hi Balbir,

Where can I find this commit?
hello,
    it is in next tree. :)
Got it. Thanks!

Regards!
Yanjiang
quoted hunk
commit 527b0a76f41d062381adbb55c8eb61e32cb0bfc9
Author: Martin Schwidefsky [off-list ref]
Date:   Fri Nov 11 15:27:49 2016 +0100

    sched/cpuacct: Avoid %lld seq_printf warning
        For s390 kernel builds I keep getting this warning:
         kernel/sched/cpuacct.c: In function 'cpuacct_stats_show':
     kernel/sched/cpuacct.c:298:25: warning: format '%lld' expects 
argument of type 'long long int', but argument 4 has type 'clock_t 
{aka long int}' [-Wformat=]
       seq_printf(sf, "%s %lld\n",
        Silence the warning by adding an explicit cast.
        Signed-off-by: Martin Schwidefsky [off-list ref]
    Signed-off-by: Peter Zijlstra (Intel) [off-list ref]
    Cc: Linus Torvalds [off-list ref]
    Cc: Peter Zijlstra [off-list ref]
    Cc: Thomas Gleixner [off-list ref]
    Link: 
http://lkml.kernel.org/r/20161111142749.6545-1-schwidefsky@de.ibm.com
    Signed-off-by: Ingo Molnar [off-list ref]
diff --git a/kernel/sched/cpuacct.c b/kernel/sched/cpuacct.c
index bc0b309c..9add206 100644
--- a/kernel/sched/cpuacct.c
+++ b/kernel/sched/cpuacct.c
@@ -297,7 +297,7 @@ static int cpuacct_stats_show(struct seq_file *sf, 
void *v)
        for (stat = 0; stat < CPUACCT_STAT_NSTATS; stat++) {
                seq_printf(sf, "%s %lld\n",
                           cpuacct_stat_desc[stat],
-                          cputime64_to_clock_t(val[stat]));
+                          (long long)cputime64_to_clock_t(val[stat]));
        }

        return 0;
quoted
Thanks!
Yanjiang
quoted
Balbir

Re: [PATCH] powerpc: cputime: fix a compile warning

From: Scott Wood <oss@buserror.net>
Date: 2016-12-02 19:55:07

On Fri, 2016-12-02 at 15:15 +1100, Michael Ellerman wrote:
yanjiang.jin@windriver.com writes:
quoted
diff --git a/arch/powerpc/include/asm/cputime.h
b/arch/powerpc/include/asm/cputime.h
index 4f60db0..4423e97 100644
--- a/arch/powerpc/include/asm/cputime.h
+++ b/arch/powerpc/include/asm/cputime.h
@@ -228,7 +228,8 @@ static inline cputime_t clock_t_to_cputime(const
unsigned long clk)
 	return (__force cputime_t) ct;
 }
 
-#define cputime64_to_clock_t(ct)	cputime_to_clock_t((cputime_t)(ct
))
+#define cputime64_to_clock_t(ct)	\
+	(__force u64)(cputime_to_clock_t((cputime_t)(ct)))
Given the name of the function is "cputime64 to clock_t", surely we
should be returning a clock_t ?
That was my initial reaction but it seems that this function has meant "return
a u64 that is otherwise like clock_t" since before the beginning of git
history.  Both generic implementations return u64, including
jiffies_64_to_clock_t which does so explicitly.

-Scott
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help