Re: Patch "scsi: sg: fix SG_DXFER_FROM_DEV transfers" has been added to the 4.12-stable tree

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

 




On 07/08/17 21:32, gregkh@xxxxxxxxxxxxxxxxxxx wrote:
> 
> This is a note to let you know that I've just added the patch titled
> 
>     scsi: sg: fix SG_DXFER_FROM_DEV transfers
> 
> to the 4.12-stable tree which can be found at:
>     http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
> 
> The filename of the patch is:
>      scsi-sg-fix-sg_dxfer_from_dev-transfers.patch
> and it can be found in the queue-4.12 subdirectory.
> 
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <stable@xxxxxxxxxxxxxxx> know about it.
> 

Johannes' commit message says that the transfer must have a length bigger than 0, so the code should return false if the
length is less than or equal to 0, but the test is for less than 0.

But in any case, there's another patch that removes all this sg_is_valid_dxfer() jiggery-pokery and replaces it with a
simpler test. It hasn't reached Linus' tree yet but is, I believe, cc'd to stable.

> 
> From 68c59fcea1f2c6a54c62aa896cc623c1b5bc9b47 Mon Sep 17 00:00:00 2001
> From: Johannes Thumshirn <jthumshirn@xxxxxxx>
> Date: Fri, 7 Jul 2017 10:56:38 +0200
> Subject: scsi: sg: fix SG_DXFER_FROM_DEV transfers
> 
> From: Johannes Thumshirn <jthumshirn@xxxxxxx>
> 
> commit 68c59fcea1f2c6a54c62aa896cc623c1b5bc9b47 upstream.
> 
> SG_DXFER_FROM_DEV transfers do not necessarily have a dxferp as we set
> it to NULL for the old sg_io read/write interface, but must have a
> length bigger than 0. This fixes a regression introduced by commit
> 28676d869bbb ("scsi: sg: check for valid direction before starting the
> request")
> 
> Signed-off-by: Johannes Thumshirn <jthumshirn@xxxxxxx>
> Fixes: 28676d869bbb ("scsi: sg: check for valid direction before starting the request")
> Reported-by: Chris Clayton <chris2553@xxxxxxxxxxxxxx>
> Tested-by: Chris Clayton <chris2553@xxxxxxxxxxxxxx>
> Cc: Douglas Gilbert <dgilbert@xxxxxxxxxxxx>
> Reviewed-by: Hannes Reinecke <hare@xxxxxxxx>
> Tested-by: Chris Clayton <chris2553@xxxxxxxxxxxxxx>
> Acked-by: Douglas Gilbert <dgilbert@xxxxxxxxxxxx>
> Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> 
> ---
>  drivers/scsi/sg.c |    5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> --- a/drivers/scsi/sg.c
> +++ b/drivers/scsi/sg.c
> @@ -758,8 +758,11 @@ static bool sg_is_valid_dxfer(sg_io_hdr_
>  		if (hp->dxferp || hp->dxfer_len > 0)
>  			return false;
>  		return true;
> -	case SG_DXFER_TO_DEV:
>  	case SG_DXFER_FROM_DEV:
> +		if (hp->dxfer_len < 0)
> +			return false;
> +		return true;
> +	case SG_DXFER_TO_DEV:
>  	case SG_DXFER_TO_FROM_DEV:
>  		if (!hp->dxferp || hp->dxfer_len == 0)
>  			return false;
> 
> 
> Patches currently in stable-queue which might be from jthumshirn@xxxxxxx are
> 
> queue-4.12/scsi-sg-fix-sg_dxfer_from_dev-transfers.patch
> 



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]