Re: [PATCH 4/15] ide: remove atapi_error_t

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

 



Bartlomiej Zolnierkiewicz wrote:

Index: b/drivers/ide/ide-lib.c
===================================================================
--- a/drivers/ide/ide-lib.c
+++ b/drivers/ide/ide-lib.c

[...]

@@ -576,19 +575,19 @@ static u8 ide_dump_atapi_status(ide_driv
	}
	printk("}\n");
	if ((stat & (BUSY_STAT|ERR_STAT)) == ERR_STAT) {
-		error.all = HWIF(drive)->INB(IDE_ERROR_REG);
-		printk("%s: %s: error=0x%02x { ", drive->name, msg, error.all);
-		if (error.b.ili)	printk("IllegalLengthIndication ");
-		if (error.b.eom)	printk("EndOfMedia ");
-		if (error.b.abrt)	printk("AbortedCommand ");
-		if (error.b.mcr)	printk("MediaChangeRequested ");
-		if (error.b.sense_key)	printk("LastFailedSense=0x%02x ",
-						error.b.sense_key);
+		err = drive->hwif->INB(IDE_ERROR_REG);
+		printk("%s: %s: error=0x%02x { ", drive->name, msg, err);
+		if (err & MARK_ERR)	printk("IllegalLengthIndication ");
+		if (err & TRK0_ERR)	printk("EndOfMedia ");
+		if (err & ABRT_ERR)	printk("AbortedCommand ");
+		if (err & MCR_ERR)	printk("MediaChangeRequested ");
+		if (err & 0xf0)		printk("LastFailedSense=0x%02x ",
+						(err & 0xf0) >> 4);

I'd rather prefer that the ATAPI bit definitions be added to <linux/hdreg.h> -- the ATAPI sector count register fields definitions are already there...

Yeah, that should do it:

[PATCH] ide: remove atapi_error_t (take 2)

Remove atapi_error_t.

While at it:
* replace 'HWIF(drive)' by 'drive->hwif'

v2:
* Add {ILI,EOM,LFS}_ERR defines to <linux/hdreg.h>.

Cc: Sergei Shtylyov <sshtylyov@xxxxxxxxxxxxx>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx>

Acked-by: Sergei Shtylyov <sshtylyov@xxxxxxxxxxxxx>

Index: b/drivers/ide/ide-lib.c
===================================================================
--- a/drivers/ide/ide-lib.c
+++ b/drivers/ide/ide-lib.c
[...]
@@ -576,19 +575,19 @@ static u8 ide_dump_atapi_status(ide_driv
 	}
 	printk("}\n");
 	if ((stat & (BUSY_STAT|ERR_STAT)) == ERR_STAT) {
-		error.all = HWIF(drive)->INB(IDE_ERROR_REG);
-		printk("%s: %s: error=0x%02x { ", drive->name, msg, error.all);
-		if (error.b.ili)	printk("IllegalLengthIndication ");
-		if (error.b.eom)	printk("EndOfMedia ");
-		if (error.b.abrt)	printk("AbortedCommand ");
-		if (error.b.mcr)	printk("MediaChangeRequested ");
-		if (error.b.sense_key)	printk("LastFailedSense=0x%02x ",
-						error.b.sense_key);
+		err = drive->hwif->INB(IDE_ERROR_REG);
+		printk("%s: %s: error=0x%02x { ", drive->name, msg, err);
+		if (err & ILI_ERR)	printk("IllegalLengthIndication ");
+		if (err & EOM_ERR)	printk("EndOfMedia ");
+		if (err & ABRT_ERR)	printk("AbortedCommand ");
+		if (err & MCR_ERR)	printk("MediaChangeRequested ");

Well, actually MCR bit is not defined for ATAPI (this condition should be reported via REQUEST SENSE I guess).

+		if (err & LFS_ERR)	printk("LastFailedSense=0x%02x ",
+						(err & LFS_ERR) >> 4);
===================================================================
--- a/include/linux/hdreg.h
+++ b/include/linux/hdreg.h
[...]
@@ -52,6 +54,7 @@
 #define ECC_ERR			0x40	/* Uncorrectable ECC error */
 #define BBD_ERR			0x80	/* pre-EIDE meaning:  block marked bad */
 #define ICRC_ERR		0x80	/* new meaning:  CRC error during transfer */
+#define LFS_ERR			0xf0	/* Last Failed Sense (ATAPI) */

   Well, the field name is actually just "sense key"...

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

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux