Skip to contentSkip to conversation

drivers/net/wireless/ath/wil6210/debugfs.c: Use 'uint64_t' instead of 'cycles_t' to avoid warnings

PATCH Superseded Chen Gang 3 participants 6 messages Dec 24, 2014 1 message not in the archive

Subsystems (4)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Chen Gang

author
#0 lore raw

PATCH 1/1 drivers/net/wireless/ath/wil6210/debugfs.c: Use 'uint64_t' instead of 'cycles_t' to avoid warnings

do_div() checks the type strictly. 'cycles_t' may be 32-bit under quite a few architectures (parisc, arm, avr32 ...). So use 'uint64_t' instead of, the related warning (with allmodconfig under parisc):

CC [M] drivers/net/wireless/ath/wil6210/debugfs.o
In file included from arch/parisc/include/generated/asm/div64.h:1:0,

                   from include/linux/kernel.h:124,
                   from include/linux/list.h:8,
                   from include/linux/module.h:9,
                   from drivers/net/wireless/ath/wil6210/debugfs.c:17:

drivers/net/wireless/ath/wil6210/debugfs.c: In function
‘wil_vring_debugfs_show’:
include/asm-generic/div64.h:43:28: warning: comparison of distinct
pointer types lacks a cast

    (void)(((typeof((n)) *)0) == ((uint64_t *)0)); \
                              ^
  drivers/net/wireless/ath/wil6210/debugfs.c:107:4: note: in expansion
of macro ‘do_div’
      do_div(idle, total);
      ^
  In file included from include/uapi/linux/stddef.h:1:0,
                   from include/linux/stddef.h:4,
                   from ./include/uapi/linux/posix_types.h:4,
                   from include/uapi/linux/types.h:13,
                   from include/linux/types.h:5,
                   from include/linux/list.h:4,
                   from include/linux/module.h:9,
                   from drivers/net/wireless/ath/wil6210/debugfs.c:17:
  include/asm-generic/div64.h:44:18: warning: right shift count >= width
of type [-Wshift-count-overflow]
    if (likely(((n) >> 32) == 0)) {   \
                    ^
  include/linux/compiler.h:159:40: note: in definition of macro ‘likely’
   # define likely(x) __builtin_expect(!!(x), 1)
                                          ^
  drivers/net/wireless/ath/wil6210/debugfs.c:107:4: note: in expansion
of macro ‘do_div’
      do_div(idle, total);
      ^
  In file included from arch/parisc/include/generated/asm/div64.h:1:0,
                   from include/linux/kernel.h:124,
                   from include/linux/list.h:8,
                   from include/linux/module.h:9,
                   from drivers/net/wireless/ath/wil6210/debugfs.c:17:
  include/asm-generic/div64.h:48:22: warning: passing argument 1 of
‘__div64_32’ from incompatible pointer type [-Wincompatible-pointer-types]
     __rem = __div64_32(&(n), __base); \
                        ^
  drivers/net/wireless/ath/wil6210/debugfs.c:107:4: note: in expansion
of macro ‘do_div’
      do_div(idle, total);
      ^
  include/asm-generic/div64.h:35:17: note: expected ‘uint64_t * {aka
long long unsigned int *}’ but argument is of type ‘cycles_t * {aka long
unsigned int *}’
   extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor);
                   ^
---
 drivers/net/wireless/ath/wil6210/debugfs.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
(quoted diff) +0 -0

b/drivers/net/wireless/ath/wil6210/debugfs.c
index 4e6e145..cd991fa 100644

drivers/net/wireless/ath/wil6210/debugfs.c +0 -0
@@ -101,8 +101,8 @@ static int wil_vring_debugfs_show(struct seq_file

*s, void *data)
char name[10];
/* performance monitoring */ cycles_t now = get_cycles();
- cycles_t idle = txdata->idle * 100;
- cycles_t total = now - txdata->begin;
+ uint64_t idle = txdata->idle * 100;
+ uint64_t total = now - txdata->begin;

do_div(idle, total);
txdata->begin = now;

Signature · 1 line
1.7.9.5
author
#1 lore raw

Oh, sorry, I forgot the word wrap (after change a new pc). I shall send patch v2 for it.

Quoted 81 lines · Chen Gang

do_div() checks the type strictly. 'cycles_t' may be 32-bit under quite a few architectures (parisc, arm, avr32 ...). So use 'uint64_t' instead of, the related warning (with allmodconfig under parisc):

CC [M] drivers/net/wireless/ath/wil6210/debugfs.o
In file included from arch/parisc/include/generated/asm/div64.h:1:0,

                   from include/linux/kernel.h:124,
                   from include/linux/list.h:8,
                   from include/linux/module.h:9,
                   from drivers/net/wireless/ath/wil6210/debugfs.c:17:

drivers/net/wireless/ath/wil6210/debugfs.c: In function
‘wil_vring_debugfs_show’:
include/asm-generic/div64.h:43:28: warning: comparison of distinct
pointer types lacks a cast

    (void)(((typeof((n)) *)0) == ((uint64_t *)0)); \
                              ^
  drivers/net/wireless/ath/wil6210/debugfs.c:107:4: note: in expansion
of macro ‘do_div’
      do_div(idle, total);
      ^
  In file included from include/uapi/linux/stddef.h:1:0,
                   from include/linux/stddef.h:4,
                   from ./include/uapi/linux/posix_types.h:4,
                   from include/uapi/linux/types.h:13,
                   from include/linux/types.h:5,
                   from include/linux/list.h:4,
                   from include/linux/module.h:9,
                   from drivers/net/wireless/ath/wil6210/debugfs.c:17:
  include/asm-generic/div64.h:44:18: warning: right shift count >= width
of type [-Wshift-count-overflow]
    if (likely(((n) >> 32) == 0)) {   \
                    ^
  include/linux/compiler.h:159:40: note: in definition of macro ‘likely’
   # define likely(x) __builtin_expect(!!(x), 1)
                                          ^
  drivers/net/wireless/ath/wil6210/debugfs.c:107:4: note: in expansion
of macro ‘do_div’
      do_div(idle, total);
      ^
  In file included from arch/parisc/include/generated/asm/div64.h:1:0,
                   from include/linux/kernel.h:124,
                   from include/linux/list.h:8,
                   from include/linux/module.h:9,
                   from drivers/net/wireless/ath/wil6210/debugfs.c:17:
  include/asm-generic/div64.h:48:22: warning: passing argument 1 of
‘__div64_32’ from incompatible pointer type [-Wincompatible-pointer-types]
     __rem = __div64_32(&(n), __base); \
                        ^
  drivers/net/wireless/ath/wil6210/debugfs.c:107:4: note: in expansion
of macro ‘do_div’
      do_div(idle, total);
      ^
  include/asm-generic/div64.h:35:17: note: expected ‘uint64_t * {aka
long long unsigned int *}’ but argument is of type ‘cycles_t * {aka long
unsigned int *}’
   extern uint32_t __div64_32(uint64_t *dividend, uint32_t divisor);
                   ^
---
 drivers/net/wireless/ath/wil6210/debugfs.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/net/wireless/ath/wil6210/debugfs.c +2 -2
index 4e6e145..cd991fa 100644
@@ -101,8 +101,8 @@ static int wil_vring_debugfs_show(struct seq_file
 *s, void *data)
 			char name[10];
 			/* performance monitoring */
 			cycles_t now = get_cycles();
-			cycles_t idle = txdata->idle * 100;
-			cycles_t total = now - txdata->begin;
+			uint64_t idle = txdata->idle * 100;
+			uint64_t total = now - txdata->begin;
 
 			do_div(idle, total);

txdata->begin = now;

Signature · 3 lines
Chen Gang

Open, share, and attitude like air, water, and life which God blessed

A message that is not in the archive (sent off-list or not yet received): [email protected]

#3 lore raw
Quoted 2 lines · Chen Gang

Oh, sorry, I forgot the word wrap (after change a new pc). I shall send patch v2 for it.

While at it, could you also please simplify the title. You don't have to put the full directory there, it just makes it more difficult to read. This should be enough:

wil6210: Use 'uint64_t' instead of 'cycles_t' to avoid warnings

I see quite a few patches with titles like 'drivers: net: wireless: ath:
fix foo'. Where an earth is that coming from? Bad documentation somewhere?

Signature · 5 lines
Kalle Valo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
author
#4 lore raw
Quoted 11 lines · Kalle Valo
Quoted 2 lines · Chen Gang

Oh, sorry, I forgot the word wrap (after change a new pc). I shall send patch v2 for it.

While at it, could you also please simplify the title. You don't have to put the full directory there, it just makes it more difficult to read. This should be enough:

wil6210: Use 'uint64_t' instead of 'cycles_t' to avoid warnings

Oh, I have sent patch v2, if necessary, I will send patch v3 for it. (if necessary, please let me know)

Quoted 4 lines

I see quite a few patches with titles like 'drivers: net: wireless: ath:
fix foo'. Where an earth is that coming from? Bad documentation somewhere?

I guess, this can let the patch makers have a easier life, e.g. for me, I may send patches for various sub-systems (arch/*, drivers/*, net/*, also another projects ...).

Thanks.

Signature · 3 lines
Chen Gang

Open, share, and attitude like air, water, and life which God blessed
#5 lore raw
Quoted 10 lines · Chen Gang
Quoted 9 lines · Kalle Valo
Quoted 2 lines · Chen Gang

Oh, sorry, I forgot the word wrap (after change a new pc). I shall send patch v2 for it.

While at it, could you also please simplify the title. You don't have to put the full directory there, it just makes it more difficult to read. This should be enough:

Quoted 5 lines
Quoted 2 lines

wil6210: Use 'uint64_t' instead of 'cycles_t' to avoid warnings

Oh, I have sent patch v2, if necessary, I will send patch v3 for it. (if necessary, please let me know)

I can edit it this time, but in the future please be use less verbose titles.

Signature · 1 line
Kalle Valo
author
#6 lore raw
Quoted 12 lines · Kalle Valo
Quoted 10 lines · Chen Gang
Quoted 9 lines · Kalle Valo
Quoted 2 lines · Chen Gang

Oh, sorry, I forgot the word wrap (after change a new pc). I shall send patch v2 for it.

While at it, could you also please simplify the title. You don't have to put the full directory there, it just makes it more difficult to read. This should be enough:

Quoted 9 lines
Quoted 5 lines
Quoted 2 lines

wil6210: Use 'uint64_t' instead of 'cycles_t' to avoid warnings

Oh, I have sent patch v2, if necessary, I will send patch v3 for it. (if necessary, please let me know)

I can edit it this time, but in the future please be use less verbose titles.

OK, thanks. Next, I shall use the short subject for drivers.

Thanks.

Signature · 3 lines
Chen Gang

Open, share, and attitude like air, water, and life which God blessed