cmd_sf warning on size_t
Hi Mike,
I got this warning on cmd_sf.c,
cmd_sf.c: In function `spi_flash_update_block':
cmd_sf.c:130: warning: unsigned int format, size_t arg (arg 4) cmd_sf.c:135: warning: unsigned int format, size_t arg (arg 3)
It was related to our arch/avr32|blackfin|nios2/asm/posix_types.h typedef unsigned long __kernel_size_t;
While most other 32 bits archs use unsigned int, we three use unsigned long.
It is said in linux-2.6/include/asm-generic/posix_types.h /*
* Most 32 bit architectures use "unsigned int" size_t,
* and all 64 bit architectures use "unsigned long" size_t. */
Shall we fix the cmd_sf.c, or shall I change size_t to unsigned int as other 32 bits archs do?
Best regards,
Thomas
Dear Thomas Chou,
Quoted 7 lines · Thomas Chou
Hi Mike,
I got this warning on
cmd_sf.c,
cmd_sf.c: In function `spi_flash_update_block':
cmd_sf.c:130: warning: unsigned int format,size_targ (arg 4) cmd_sf.c:135: warning: unsigned int format,size_targ (arg 3)
I tumble over this these days too.
Quoted 6 lines
It was related to our arch/avr32|blackfin|nios2/asm/posix_types.h typedef unsigned long
__kernel_size_t;While most other 32 bits archs use unsigned int, we three use unsigned long.
Quoted 8 lines
It is said in
linux-2.6/include/asm-generic/posix_types.h/*
* Most 32 bit architectures use "unsigned int"size_t,
* and all 64 bit architectures use "unsigned long"size_t. */Shall we fix the
cmd_sf.c, or shall I changesize_tto unsigned int as other 32 bits archs do?
I tend to fix the cmd_sf.c and arch/avr32/cpu/at32ap700x/mmu.c ->
mmu.c:25: warning: format '%08x' expects type 'unsigned int', but argument 2 has type 'uintptr_t'
I have already a patch, and would send it.
best regards
Andreas Bie?mann
[U-Boot] [PATCH/RFC] fix several printf() modifiers
In reply to Thomas ChouFrom: Andreas Bie?mann <[email protected]>
Some architectures define size_t to unsigned long even though they are 32 bit architectures.
This patch fixes several warnings when running MAKEALL for avr32 architecture:
---8<---mmu.c: In function 'mmu_init_r':
mmu.c:25: warning: format '%08x' expects type 'unsigned int', but argument 2 has type 'uintptr_t' fat.c: In function 'do_fat_read':
fat.c:879: warning: format '%d' expects type 'int', but argument 4 has type 'long unsigned int' cmd_sf.c: In function 'spi_flash_update_block':
cmd_sf.c:130: warning: format '%#x' expects type 'unsigend int', but argument 4 has type 'size_t' cmd_sf.c:135: warning: format '%x' expects type 'unsigned int', but argument 3 has type 'size_t' --->8---
--- arch/avr32/cpu/at32ap700x/mmu.c | 2 +- common/cmd_sf.c | 4 ++-- fs/fat/fat.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-)
arch/avr32/cpu/at32ap700x/mmu.c +1 -1
@@ -22,7 +22,7 @@ void mmu_init_r(unsigned long dest_addr)*/ vmr_table_addr = (uintptr_t )&mmu_vmr_table;sysreg_write (PTBR , vmr_table_addr); -printf ("VMR table @ 0x%08x\n" , vmr_table_addr); +printf ("VMR table @ %#lx\n" , vmr_table_addr);/* Enable paging */ sysreg_write(MMUCR, SYSREG_BF(DRP, 1) | SYSREG_BF(DLA, 1)
common/cmd_sf.c +2 -2
@@ -127,12 +127,12 @@ static int do_spi_flash_probe(int argc, char * const argv[])static const char *spi_flash_update_block (struct spi_flash *flash,u32 offset,size_t len,const char *buf,char *cmp_buf,size_t *skipped) { -debug ("offset=%#x, sector_size=%#x, len=%#x\n" , +debug ("offset=%#x, sector_size=%#x, len=%#zx\n" , offset, flash->sector_size, len);if (spi_flash_read (flash, offset, len, cmp_buf))return "read" ;if (memcmp (cmp_buf, buf, len) ==0 ) { -debug ("Skip region %x size %x: no change\n" , +debug ("Skip region %x size %zx: no change\n" , offset, len); *skipped += len;return NULL ;
fs/fat/fat.c +1 -1
@@ -876,7 +876,7 @@ do_fat_read (const char *filename, void *buffer, unsigned long maxsize,while (1 ) {int i; -debug ("FAT read sect=%d, clust_size=%d, DIRENTSPERBLOCK=%d\n" , +debug ("FAT read sect=%d, clust_size=%d, DIRENTSPERBLOCK=%zd\n" , cursect, mydata->clust_size,DIRENTSPERBLOCK ); if (disk_read(cursect,
Signature · 1 line
1.7.7.3
Thomas Chou
Tested-by[U-Boot] [PATCH/RFC] fix several printf() modifiers
Quoted 6 lines · Andreas Bie?mann
From: Andreas Bie?mann<[email protected]>
Some architectures define
size_tto unsigned long even though they are 32 bit architectures.This patch fixes several warnings when running MAKEALL for avr32 architecture:
Hi Andreas,
Thanks. I have tested cmd_sf and fat.
I would suggest splitting this patch into three, as they related to different custodians.
Best regards,
Thomas
[U-Boot] [PATCH/RFC] fix several printf() modifiers
Hi Thomas,
Quoted 6 lines · Thomas Chou
Quoted 4 lines · Andreas Bie?mann
From: Andreas Bie?mann<[email protected]>
Some architectures define
size_tto unsigned long even though they are
32 bit
Quoted 3 lines
Quoted 3 lines
architectures.
This patch fixes several warnings when running MAKEALL for avr32
architecture:
Quoted 9 lines
Hi Andreas,
Thanks. I have tested
cmd_sfand fat.Tested-by Thomas Chou <[email protected]>I would suggest splitting this patch into three, as they related to
different custodians.
No, that is not true - the patch is a single logical unit
The three maintainers can each provide an Ack
Regards,
Graeme
[U-Boot] [PATCH/RFC] fix several printf() modifiers
Quoted 5 lines · On Wednesday 14 December 2011 21:39:48 Graeme Russ wrote:
Quoted 2 lines · Thomas Chou
I would suggest splitting this patch into three, as they related to different custodians.
No, that is not true - the patch is a single logical unit
meh. no need to keep them as one.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20111215/d7176f13/attachment.pgp>
[U-Boot] [PATCH/RFC] fix several printf() modifiers
In reply to Andreas Bießmannarch/avr32/cpu/at32ap700x/mmu.c void mmu_init_r(unsigned long dest_addr) · line 25
Quoted 5 lines · On Wednesday 14 December 2011 05:04:07 Andreas Bie?mann wrote:
arch/avr32/cpu/at32ap700x/mmu.c +1
-1-printf ("VMR table @ 0x%08x\n" , vmr_table_addr); +printf ("VMR table @ %#lx\n" , vmr_table_addr);
this isn't the same. probably should be %08lx.
Quoted 11 lines
common/cmd_sf.c +2
-2- debug("offset=%#x, sector_size=%#x, len=%#x\n", + debug("offset=%#x, sector_size=%#x, len=%#zx\n", - debug("Skip region %x size %x: no change\n", + debug("Skip region %x size %zx: no change\n",
fs/fat/fat.c do_fat_read (const char *filename, void *buffer, unsigned long maxsize, · line 879
Quoted 3 lines
fs/fat/fat.c +1
-1- debug("FAT read sect=%d, clust_size=%d, DIRENTSPERBLOCK=%d\n", + debug("FAT read sect=%d, clust_size=%d, DIRENTSPERBLOCK=%zd\n",
these look good.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20111215/e0092fcb/attachment.pgp>
[U-Boot] [PATCH/RFC] fix several printf() modifiers
Dear Mike Frysinger,
Quoted 8 lines · Mike Frysinger
arch/avr32/cpu/at32ap700x/mmu.c void mmu_init_r(unsigned long dest_addr) · line 25
Quoted 5 lines · On Wednesday 14 December 2011 05:04:07 Andreas Bie?mann wrote:
arch/avr32/cpu/at32ap700x/mmu.c +1
-1-printf ("VMR table @ 0x%08x\n" , vmr_table_addr); +printf ("VMR table @ %#lx\n" , vmr_table_addr);this isn't the same. probably should be %08lx.
You are right, but as you may know the memory map for at32ap7000 has its SDRAM physically at 0x10000000. Therefore the result will be the same for 0x%08lx and %#lx (in all currently available boards). But maybe one will locate the vmr_table sometimes in SRAM some day?
I will provide v2 which change this back, split off in three patches and add the respective custodian in cc.
best regards
Andreas Bie?mann
[U-Boot] [PATCH/RFC] fix several printf() modifiers
Quoted 5 lines · On Thursday 15 December 2011 03:30:37 Andreas Bie?mann wrote:
Quoted 4 lines · Mike Frysinger
Quoted 3 lines · On Wednesday 14 December 2011 05:04:07 Andreas Bie?mann wrote:
arch/avr32/cpu/at32ap700x/mmu.c +0
-0
Quoted 8 lines
Quoted 4 lines
arch/avr32/cpu/at32ap700x/mmu.c void mmu_init_r(unsigned long dest_addr) · line 25
Quoted 2 lines
arch/avr32/cpu/at32ap700x/mmu.c +1
-1-printf ("VMR table @ 0x%08x\n" , vmr_table_addr); +printf ("VMR table @ %#lx\n" , vmr_table_addr);this isn't the same. probably should be %08lx.
You are right, but as you may know the memory map for at32ap7000 has its SDRAM physically at
0x10000000. Therefore the result will be the same for 0x%08lx and %#lx (in all currently available boards).
i don't know anything about AVR32 ;)
Quoted 1 line
But maybe one will locate the
vmr_tablesometimes in SRAM some day?
seems safer, although probably unlikely as i think the AVR32 is pretty much dead nowadays ?
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20111215/6a4b7ec0/attachment.pgp>
v2 cover fix several printf() length modifers
In reply to Andreas BießmannFrom: Andreas Bie?mann <[email protected]>
Andreas Bie?mann (3):
cmd_sf.c: fix printf() length modifier
fat.c: fix printf() length modifier
avr32:mmu.c: fix printf() length modifier
arch/avr32/cpu/at32ap700x/mmu.c | 2 +- common/cmd_sf.c | 4 ++-- fs/fat/fat.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-)
Signature · 1 line
1.7.7.3
PATCH v2 1/3 cmd_sf.c: fix printf() length modifier
From: Andreas Bie?mann <[email protected]>
size_t is not always 'unsigned int', use corret length modifer.
This patch fixes following warning:
---8<---cmd_sf.c: In function 'spi_flash_update_block':
cmd_sf.c:130: warning: format '%#x' expects type 'unsigend int', but argument 4 has type 'size_t' cmd_sf.c:135: warning: format '%x' expects type 'unsigned int', but argument 3 has type 'size_t' --->8---
---
changes since v1: split off into single patches
total: 0 errors, 0 warnings, 14 lines checked
NOTE: Ignored message types: COMPLEX_MACRO CONSIDER_KSTRTO MINMAX MULTISTATEMENT_MACRO_USE_DO_WHILE
0001-cmd_sf.c-fix-printf-length-modifier.patch has no obvious style problems and is ready for submission.
common/cmd_sf.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
common/cmd_sf.c +2 -2
@@ -127,12 +127,12 @@ static int do_spi_flash_probe(int argc, char * const argv[])static const char *spi_flash_update_block (struct spi_flash *flash,u32 offset,size_t len,const char *buf,char *cmp_buf,size_t *skipped) { -debug ("offset=%#x, sector_size=%#x, len=%#x\n" , +debug ("offset=%#x, sector_size=%#x, len=%#zx\n" , offset, flash->sector_size, len);if (spi_flash_read (flash, offset, len, cmp_buf))return "read" ;if (memcmp (cmp_buf, buf, len) ==0 ) { -debug ("Skip region %x size %x: no change\n" , +debug ("Skip region %x size %zx: no change\n" , offset, len); *skipped += len;return NULL ;
Signature · 1 line
1.7.7.3
PATCH v2 1/3 cmd_sf.c: fix printf() length modifier
if it doesn't get picked up by someone else, i'll push via my sf branch -mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20111215/11f2226f/attachment.pgp>
Wolfgang Denk
AppliedPATCH v2 1/3 cmd_sf.c: fix printf() length modifier
In reply to Andreas BießmannDear =?UTF-8?q?Andreas=20Bie=C3=9Fmann?=,
Quoted 18 lines · In message <[email protected]>…
From: Andreas Bie?mann <[email protected]>
size_tis not always 'unsigned int', use corret length modifer.This patch fixes following warning:
---8<---
cmd_sf.c: In function 'spi_flash_update_block':
cmd_sf.c:130: warning: format '%#x' expects type 'unsigend int', but argument 4 has type 'size_t' cmd_sf.c:135: warning: format '%x' expects type 'unsigned int', but argument 3 has type 'size_t' --->8---Signed-off-by Andreas Bie?mann <[email protected]>cc Mike Frysinger <[email protected]>cc Thomas Chou <[email protected]>---
changes since v1: split off into single patches
Quoted 8 lines
total: 0 errors, 0 warnings, 14 lines checked
NOTE: Ignored message types:
COMPLEX_MACROCONSIDER_KSTRTOMINMAXMULTISTATEMENT_MACRO_USE_DO_WHILE0001-cmd_sf.c-fix-printf-length-modifier.patch has no obvious style problems and is ready for submission.
common/cmd_sf.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
Applied to "next" branch, thanks.
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Anything that is worth doing at all is worth doing well.
-- Philip Earl of ChesterfieldPATCH v2 2/3 fat.c: fix printf() length modifier
In reply to Andreas BießmannFrom: Andreas Bie?mann <[email protected]>
The DIRENTSPERBLOCK utilizes sizeof() which will return a size_t which has no fixed size. Therefor use correct length modifer for printf() statement to prevent compiler warnings.
This patch fixes following warning:
---8<---fat.c: In function 'do_fat_read':
fat.c:879: warning: format '%d' expects type 'int', but argument 4 has type 'long unsigned int' --->8---
---
changes since v1: split off into single patches
total: 0 errors, 0 warnings, 8 lines checked
NOTE: Ignored message types: COMPLEX_MACRO CONSIDER_KSTRTO MINMAX MULTISTATEMENT_MACRO_USE_DO_WHILE
0002-fat.c-fix-printf-length-modifier.patch has no obvious style problems and is ready for submission.
fs/fat/fat.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
fs/fat/fat.c +1 -1
@@ -876,7 +876,7 @@ do_fat_read (const char *filename, void *buffer, unsigned long maxsize,while (1 ) {int i; -debug ("FAT read sect=%d, clust_size=%d, DIRENTSPERBLOCK=%d\n" , +debug ("FAT read sect=%d, clust_size=%d, DIRENTSPERBLOCK=%zd\n" , cursect, mydata->clust_size,DIRENTSPERBLOCK ); if (disk_read(cursect,
Signature · 1 line
1.7.7.3
PATCH v2 2/3 fat.c: fix printf() length modifier
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20111215/d14ee2ae/attachment.pgp>
Wolfgang Denk
AppliedPATCH v2 2/3 fat.c: fix printf() length modifier
In reply to Andreas BießmannDear =?UTF-8?q?Andreas=20Bie=C3=9Fmann?=,
Quoted 21 lines · In message <[email protected]>…
From: Andreas Bie?mann <[email protected]>
The DIRENTSPERBLOCK utilizes
sizeof()which will return asize_twhich has no fixed size. Therefor use correct length modifer forprintf()statement to prevent compiler warnings.This patch fixes following warning:
---8<---
fat.c: In function 'do_fat_read':
fat.c:879: warning: format '%d' expects type 'int', but argument 4 has type 'long unsigned int' --->8---Signed-off-by Andreas Bie?mann <[email protected]>cc Mike Frysinger <[email protected]>cc Thomas Chou <[email protected]>cc rjones at nexus-tech.netcc kharris at nexus-tech.net---
changes since v1: split off into single patches
Quoted 8 lines
total: 0 errors, 0 warnings, 8 lines checked
NOTE: Ignored message types:
COMPLEX_MACROCONSIDER_KSTRTOMINMAXMULTISTATEMENT_MACRO_USE_DO_WHILE0002-fat.c-fix-printf-length-modifier.patch has no obvious style problems and is ready for submission.
fs/fat/fat.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
Applied to "next" branch, thanks.
Best regards,
Wolfgang Denk
Signature · 4 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de "Send lawyers, guns and money..." - Lyrics from a Warren Zevon song
PATCH v2 3/3 avr32:mmu.c: fix printf() length modifier
In reply to Andreas BießmannFrom: Andreas Bie?mann <[email protected]>
avr32 uses unsigned long addresses, fix the printf() length modifier for that fact.
Before this patch following warning occours:
---8<---mmu.c: In function 'mmu_init_r':
mmu.c:25: warning: format '%08x' expects type 'unsigned int', but argument 2 has type 'uintptr_t' --->8---
---
changes since v1: split off into single patches
total: 0 errors, 0 warnings, 8 lines checked
NOTE: Ignored message types: COMPLEX_MACRO CONSIDER_KSTRTO MINMAX MULTISTATEMENT_MACRO_USE_DO_WHILE
0003-avr32-mmu.c-fix-printf-length-modifier.patch has no obvious style problems and is ready for submission.
arch/avr32/cpu/at32ap700x/mmu.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
arch/avr32/cpu/at32ap700x/mmu.c +1 -1
@@ -22,7 +22,7 @@ void mmu_init_r(unsigned long dest_addr)*/ vmr_table_addr = (uintptr_t )&mmu_vmr_table;sysreg_write (PTBR , vmr_table_addr); -printf ("VMR table @ 0x%08x\n" , vmr_table_addr); +printf ("VMR table @ 0x%08lx\n" , vmr_table_addr);/* Enable paging */ sysreg_write(MMUCR, SYSREG_BF(DRP, 1) | SYSREG_BF(DLA, 1)
Signature · 1 line
1.7.7.3
PATCH v2 3/3 avr32:mmu.c: fix printf() length modifier
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20111215/59e66404/attachment.pgp>
Wolfgang Denk
AppliedPATCH v2 3/3 avr32:mmu.c: fix printf() length modifier
In reply to Andreas BießmannDear =?UTF-8?q?Andreas=20Bie=C3=9Fmann?=,
Quoted 19 lines · In message <[email protected]>…
From: Andreas Bie?mann <[email protected]>
avr32 uses unsigned long addresses, fix the
printf()length modifier for that fact.Before this patch following warning occours:
---8<---
mmu.c: In function 'mmu_init_r':
mmu.c:25: warning: format '%08x' expects type 'unsigned int', but argument 2 has type 'uintptr_t' --->8---Signed-off-by Andreas Bie?mann <[email protected]>cc Mike Frysinger <[email protected]>cc Thomas Chou <[email protected]>cc Reinhard Meyer <[email protected]>---
changes since v1: split off into single patches
Quoted 8 lines
total: 0 errors, 0 warnings, 8 lines checked
NOTE: Ignored message types:
COMPLEX_MACROCONSIDER_KSTRTOMINMAXMULTISTATEMENT_MACRO_USE_DO_WHILE0003-avr32-mmu.c-fix-printf-length-modifier.patch has no obvious style problems and is ready for submission.
arch/avr32/cpu/at32ap700x/mmu.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
Applied to "next" branch, thanks.
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de "Spock, did you see the looks on their faces?" "Yes, Captain, a sort of vacant contentment."