Skip to contentSkip to conversation

ide-cd: fix 'ireason' reporting in cdrom_pc_intr()

PATCH In review Bartlomiej Zolnierkiewicz 2 participants 2 messages Dec 20, 2007 – Dec 21, 2007 libata

lore
Share & tools
lore
#0 lore raw

PATCH 9/63 ide-cd: fix 'ireason' reporting in cdrom_pc_intr()

Mask 'ireason' variable so only the valid interrupt reason bits will be reported on "drive appears confused" error.

---
 drivers/ide/ide-cd.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/ide/ide-cd.c +3 -3
Index: b/drivers/ide/ide-cd.c
===================================================================
@@ -1440,7 +1440,7 @@ static ide_startstop_t cdrom_pc_intr (id
 		return ide_stopped;
 
 	/* Read the interrupt reason and the transfer length. */
-	ireason = HWIF(drive)->INB(IDE_IREASON_REG);
+	ireason = HWIF(drive)->INB(IDE_IREASON_REG) & 0x3;
 	lowcyl  = HWIF(drive)->INB(IDE_BCOUNTL_REG);
 	highcyl = HWIF(drive)->INB(IDE_BCOUNTH_REG);
 
@@ -1481,7 +1481,7 @@ static ide_startstop_t cdrom_pc_intr (id
 	if (thislen > len) thislen = len;
 
 	/* The drive wants to be written to. */
-	if ((ireason & 3) == 0) {
+	if (ireason == 0) {
 		if (!rq->data) {
 			blk_dump_rq_flags(rq, "cdrom_pc_intr, write");
 			goto confused;
@@ -1503,7 +1503,7 @@ static ide_startstop_t cdrom_pc_intr (id
 	}
 
 	/* Same drill for reading. */
-	else if ((ireason & 3) == 2) {
+	else if (ireason == 2) {
 		if (!rq->data) {
 			blk_dump_rq_flags(rq, "cdrom_pc_intr, read");
 			goto confused;