[patch 08/60] ide-cd: fix endianity for the error message in cdrom_read_capacity

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Greg KH
Date: Monday, August 18, 2008 - 11:41 am

2.6.26-stable review patch.  If anyone has any objections, please let us know.

------------------
From: Petr Tesarik <ptesarik@suse.cz>

commit 938bb03d188a1e688fb0bcae49788f540193e80a uptream

Aesthetic regards aside, commit e8e7b9eb11c34ee18bde8b7011af41938d1ad667
still leaves a bug in the error message, because it uses the unconverted
big-endian value for printk.

Fix this by using a local variable in machine byte order. The result is
correct, more readable, and also produces slightly shorter code on i386.

Signed-off-by: Petr Tesarik <ptesarik@suse.cz>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: <stable@kernel.org>
Acked-by: Borislav Petkov <petkovbb@gmail.com>
[bart: __u32 -> u32]
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 drivers/ide/ide-cd.c |   18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -1298,6 +1298,7 @@ static int cdrom_read_capacity(ide_drive
 
 	int stat;
 	struct request req;
+	u32 blocklen;
 
 	ide_cd_init_rq(drive, &req);
 
@@ -1314,23 +1315,24 @@ static int cdrom_read_capacity(ide_drive
 	/*
 	 * Sanity check the given block size
 	 */
-	switch (capbuf.blocklen) {
-	case __constant_cpu_to_be32(512):
-	case __constant_cpu_to_be32(1024):
-	case __constant_cpu_to_be32(2048):
-	case __constant_cpu_to_be32(4096):
+	blocklen = be32_to_cpu(capbuf.blocklen);
+	switch (blocklen) {
+	case 512:
+	case 1024:
+	case 2048:
+	case 4096:
 		break;
 	default:
 		printk(KERN_ERR "%s: weird block size %u\n",
-			drive->name, capbuf.blocklen);
+			drive->name, blocklen);
 		printk(KERN_ERR "%s: default to 2kb block size\n",
 			drive->name);
-		capbuf.blocklen = __constant_cpu_to_be32(2048);
+		blocklen = 2048;
 		break;
 	}
 
 	*capacity = 1 + be32_to_cpu(capbuf.lba);
-	*sectors_per_frame = be32_to_cpu(capbuf.blocklen) >> SECTOR_BITS;
+	*sectors_per_frame = blocklen >> SECTOR_BITS;
 	return 0;
 }
 

-- 
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[patch 00/60] 2.6.26-stable review, Greg KH, (Mon Aug 18, 11:40 am)
[patch 01/60] mlock() fix return values, Greg KH, (Mon Aug 18, 11:41 am)
[patch 02/60] SCSI: ses: fix VPD inquiry overrun, Greg KH, (Mon Aug 18, 11:41 am)
[patch 06/60] vt8623fb: fix kernel oops, Greg KH, (Mon Aug 18, 11:41 am)
[patch 08/60] ide-cd: fix endianity for the error message ..., Greg KH, (Mon Aug 18, 11:41 am)
[patch 11/60] radeonfb: fix accel engine hangs, Greg KH, (Mon Aug 18, 11:42 am)
[patch 26/60] random32: seeding improvement, Greg KH, (Mon Aug 18, 11:43 am)
[patch 28/60] sparc64: FUTEX_OP_ANDN fix, Greg KH, (Mon Aug 18, 11:44 am)
[patch 41/60] x86: amd opteron TOM2 mask val fix, Greg KH, (Mon Aug 18, 11:44 am)
[patch 44/60] radeon: misc corrections, Greg KH, (Mon Aug 18, 11:45 am)
[patch 45/60] cs5520: add enablebits checking, Greg KH, (Mon Aug 18, 11:45 am)
[patch 50/60] sparc64: Implement IRQ stacks., Greg KH, (Mon Aug 18, 11:45 am)
[patch 52/60] x86: fix spin_is_contended(), Greg KH, (Mon Aug 18, 11:45 am)