Re: [PATCH 5/5] scsi: mvumi: use sg helper to operate sgl

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2019-06-10 at 23:03 +0800, Ming Lei wrote:
> The current way isn't safe for chained sgl, so use sgl helper to
> operate sgl.
> 
> Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx>
> ---
>  drivers/scsi/mvumi.c | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/scsi/mvumi.c b/drivers/scsi/mvumi.c
> index 1fb6f6ca627e..3881aa6bf4c4 100644
> --- a/drivers/scsi/mvumi.c
> +++ b/drivers/scsi/mvumi.c
> @@ -195,8 +195,7 @@ static int mvumi_make_sgl(struct mvumi_hba *mhba, struct scsi_cmnd *scmd,
>  	unsigned int sgnum = scsi_sg_count(scmd);
>  	dma_addr_t busaddr;
>  
> -	sg = scsi_sglist(scmd);
> -	*sg_count = dma_map_sg(&mhba->pdev->dev, sg, sgnum,
> +	*sg_count = dma_map_sg(&mhba->pdev->dev, scsi_sglist(scmd), sgnum,
>  			       scmd->sc_data_direction);
>  	if (*sg_count > mhba->max_sge) {
>  		dev_err(&mhba->pdev->dev,
> @@ -206,12 +205,12 @@ static int mvumi_make_sgl(struct mvumi_hba *mhba, struct scsi_cmnd *scmd,
>  			     scmd->sc_data_direction);
>  		return -1;
>  	}
> -	for (i = 0; i < *sg_count; i++) {
> -		busaddr = sg_dma_address(&sg[i]);
> +	scsi_for_each_sg(scmd, sg, *sg_count, i) {
> +		busaddr = sg_dma_address(sg);
>  		m_sg->baseaddr_l = cpu_to_le32(lower_32_bits(busaddr));
>  		m_sg->baseaddr_h = cpu_to_le32(upper_32_bits(busaddr));
>  		m_sg->flags = 0;
> -		sgd_setsz(mhba, m_sg, cpu_to_le32(sg_dma_len(&sg[i])));
> +		sgd_setsz(mhba, m_sg, cpu_to_le32(sg_dma_len(sg)));
>  		if ((i + 1) == *sg_count)
>  			m_sg->flags |= 1U << mhba->eot_flag;
>  

Reviewed-by: Ewan D. Milne <emilne@xxxxxxxxxx>




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux