[PATCH 057/117] ide: Convert to the scsi_status union

Bart Van Assche
2021-04-20T00:10:14Z

Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/ide/ide-atapi.c | 10 +++++-----
drivers/ide/ide-cd.c | 20 ++++++++++----------
drivers/ide/ide-cd_ioctl.c | 2 +-
drivers/ide/ide-devsets.c | 4 ++--
drivers/ide/ide-dma.c | 2 +-
drivers/ide/ide-eh.c | 36 ++++++++++++++++++------------------
drivers/ide/ide-floppy.c | 10 +++++-----
drivers/ide/ide-io.c | 10 +++++-----
drivers/ide/ide-ioctls.c | 4 ++--
drivers/ide/ide-park.c | 2 +-
drivers/ide/ide-pm.c | 6 +++---
drivers/ide/ide-tape.c | 4 ++--
drivers/ide/ide-taskfile.c | 6 +++---
13 files changed, 58 insertions(+), 58 deletions(-)

diff --git a/drivers/ide/ide-atapi.c b/drivers/ide/ide-atapi.c
index a1ce9f5ac3aa..92805a68a02e 100644
--- a/drivers/ide/ide-atapi.c
+++ b/drivers/ide/ide-atapi.c
@@ -108,7 +108,7 @@ int ide_queue_pc_tail(ide_drive_t *drive, struct gendisk *disk,
if (drive->media == ide_tape)
scsi_req(rq)->cmd[13] = REQ_IDETAPE_PC1;
blk_execute_rq(disk, rq, 0);
- error = scsi_req(rq)->result ? -EIO : 0;
+ error = scsi_req(rq)->status.combined ? -EIO : 0;
put_req:
blk_put_request(rq);
return error;
@@ -471,7 +471,7 @@ static ide_startstop_t ide_pc_intr(ide_drive_t *drive)
debug_log("%s: I/O error\n", drive->name);

if (drive->media != ide_tape)
- scsi_req(pc->rq)->result++;
+ scsi_req(pc->rq)->status.combined++;

if (scsi_req(rq)->cmd[0] == REQUEST_SENSE) {
printk(KERN_ERR PFX "%s: I/O error in request "
@@ -505,13 +505,13 @@ static ide_startstop_t ide_pc_intr(ide_drive_t *drive)
drive->failed_pc = NULL;

if (ata_misc_request(rq)) {
- scsi_req(rq)->result = 0;
+ scsi_req(rq)->status.combined = 0;
error = BLK_STS_OK;
} else {

if (blk_rq_is_passthrough(rq) && uptodate <= 0) {
- if (scsi_req(rq)->result == 0)
- scsi_req(rq)->result = -EIO;
+ if (scsi_req(rq)->status.combined == 0)
+ scsi_req(rq)->status.combined = -EIO;
}

error = uptodate ? BLK_STS_OK : BLK_STS_IOERR;
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
index cffbcc27a34c..4a3e7ab6d6f7 100644
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -248,10 +248,10 @@ static int ide_cd_breathe(ide_drive_t *drive, struct request *rq)

struct cdrom_info *info = drive->driver_data;

- if (!scsi_req(rq)->result)
+ if (!scsi_req(rq)->status.combined)
info->write_timeout = jiffies + ATAPI_WAIT_WRITE_BUSY;

- scsi_req(rq)->result = 1;
+ scsi_req(rq)->status.combined = 1;

if (time_after(jiffies, info->write_timeout))
return 0;
@@ -306,8 +306,8 @@ static int cdrom_decode_status(ide_drive_t *drive, u8 stat)
}

/* if we have an error, pass CHECK_CONDITION as the SCSI status byte */
- if (blk_rq_is_scsi(rq) && !scsi_req(rq)->result)
- scsi_req(rq)->result = SAM_STAT_CHECK_CONDITION;
+ if (blk_rq_is_scsi(rq) && !scsi_req(rq)->status.combined)
+ scsi_req(rq)->status.combined = SAM_STAT_CHECK_CONDITION;

if (blk_noretry_request(rq))
do_end_request = 1;
@@ -337,7 +337,7 @@ static int cdrom_decode_status(ide_drive_t *drive, u8 stat)
* Arrange to retry the request but be sure to give up if we've
* retried too many times.
*/
- if (++scsi_req(rq)->result > ERROR_MAX)
+ if (++scsi_req(rq)->status.combined > ERROR_MAX)
do_end_request = 1;
break;
case ILLEGAL_REQUEST:
@@ -384,7 +384,7 @@ static int cdrom_decode_status(ide_drive_t *drive, u8 stat)
/* go to the default handler for other errors */
ide_error(drive, "cdrom_decode_status", stat);
return 1;
- } else if (++scsi_req(rq)->result > ERROR_MAX)
+ } else if (++scsi_req(rq)->status.combined > ERROR_MAX)
/* we've racked up too many retries, abort */
do_end_request = 1;
}
@@ -468,7 +468,7 @@ int ide_cd_queue_pc(ide_drive_t *drive, const unsigned char *cmd,
}

blk_execute_rq(info->disk, rq, 0);
- error = scsi_req(rq)->result ? -EIO : 0;
+ error = scsi_req(rq)->status.combined ? -EIO : 0;

if (buffer)
*bufflen = scsi_req(rq)->resid_len;
@@ -585,7 +585,7 @@ static bool ide_cdrom_prep_pc(struct request *rq)
* appropriate action
*/
if (c[0] == MODE_SENSE || c[0] == MODE_SELECT) {
- scsi_req(rq)->result = ILLEGAL_REQUEST;
+ scsi_req(rq)->status.combined = ILLEGAL_REQUEST;
return false;
}

@@ -773,8 +773,8 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive)
if (cmd->nleft == 0)
uptodate = 1;
} else {
- if (uptodate <= 0 && scsi_req(rq)->result == 0)
- scsi_req(rq)->result = -EIO;
+ if (uptodate <= 0 && scsi_req(rq)->status.combined == 0)
+ scsi_req(rq)->status.combined = -EIO;
}

if (uptodate == 0 && rq->bio)
diff --git a/drivers/ide/ide-cd_ioctl.c b/drivers/ide/ide-cd_ioctl.c
index 011eab9c69b7..3dd1956df9b8 100644
--- a/drivers/ide/ide-cd_ioctl.c
+++ b/drivers/ide/ide-cd_ioctl.c
@@ -300,7 +300,7 @@ int ide_cdrom_reset(struct cdrom_device_info *cdi)
ide_req(rq)->type = ATA_PRIV_MISC;
rq->rq_flags = RQF_QUIET;
blk_execute_rq(cd->disk, rq, 0);
- ret = scsi_req(rq)->result ? -EIO : 0;
+ ret = scsi_req(rq)->status.combined ? -EIO : 0;
blk_put_request(rq);
/*
* A reset will unlock the door. If it was previously locked,
diff --git a/drivers/ide/ide-devsets.c b/drivers/ide/ide-devsets.c
index ca1d4b3d3878..c56563a1e84d 100644
--- a/drivers/ide/ide-devsets.c
+++ b/drivers/ide/ide-devsets.c
@@ -174,7 +174,7 @@ int ide_devset_execute(ide_drive_t *drive, const struct ide_devset *setting,
ide_req(rq)->special = setting->set;

blk_execute_rq(NULL, rq, 0);
- ret = scsi_req(rq)->result;
+ ret = scsi_req(rq)->status.combined;
blk_put_request(rq);

return ret;
@@ -186,7 +186,7 @@ ide_startstop_t ide_do_devset(ide_drive_t *drive, struct request *rq)

err = setfunc(drive, *(int *)&scsi_req(rq)->cmd[1]);
if (err)
- scsi_req(rq)->result = err;
+ scsi_req(rq)->status.combined = err;
ide_complete_rq(drive, 0, blk_rq_bytes(rq));
return ide_stopped;
}
diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c
index 6f344654ef22..344a4613f653 100644
--- a/drivers/ide/ide-dma.c
+++ b/drivers/ide/ide-dma.c
@@ -488,7 +488,7 @@ ide_startstop_t ide_dma_timeout_retry(ide_drive_t *drive, int error)
* make sure request is sane
*/
if (hwif->rq)
- scsi_req(hwif->rq)->result = 0;
+ scsi_req(hwif->rq)->status.combined = 0;
return ret;
}

diff --git a/drivers/ide/ide-eh.c b/drivers/ide/ide-eh.c
index 2f378213e9b5..0aef620c22cf 100644
--- a/drivers/ide/ide-eh.c
+++ b/drivers/ide/ide-eh.c
@@ -13,7 +13,7 @@ static ide_startstop_t ide_ata_error(ide_drive_t *drive, struct request *rq,
if ((stat & ATA_BUSY) ||
((stat & ATA_DF) && (drive->dev_flags & IDE_DFLAG_NOWERR) == 0)) {
/* other bits are useless when BUSY */
- scsi_req(rq)->result |= ERROR_RESET;
+ scsi_req(rq)->status.combined |= ERROR_RESET;
} else if (stat & ATA_ERR) {
/* err has different meaning on cdrom and tape */
if (err == ATA_ABORTED) {
@@ -26,10 +26,10 @@ static ide_startstop_t ide_ata_error(ide_drive_t *drive, struct request *rq,
drive->crc_count++;
} else if (err & (ATA_BBK | ATA_UNC)) {
/* retries won't help these */
- scsi_req(rq)->result = ERROR_MAX;
+ scsi_req(rq)->status.combined = ERROR_MAX;
} else if (err & ATA_TRK0NF) {
/* help it find track zero */
- scsi_req(rq)->result |= ERROR_RECAL;
+ scsi_req(rq)->status.combined |= ERROR_RECAL;
}
}

@@ -40,23 +40,23 @@ static ide_startstop_t ide_ata_error(ide_drive_t *drive, struct request *rq,
ide_pad_transfer(drive, READ, nsect * SECTOR_SIZE);
}

- if (scsi_req(rq)->result >= ERROR_MAX || blk_noretry_request(rq)) {
+ if (scsi_req(rq)->status.combined >= ERROR_MAX || blk_noretry_request(rq)) {
ide_kill_rq(drive, rq);
return ide_stopped;
}

if (hwif->tp_ops->read_status(hwif) & (ATA_BUSY | ATA_DRQ))
- scsi_req(rq)->result |= ERROR_RESET;
+ scsi_req(rq)->status.combined |= ERROR_RESET;

- if ((scsi_req(rq)->result & ERROR_RESET) == ERROR_RESET) {
- ++scsi_req(rq)->result;
+ if ((scsi_req(rq)->status.combined & ERROR_RESET) == ERROR_RESET) {
+ ++scsi_req(rq)->status.combined;
return ide_do_reset(drive);
}

- if ((scsi_req(rq)->result & ERROR_RECAL) == ERROR_RECAL)
+ if ((scsi_req(rq)->status.combined & ERROR_RECAL) == ERROR_RECAL)
drive->special_flags |= IDE_SFLAG_RECALIBRATE;

- ++scsi_req(rq)->result;
+ ++scsi_req(rq)->status.combined;

return ide_stopped;
}
@@ -69,7 +69,7 @@ static ide_startstop_t ide_atapi_error(ide_drive_t *drive, struct request *rq,
if ((stat & ATA_BUSY) ||
((stat & ATA_DF) && (drive->dev_flags & IDE_DFLAG_NOWERR) == 0)) {
/* other bits are useless when BUSY */
- scsi_req(rq)->result |= ERROR_RESET;
+ scsi_req(rq)->status.combined |= ERROR_RESET;
} else {
/* add decoding error stuff */
}
@@ -78,14 +78,14 @@ static ide_startstop_t ide_atapi_error(ide_drive_t *drive, struct request *rq,
/* force an abort */
hwif->tp_ops->exec_command(hwif, ATA_CMD_IDLEIMMEDIATE);

- if (scsi_req(rq)->result >= ERROR_MAX) {
+ if (scsi_req(rq)->status.combined >= ERROR_MAX) {
ide_kill_rq(drive, rq);
} else {
- if ((scsi_req(rq)->result & ERROR_RESET) == ERROR_RESET) {
- ++scsi_req(rq)->result;
+ if ((scsi_req(rq)->status.combined & ERROR_RESET) == ERROR_RESET) {
+ ++scsi_req(rq)->status.combined;
return ide_do_reset(drive);
}
- ++scsi_req(rq)->result;
+ ++scsi_req(rq)->status.combined;
}

return ide_stopped;
@@ -131,11 +131,11 @@ ide_startstop_t ide_error(ide_drive_t *drive, const char *msg, u8 stat)
if (cmd)
ide_complete_cmd(drive, cmd, stat, err);
} else if (ata_pm_request(rq)) {
- scsi_req(rq)->result = 1;
+ scsi_req(rq)->status.combined = 1;
ide_complete_pm_rq(drive, rq);
return ide_stopped;
}
- scsi_req(rq)->result = err;
+ scsi_req(rq)->status.combined = err;
ide_complete_rq(drive, err ? BLK_STS_IOERR : BLK_STS_OK, blk_rq_bytes(rq));
return ide_stopped;
}
@@ -150,8 +150,8 @@ static inline void ide_complete_drive_reset(ide_drive_t *drive, blk_status_t err

if (rq && ata_misc_request(rq) &&
scsi_req(rq)->cmd[0] == REQ_DRIVE_RESET) {
- if (err <= 0 && scsi_req(rq)->result == 0)
- scsi_req(rq)->result = -EIO;
+ if (err <= 0 && scsi_req(rq)->status.combined == 0)
+ scsi_req(rq)->status.combined = -EIO;
ide_complete_rq(drive, err, blk_rq_bytes(rq));
}
}
diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c
index f5a2870aaf54..bad2eb12daa8 100644
--- a/drivers/ide/ide-floppy.c
+++ b/drivers/ide/ide-floppy.c
@@ -100,7 +100,7 @@ static int ide_floppy_callback(ide_drive_t *drive, int dsc)
}

if (ata_misc_request(rq))
- scsi_req(rq)->result = uptodate ? 0 : IDE_DRV_ERROR_GENERAL;
+ scsi_req(rq)->status.combined = uptodate ? 0 : IDE_DRV_ERROR_GENERAL;

return uptodate;
}
@@ -241,7 +241,7 @@ static ide_startstop_t ide_floppy_do_request(ide_drive_t *drive,
? rq->rq_disk->disk_name
: "dev?"));

- if (scsi_req(rq)->result >= ERROR_MAX) {
+ if (scsi_req(rq)->status.combined >= ERROR_MAX) {
if (drive->failed_pc) {
ide_floppy_report_error(floppy, drive->failed_pc);
drive->failed_pc = NULL;
@@ -249,7 +249,7 @@ static ide_startstop_t ide_floppy_do_request(ide_drive_t *drive,
printk(KERN_ERR PFX "%s: I/O error\n", drive->name);

if (ata_misc_request(rq)) {
- scsi_req(rq)->result = 0;
+ scsi_req(rq)->status.combined = 0;
ide_complete_rq(drive, BLK_STS_OK, blk_rq_bytes(rq));
return ide_stopped;
} else
@@ -303,8 +303,8 @@ static ide_startstop_t ide_floppy_do_request(ide_drive_t *drive,
return ide_floppy_issue_pc(drive, &cmd, pc);
out_end:
drive->failed_pc = NULL;
- if (blk_rq_is_passthrough(rq) && scsi_req(rq)->result == 0)
- scsi_req(rq)->result = -EIO;
+ if (blk_rq_is_passthrough(rq) && scsi_req(rq)->status.combined == 0)
+ scsi_req(rq)->status.combined = -EIO;
ide_complete_rq(drive, BLK_STS_IOERR, blk_rq_bytes(rq));
return ide_stopped;
}
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index 4867b67b60d6..bda2093aed1c 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -151,12 +151,12 @@ void ide_kill_rq(ide_drive_t *drive, struct request *rq)
drive->failed_pc = NULL;

if ((media == ide_floppy || media == ide_tape) && drv_req) {
- scsi_req(rq)->result = 0;
+ scsi_req(rq)->status.combined = 0;
} else {
if (media == ide_tape)
- scsi_req(rq)->result = IDE_DRV_ERROR_GENERAL;
- else if (blk_rq_is_passthrough(rq) && scsi_req(rq)->result == 0)
- scsi_req(rq)->result = -EIO;
+ scsi_req(rq)->status.combined = IDE_DRV_ERROR_GENERAL;
+ else if (blk_rq_is_passthrough(rq) && scsi_req(rq)->status.combined == 0)
+ scsi_req(rq)->status.combined = -EIO;
}

ide_complete_rq(drive, BLK_STS_IOERR, blk_rq_bytes(rq));
@@ -284,7 +284,7 @@ static ide_startstop_t execute_drive_cmd (ide_drive_t *drive,
#ifdef DEBUG
printk("%s: DRIVE_CMD (null)\n", drive->name);
#endif
- scsi_req(rq)->result = 0;
+ scsi_req(rq)->status.combined = 0;
ide_complete_rq(drive, BLK_STS_OK, blk_rq_bytes(rq));

return ide_stopped;
diff --git a/drivers/ide/ide-ioctls.c b/drivers/ide/ide-ioctls.c
index 43fbc37d85c3..11999ebd5637 100644
--- a/drivers/ide/ide-ioctls.c
+++ b/drivers/ide/ide-ioctls.c
@@ -138,7 +138,7 @@ static int ide_cmd_ioctl(ide_drive_t *drive, void __user *argp)
rq = blk_get_request(drive->queue, REQ_OP_DRV_IN, 0);
ide_req(rq)->type = ATA_PRIV_TASKFILE;
blk_execute_rq(NULL, rq, 0);
- err = scsi_req(rq)->result ? -EIO : 0;
+ err = scsi_req(rq)->status.combined ? -EIO : 0;
blk_put_request(rq);

return err;
@@ -236,7 +236,7 @@ static int generic_drive_reset(ide_drive_t *drive)
scsi_req(rq)->cmd_len = 1;
scsi_req(rq)->cmd[0] = REQ_DRIVE_RESET;
blk_execute_rq(NULL, rq, 1);
- ret = scsi_req(rq)->result;
+ ret = scsi_req(rq)->status.combined;
blk_put_request(rq);
return ret;
}
diff --git a/drivers/ide/ide-park.c b/drivers/ide/ide-park.c
index a80a0f28f7b9..dd891bd3fe1b 100644
--- a/drivers/ide/ide-park.c
+++ b/drivers/ide/ide-park.c
@@ -38,7 +38,7 @@ static void issue_park_cmd(ide_drive_t *drive, unsigned long timeout)
ide_req(rq)->type = ATA_PRIV_MISC;
ide_req(rq)->special = &timeout;
blk_execute_rq(NULL, rq, 1);
- rc = scsi_req(rq)->result ? -EIO : 0;
+ rc = scsi_req(rq)->status.combined ? -EIO : 0;
blk_put_request(rq);
if (rc)
goto out;
diff --git a/drivers/ide/ide-pm.c b/drivers/ide/ide-pm.c
index d680b3e3295f..8058dbc1e03b 100644
--- a/drivers/ide/ide-pm.c
+++ b/drivers/ide/ide-pm.c
@@ -28,7 +28,7 @@ int generic_ide_suspend(struct device *dev, pm_message_t mesg)
rqpm.pm_state = mesg.event;

blk_execute_rq(NULL, rq, 0);
- ret = scsi_req(rq)->result ? -EIO : 0;
+ ret = scsi_req(rq)->status.combined ? -EIO : 0;
blk_put_request(rq);

if (ret == 0 && ide_port_acpi(hwif)) {
@@ -46,13 +46,13 @@ static int ide_pm_execute_rq(struct request *rq)

if (unlikely(blk_queue_dying(q))) {
rq->rq_flags |= RQF_QUIET;
- scsi_req(rq)->result = -ENXIO;
+ scsi_req(rq)->status.combined = -ENXIO;
blk_mq_end_request(rq, BLK_STS_OK);
return -ENXIO;
}
blk_execute_rq(NULL, rq, true);

- return scsi_req(rq)->result ? -EIO : 0;
+ return scsi_req(rq)->status.combined ? -EIO : 0;
}

int generic_ide_resume(struct device *dev)
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c
index fa05e7e7d609..d04b10c32dfa 100644
--- a/drivers/ide/ide-tape.c
+++ b/drivers/ide/ide-tape.c
@@ -367,7 +367,7 @@ static int ide_tape_callback(ide_drive_t *drive, int dsc)
err = pc->error;
}
}
- scsi_req(rq)->result = err;
+ scsi_req(rq)->status.combined = err;

return uptodate;
}
@@ -879,7 +879,7 @@ static int idetape_queue_rw_tail(ide_drive_t *drive, int cmd, int size)
tape->valid = 0;

ret = size;
- if (scsi_req(rq)->result == IDE_DRV_ERROR_GENERAL)
+ if (scsi_req(rq)->status.combined == IDE_DRV_ERROR_GENERAL)
ret = -EIO;
out_put:
blk_put_request(rq);
diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c
index 6665fc4724b9..a542201b81a9 100644
--- a/drivers/ide/ide-taskfile.c
+++ b/drivers/ide/ide-taskfile.c
@@ -279,7 +279,7 @@ static void ide_pio_datablock(ide_drive_t *drive, struct ide_cmd *cmd,
u8 saved_io_32bit = drive->io_32bit;

if (cmd->tf_flags & IDE_TFLAG_FS)
- scsi_req(cmd->rq)->result = 0;
+ scsi_req(cmd->rq)->status.combined = 0;

if (cmd->tf_flags & IDE_TFLAG_IO_16BIT)
drive->io_32bit = 0;
@@ -321,7 +321,7 @@ void ide_finish_cmd(ide_drive_t *drive, struct ide_cmd *cmd, u8 stat)
u8 set_xfer = !!(cmd->tf_flags & IDE_TFLAG_SET_XFER);

ide_complete_cmd(drive, cmd, stat, err);
- scsi_req(rq)->result = err;
+ scsi_req(rq)->status.combined = err;

if (err == 0 && set_xfer) {
ide_set_xfer_rate(drive, nsect);
@@ -444,7 +444,7 @@ int ide_raw_taskfile(ide_drive_t *drive, struct ide_cmd *cmd, u8 *buf,
cmd->rq = rq;

blk_execute_rq(NULL, rq, 0);
- error = scsi_req(rq)->result ? -EIO : 0;
+ error = scsi_req(rq)->status.combined ? -EIO : 0;
put_req:
blk_put_request(rq);
return error;