lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sat, 02 Jun 2012 14:26:17 -0700
From:	Joe Perches <joe@...ches.com>
To:	Christian Dietrich <christian.dietrich@...ormatik.uni-erlangen.de>
Cc:	Sergei Shtylyov <sshtylyov@...sta.com>,
	"David S. Miller" <davem@...emloft.net>, linux-ide@...r.kernel.org,
	linux-kernel@...r.kernel.org, vamos-dev@...ts.cs.fau.de
Subject: Re: [PATCH] ide: icside.c: fix printk format string compile warning

On Thu, 2012-05-31 at 12:08 +0200, Christian Dietrich wrote:
> Peak datarate is never bigger than an integer, and can therefore, as
> suggested in the printk format string, casted to an integer.
> ---
>  drivers/ide/icside.c |    6 +++---
>  1 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/ide/icside.c b/drivers/ide/icside.c
> index 83e5100..755ef6b 100644
> --- a/drivers/ide/icside.c
> +++ b/drivers/ide/icside.c
> @@ -271,9 +271,9 @@ static void icside_set_dma_mode(ide_hwif_t *hwif, ide_drive_t *drive)
>  
>  	ide_set_drivedata(drive, (void *)cycle_time);
>  
> -	printk("%s: %s selected (peak %dMB/s)\n", drive->name,
> -		ide_xfer_verbose(xfer_mode),
> -		2000 / (unsigned long)ide_get_drivedata(drive));
> +	printk(KERN_INFO "%s: %s selected (peak %dMB/s)\n", drive->name,
> +	       ide_xfer_verbose(xfer_mode),
> +	       (int) (2000 / (unsigned long)ide_get_drivedata(drive)));

Why do an unsigned long int divide then cast
the result at all?  Why not just
do a divide without the cast?

Using ide_get_drivedata is rather odd too as it would be
more readable as without the set/get and just use:

	printk(KERN_IFNO "%s: %s selected (peak %luMB/s)\n",
	       drive->name, ide_xfer_verbose(xfer_mode),
	       2000UL / cycle_time);

	ide_set_drivedata(drive, (void *)cycle_time);

without the additional get.

Also, cycle_time _could_ be used uninitialized
if somehow an xfer_mode switch/case isn't reached.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists