Re: [PATCH] Target/sbc: Don't use sg as iterator in sbc_verify_read

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

 



On Sun, 2014-02-23 at 14:20 +0200, Sagi Grimberg wrote:
> Because then this sg is passed to sbc_copy_prot which will
> hit a protection fault in cases we have more than a single sg.
> 
> Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
> ---

Applied + queued for the upcoming -rc5 PULL request.

Thanks Sagi!

--nab

>  drivers/target/target_core_sbc.c |   10 +++++-----
>  1 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/target/target_core_sbc.c b/drivers/target/target_core_sbc.c
> index edda77f..ae58fdf 100644
> --- a/drivers/target/target_core_sbc.c
> +++ b/drivers/target/target_core_sbc.c
> @@ -1221,7 +1221,7 @@ sbc_dif_verify_read(struct se_cmd *cmd, sector_t start, unsigned int sectors,
>  {
>  	struct se_device *dev = cmd->se_dev;
>  	struct se_dif_v1_tuple *sdt;
> -	struct scatterlist *dsg;
> +	struct scatterlist *dsg, *psg = sg;
>  	sector_t sector = start;
>  	void *daddr, *paddr;
>  	int i, j, offset = sg_off;
> @@ -1229,14 +1229,14 @@ sbc_dif_verify_read(struct se_cmd *cmd, sector_t start, unsigned int sectors,
>  
>  	for_each_sg(cmd->t_data_sg, dsg, cmd->t_data_nents, i) {
>  		daddr = kmap_atomic(sg_page(dsg)) + dsg->offset;
> -		paddr = kmap_atomic(sg_page(sg)) + sg->offset;
> +		paddr = kmap_atomic(sg_page(psg)) + sg->offset;
>  
>  		for (j = 0; j < dsg->length; j += dev->dev_attrib.block_size) {
>  
> -			if (offset >= sg->length) {
> +			if (offset >= psg->length) {
>  				kunmap_atomic(paddr);
> -				sg = sg_next(sg);
> -				paddr = kmap_atomic(sg_page(sg)) + sg->offset;
> +				psg = sg_next(psg);
> +				paddr = kmap_atomic(sg_page(psg)) + psg->offset;
>  				offset = 0;
>  			}
>  


--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Device Mapper]

  Powered by Linux