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

Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ide/ide-cd.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Index: b/drivers/ide/ide-cd.c
===================================================================
--- a/drivers/ide/ide-cd.c
+++ 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;
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to