mirror of https://gitee.com/openkylin/linux.git
scsi: hisi_sas: Fix to only call scsi_get_prot_op() for non-NULL scsi_cmnd
A NULL-pointer dereference was introduced for TMF SSP commands from the
upstreaming reworking.
Fix this by relocating the scsi_get_prot_op() callsite.
Fixes: d6a9000b81
("scsi: hisi_sas: Add support for DIF feature for v2 hw")
Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
26889e5ec8
commit
e1ba0b0b44
|
@ -1035,8 +1035,8 @@ static void prep_ssp_v3_hw(struct hisi_hba *hisi_hba,
|
|||
struct sas_ssp_task *ssp_task = &task->ssp_task;
|
||||
struct scsi_cmnd *scsi_cmnd = ssp_task->cmd;
|
||||
struct hisi_sas_tmf_task *tmf = slot->tmf;
|
||||
unsigned char prot_op = scsi_get_prot_op(scsi_cmnd);
|
||||
int has_data = 0, priority = !!tmf;
|
||||
unsigned char prot_op;
|
||||
u8 *buf_cmd;
|
||||
u32 dw1 = 0, dw2 = 0, len = 0;
|
||||
|
||||
|
@ -1051,6 +1051,7 @@ static void prep_ssp_v3_hw(struct hisi_hba *hisi_hba,
|
|||
dw1 |= 2 << CMD_HDR_FRAME_TYPE_OFF;
|
||||
dw1 |= DIR_NO_DATA << CMD_HDR_DIR_OFF;
|
||||
} else {
|
||||
prot_op = scsi_get_prot_op(scsi_cmnd);
|
||||
dw1 |= 1 << CMD_HDR_FRAME_TYPE_OFF;
|
||||
switch (scsi_cmnd->sc_data_direction) {
|
||||
case DMA_TO_DEVICE:
|
||||
|
|
Loading…
Reference in New Issue