Commit 504540d0 authored by Bart Van Assche's avatar Bart Van Assche Committed by Martin K. Petersen

scsi: qla1280: 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-42-bvanassche@acm.orgReviewed-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
Reviewed-by: default avatarHimanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: default avatarBart Van Assche <bvanassche@acm.org>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 4a938517
...@@ -477,13 +477,6 @@ __setup("qla1280=", qla1280_setup); ...@@ -477,13 +477,6 @@ __setup("qla1280=", qla1280_setup);
#endif #endif
/*
* We use the scsi_pointer structure that's included with each scsi_command
* to overlay our struct srb over it. qla1280_init() checks that a srb is not
* bigger than a scsi_pointer.
*/
#define CMD_SP(Cmnd) &Cmnd->SCp
#define CMD_CDBLEN(Cmnd) Cmnd->cmd_len #define CMD_CDBLEN(Cmnd) Cmnd->cmd_len
#define CMD_CDBP(Cmnd) Cmnd->cmnd #define CMD_CDBP(Cmnd) Cmnd->cmnd
#define CMD_SNSP(Cmnd) Cmnd->sense_buffer #define CMD_SNSP(Cmnd) Cmnd->sense_buffer
...@@ -693,7 +686,7 @@ static int qla1280_queuecommand_lck(struct scsi_cmnd *cmd) ...@@ -693,7 +686,7 @@ static int qla1280_queuecommand_lck(struct scsi_cmnd *cmd)
{ {
struct Scsi_Host *host = cmd->device->host; struct Scsi_Host *host = cmd->device->host;
struct scsi_qla_host *ha = (struct scsi_qla_host *)host->hostdata; struct scsi_qla_host *ha = (struct scsi_qla_host *)host->hostdata;
struct srb *sp = (struct srb *)CMD_SP(cmd); struct srb *sp = scsi_cmd_priv(cmd);
int status; int status;
sp->cmd = cmd; sp->cmd = cmd;
...@@ -828,7 +821,7 @@ qla1280_error_action(struct scsi_cmnd *cmd, enum action action) ...@@ -828,7 +821,7 @@ qla1280_error_action(struct scsi_cmnd *cmd, enum action action)
ENTER("qla1280_error_action"); ENTER("qla1280_error_action");
ha = (struct scsi_qla_host *)(CMD_HOST(cmd)->hostdata); ha = (struct scsi_qla_host *)(CMD_HOST(cmd)->hostdata);
sp = (struct srb *)CMD_SP(cmd); sp = scsi_cmd_priv(cmd);
bus = SCSI_BUS_32(cmd); bus = SCSI_BUS_32(cmd);
target = SCSI_TCN_32(cmd); target = SCSI_TCN_32(cmd);
lun = SCSI_LUN_32(cmd); lun = SCSI_LUN_32(cmd);
...@@ -3959,7 +3952,7 @@ __qla1280_print_scsi_cmd(struct scsi_cmnd *cmd) ...@@ -3959,7 +3952,7 @@ __qla1280_print_scsi_cmd(struct scsi_cmnd *cmd)
int i; int i;
ha = (struct scsi_qla_host *)host->hostdata; ha = (struct scsi_qla_host *)host->hostdata;
sp = (struct srb *)CMD_SP(cmd); sp = scsi_cmd_priv(cmd);
printk("SCSI Command @= 0x%p, Handle=0x%p\n", cmd, CMD_HANDLE(cmd)); printk("SCSI Command @= 0x%p, Handle=0x%p\n", cmd, CMD_HANDLE(cmd));
printk(" chan=%d, target = 0x%02x, lun = 0x%02x, cmd_len = 0x%02x\n", printk(" chan=%d, target = 0x%02x, lun = 0x%02x, cmd_len = 0x%02x\n",
SCSI_BUS_32(cmd), SCSI_TCN_32(cmd), SCSI_LUN_32(cmd), SCSI_BUS_32(cmd), SCSI_TCN_32(cmd), SCSI_LUN_32(cmd),
...@@ -3979,7 +3972,6 @@ __qla1280_print_scsi_cmd(struct scsi_cmnd *cmd) ...@@ -3979,7 +3972,6 @@ __qla1280_print_scsi_cmd(struct scsi_cmnd *cmd)
} */ } */
printk(" tag=%d, transfersize=0x%x \n", printk(" tag=%d, transfersize=0x%x \n",
scsi_cmd_to_rq(cmd)->tag, cmd->transfersize); scsi_cmd_to_rq(cmd)->tag, cmd->transfersize);
printk(" SP=0x%p\n", CMD_SP(cmd));
printk(" underflow size = 0x%x, direction=0x%x\n", printk(" underflow size = 0x%x, direction=0x%x\n",
cmd->underflow, cmd->sc_data_direction); cmd->underflow, cmd->sc_data_direction);
} }
...@@ -4139,6 +4131,7 @@ static struct scsi_host_template qla1280_driver_template = { ...@@ -4139,6 +4131,7 @@ static struct scsi_host_template qla1280_driver_template = {
.can_queue = MAX_OUTSTANDING_COMMANDS, .can_queue = MAX_OUTSTANDING_COMMANDS,
.this_id = -1, .this_id = -1,
.sg_tablesize = SG_ALL, .sg_tablesize = SG_ALL,
.cmd_size = sizeof(struct srb),
}; };
...@@ -4351,12 +4344,6 @@ static struct pci_driver qla1280_pci_driver = { ...@@ -4351,12 +4344,6 @@ static struct pci_driver qla1280_pci_driver = {
static int __init static int __init
qla1280_init(void) qla1280_init(void)
{ {
if (sizeof(struct srb) > sizeof(struct scsi_pointer)) {
printk(KERN_WARNING
"qla1280: struct srb too big, aborting\n");
return -EINVAL;
}
#ifdef MODULE #ifdef MODULE
/* /*
* If we are called as a module, the qla1280 pointer may not be null * If we are called as a module, the qla1280 pointer may not be null
......
...@@ -87,8 +87,7 @@ ...@@ -87,8 +87,7 @@
#define RESPONSE_ENTRY_CNT 63 /* Number of response entries. */ #define RESPONSE_ENTRY_CNT 63 /* Number of response entries. */
/* /*
* SCSI Request Block structure (sp) that is placed * SCSI Request Block structure (sp) that occurs after each struct scsi_cmnd.
* on cmd->SCp location of every I/O
*/ */
struct srb { struct srb {
struct list_head list; /* (8/16) LU queue */ struct list_head list; /* (8/16) LU queue */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment