ide-cd: use whole request_sense buffer in EH
authorBorislav Petkov <petkovbb@gmail.com>
Thu, 23 Apr 2009 06:30:29 +0000 (08:30 +0200)
committerBorislav Petkov <petkovbb@gmail.com>
Fri, 15 May 2009 04:44:41 +0000 (06:44 +0200)
Now that we use a static request_sense buffer, use it instead of the
first 18 bytes only. Also, remove sense-arg to cdrom_analyze_sense_data
and cdrom_log_sense since we can access it through drive->sense_data
now.

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
drivers/ide/ide-cd.c

index 4c7792fd5f934edddbcf623bacd860e25a426289..dca41ae0d0489de16d12f618f0979324a9d533a0 100644 (file)
@@ -92,16 +92,16 @@ static void cdrom_saw_media_change(ide_drive_t *drive)
        drive->atapi_flags &= ~IDE_AFLAG_TOC_VALID;
 }
 
-static int cdrom_log_sense(ide_drive_t *drive, struct request *rq,
-                          struct request_sense *sense)
+static int cdrom_log_sense(ide_drive_t *drive, struct request *rq)
 {
+       struct request_sense *sense = &drive->sense_data;
        int log = 0;
 
-       ide_debug_log(IDE_DBG_SENSE, "sense_key: 0x%x", sense->sense_key);
-
        if (!sense || !rq || (rq->cmd_flags & REQ_QUIET))
                return 0;
 
+       ide_debug_log(IDE_DBG_SENSE, "sense_key: 0x%x", sense->sense_key);
+
        switch (sense->sense_key) {
        case NO_SENSE:
        case RECOVERED_ERROR:
@@ -140,12 +140,12 @@ static int cdrom_log_sense(ide_drive_t *drive, struct request *rq,
 }
 
 static void cdrom_analyze_sense_data(ide_drive_t *drive,
-                             struct request *failed_command,
-                             struct request_sense *sense)
+                                    struct request *failed_command)
 {
+       struct request_sense *sense = &drive->sense_data;
+       struct cdrom_info *info = drive->driver_data;
        unsigned long sector;
        unsigned long bio_sectors;
-       struct cdrom_info *info = drive->driver_data;
 
        ide_debug_log(IDE_DBG_SENSE, "error_code: 0x%x, sense_key: 0x%x",
                                     sense->error_code, sense->sense_key);
@@ -154,7 +154,7 @@ static void cdrom_analyze_sense_data(ide_drive_t *drive,
                ide_debug_log(IDE_DBG_SENSE, "failed cmd: 0x%x",
                                             failed_command->cmd[0]);
 
-       if (!cdrom_log_sense(drive, failed_command, sense))
+       if (!cdrom_log_sense(drive, failed_command))
                return;
 
        /*
@@ -225,15 +225,14 @@ static void ide_cd_complete_failed_rq(ide_drive_t *drive, struct request *rq)
                         * sense pointer set.
                         */
                        memcpy(failed->sense, sense, 18);
-                       sense = failed->sense;
                        failed->sense_len = rq->sense_len;
                }
-               cdrom_analyze_sense_data(drive, failed, sense);
+               cdrom_analyze_sense_data(drive, failed);
 
                if (ide_end_rq(drive, failed, -EIO, blk_rq_bytes(failed)))
                        BUG();
        } else
-               cdrom_analyze_sense_data(drive, NULL, sense);
+               cdrom_analyze_sense_data(drive, NULL);
 }
 
 
This page took 0.030327 seconds and 5 git commands to generate.