ACK: [PATCH][SRU Bionic] scsi: hisi_sas: Fix to only call scsi_get_prot_op() for non-NULL scsi_cmnd

Kleber Souza kleber.souza at canonical.com
Wed Dec 15 11:13:08 UTC 2021


On 06.12.21 20:06, dann frazier wrote:
> From: John Garry <john.garry at huawei.com>
>
> BugLink: https://launchpad.net/bugs/1953386
>
> 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: d6a9000b81be ("scsi: hisi_sas: Add support for DIF feature for v2 hw")
> Signed-off-by: John Garry <john.garry at huawei.com>
> Signed-off-by: Martin K. Petersen <martin.petersen at oracle.com>
> (cherry picked from commit e1ba0b0b44512c5a209526c09ea3eb7d256b6951)
> Signed-off-by: dann frazier <dann.frazier at canonical.com>

Acked-by: Kleber Sacilotto de Souza <kleber.souza at canonical.com>

Thanks

> ---
>   drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
> index 095c973b866d..c10c1300ceda 100644
> --- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
> +++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
> @@ -1033,8 +1033,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;
>   
> @@ -1049,6 +1049,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:





More information about the kernel-team mailing list