Patchwork ide: icside.c: fix printk format string compile warning

login
register
mail settings
Submitter Christian Dietrich
Date May 31, 2012, 10:08 a.m.
Message ID <86hauw7jee.fsf_-_@gandalf.zerties.org>
Download mbox | patch
Permalink /patch/162134/
State Changes Requested
Delegated to: David Miller
Headers show

Comments

Christian Dietrich - May 31, 2012, 10:08 a.m.
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(-)
Joe Perches - June 2, 2012, 9:26 p.m.
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-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

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)));
 }
 
 static const struct ide_port_ops icside_v6_port_ops = {