diff options
author | Bart Van Assche <bvanassche@acm.org> | 2022-02-18 11:50:40 -0800 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2022-02-22 21:11:03 -0500 |
commit | 76a3451b64c6d1718a651697670bd5dc557ed148 (patch) | |
tree | a555a4f225d6ae09abf2074346c4233406ebe280 /drivers/scsi/aacraid/linit.c | |
parent | d80624a2aec59a17046fa7bf20b70e97ab181e5d (diff) | |
download | linux-76a3451b64c6d1718a651697670bd5dc557ed148.tar.gz linux-76a3451b64c6d1718a651697670bd5dc557ed148.tar.bz2 linux-76a3451b64c6d1718a651697670bd5dc557ed148.zip |
scsi: aacraid: Move the SCSI pointer to private command data
Set .cmd_size in the SCSI host template instead of using the SCSI pointer
from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
from struct scsi_cmnd.
Link: https://lore.kernel.org/r/20220218195117.25689-13-bvanassche@acm.org
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/aacraid/linit.c')
-rw-r--r-- | drivers/scsi/aacraid/linit.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c index a911252075a6..b91b72b923ec 100644 --- a/drivers/scsi/aacraid/linit.c +++ b/drivers/scsi/aacraid/linit.c @@ -241,10 +241,9 @@ static struct aac_driver_ident aac_drivers[] = { static int aac_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *cmd) { - int r = 0; - cmd->SCp.phase = AAC_OWNER_LOWLEVEL; - r = (aac_scsi_cmd(cmd) ? FAILED : 0); - return r; + aac_priv(cmd)->owner = AAC_OWNER_LOWLEVEL; + + return aac_scsi_cmd(cmd) ? FAILED : 0; } /** @@ -638,7 +637,7 @@ static bool fib_count_iter(struct scsi_cmnd *scmnd, void *data, bool reserved) { struct fib_count_data *fib_count = data; - switch (scmnd->SCp.phase) { + switch (aac_priv(scmnd)->owner) { case AAC_OWNER_FIRMWARE: fib_count->fwcnt++; break; @@ -680,6 +679,7 @@ static int get_num_of_incomplete_fibs(struct aac_dev *aac) static int aac_eh_abort(struct scsi_cmnd* cmd) { + struct aac_cmd_priv *cmd_priv = aac_priv(cmd); struct scsi_device * dev = cmd->device; struct Scsi_Host * host = dev->host; struct aac_dev * aac = (struct aac_dev *)host->hostdata; @@ -732,7 +732,7 @@ static int aac_eh_abort(struct scsi_cmnd* cmd) tmf->error_length = cpu_to_le32(FW_ERROR_BUFFER_SIZE); fib->hbacmd_size = sizeof(*tmf); - cmd->SCp.sent_command = 0; + cmd_priv->sent_command = 0; status = aac_hba_send(HBA_IU_TYPE_SCSI_TM_REQ, fib, (fib_callback) aac_hba_callback, @@ -744,7 +744,7 @@ static int aac_eh_abort(struct scsi_cmnd* cmd) } /* Wait up to 15 secs for completion */ for (count = 0; count < 15; ++count) { - if (cmd->SCp.sent_command) { + if (cmd_priv->sent_command) { ret = SUCCESS; break; } @@ -784,7 +784,7 @@ static int aac_eh_abort(struct scsi_cmnd* cmd) (fib->callback_data == cmd)) { fib->flags |= FIB_CONTEXT_FLAG_TIMED_OUT; - cmd->SCp.phase = + cmd_priv->owner = AAC_OWNER_ERROR_HANDLER; ret = SUCCESS; } @@ -811,7 +811,7 @@ static int aac_eh_abort(struct scsi_cmnd* cmd) (command->device == cmd->device)) { fib->flags |= FIB_CONTEXT_FLAG_TIMED_OUT; - command->SCp.phase = + aac_priv(command)->owner = AAC_OWNER_ERROR_HANDLER; if (command == cmd) ret = SUCCESS; @@ -1058,7 +1058,7 @@ static int aac_eh_bus_reset(struct scsi_cmnd* cmd) if (bus >= AAC_MAX_BUSES || cid >= AAC_MAX_TARGETS || info->devtype != AAC_DEVTYPE_NATIVE_RAW) { fib->flags |= FIB_CONTEXT_FLAG_EH_RESET; - cmd->SCp.phase = AAC_OWNER_ERROR_HANDLER; + aac_priv(cmd)->owner = AAC_OWNER_ERROR_HANDLER; } } } @@ -1507,6 +1507,7 @@ static struct scsi_host_template aac_driver_template = { #endif .emulated = 1, .no_write_same = 1, + .cmd_size = sizeof(struct aac_cmd_priv), }; static void __aac_shutdown(struct aac_dev * aac) |