diff --git a/drivers/scsi/qla1280.c b/drivers/scsi/qla1280.c index 1dc56f4c89d8..0ab595c0870a 100644 --- a/drivers/scsi/qla1280.c +++ b/drivers/scsi/qla1280.c @@ -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 diff --git a/drivers/scsi/qla1280.h b/drivers/scsi/qla1280.h index e7820b5bca38..d309e2ca14de 100644 --- a/drivers/scsi/qla1280.h +++ b/drivers/scsi/qla1280.h @@ -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 */