Re: [PATCH -next] sysfs: add unsigned long cast to prevent compile warning

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

> "sysfs: use rb-tree for inode number lookup" added a new printk which
> causes a new compile warning on s390 (and few other architectures):
> 
> fs/sysfs/dir.c: In function 'sysfs_link_sibling':
> fs/sysfs/dir.c:63:4: warning: format '%lx' expects argument of type
>   'long unsigned int', but argument 2 has type 'ino_t' [-Wform
> 
> Add an explicit unsigned long cast since ino_t is an unsigned long on
> most architectures.
> 
> Cc: Mikulas Patocka <mpatocka@xxxxxxxxxx>
> Signed-off-by: Heiko Carstens <heiko.carstens@xxxxxxxxxx>
> ---
>  fs/sysfs/dir.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
> index c3646d9..9a6e020 100644
> --- a/fs/sysfs/dir.c
> +++ b/fs/sysfs/dir.c
> @@ -60,7 +60,8 @@ static void sysfs_link_sibling(struct sysfs_dirent *sd)
>  		} else if (sd->s_ino > node->s_ino) {
>  			p = &node->inode_node.rb_right;
>  		} else {
> -			printk(KERN_CRIT "sysfs: inserting duplicate inode '%lx'\n", sd->s_ino);
> +			printk(KERN_CRIT "sysfs: inserting duplicate inode '%lux'\n",

This change is wrong. Leave the format string as it was ... "%lux" 
actually prints a decimal long unsigned integer followed by the character 
"x". "%lx" prints the hexadecimal unsigned long string.

> +			       (unsigned long) sd->s_ino);

OK, this is good.

>  			BUG();
>  		}
>  #undef node
> -- 
> 1.7.5.4

Mikulas
--
To unsubscribe from this list: send the line "unsubscribe linux-next" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel]     [Linux USB Development]     [Yosemite News]     [Linux SCSI]

  Powered by Linux