forked from Minki/linux
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.org Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> 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>
This commit is contained in:
parent
4a938517fb
commit
504540d00f
@ -477,13 +477,6 @@ __setup("qla1280=", qla1280_setup);
|
||||
#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_CDBP(Cmnd) Cmnd->cmnd
|
||||
#define CMD_SNSP(Cmnd) Cmnd->sense_buffer
|
||||
@ -693,7 +686,7 @@ static int qla1280_queuecommand_lck(struct scsi_cmnd *cmd)
|
||||
{
|
||||
struct Scsi_Host *host = cmd->device->host;
|
||||
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;
|
||||
|
||||
sp->cmd = cmd;
|
||||
@ -828,7 +821,7 @@ qla1280_error_action(struct scsi_cmnd *cmd, enum action action)
|
||||
ENTER("qla1280_error_action");
|
||||
|
||||
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);
|
||||
target = SCSI_TCN_32(cmd);
|
||||
lun = SCSI_LUN_32(cmd);
|
||||
@ -3959,7 +3952,7 @@ __qla1280_print_scsi_cmd(struct scsi_cmnd *cmd)
|
||||
int i;
|
||||
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(" 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),
|
||||
@ -3979,7 +3972,6 @@ __qla1280_print_scsi_cmd(struct scsi_cmnd *cmd)
|
||||
} */
|
||||
printk(" tag=%d, transfersize=0x%x \n",
|
||||
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",
|
||||
cmd->underflow, cmd->sc_data_direction);
|
||||
}
|
||||
@ -4139,6 +4131,7 @@ static struct scsi_host_template qla1280_driver_template = {
|
||||
.can_queue = MAX_OUTSTANDING_COMMANDS,
|
||||
.this_id = -1,
|
||||
.sg_tablesize = SG_ALL,
|
||||
.cmd_size = sizeof(struct srb),
|
||||
};
|
||||
|
||||
|
||||
@ -4351,12 +4344,6 @@ static struct pci_driver qla1280_pci_driver = {
|
||||
static int __init
|
||||
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
|
||||
/*
|
||||
* If we are called as a module, the qla1280 pointer may not be null
|
||||
|
@ -87,8 +87,7 @@
|
||||
#define RESPONSE_ENTRY_CNT 63 /* Number of response entries. */
|
||||
|
||||
/*
|
||||
* SCSI Request Block structure (sp) that is placed
|
||||
* on cmd->SCp location of every I/O
|
||||
* SCSI Request Block structure (sp) that occurs after each struct scsi_cmnd.
|
||||
*/
|
||||
struct srb {
|
||||
struct list_head list; /* (8/16) LU queue */
|
||||
|
Loading…
Reference in New Issue
Block a user