diff mbox

Nero 4 Linux applications broken in 4.12

Message ID 20170705124229.GH4076@linux-x5ow.site (mailing list archive)
State Superseded, archived
Headers show

Commit Message

Johannes Thumshirn July 5, 2017, 12:42 p.m. UTC
On Wed, Jul 05, 2017 at 01:19:09PM +0100, Chris Clayton wrote:
> I'm happy to test any patches you may propose.

Can you verify this fix? Preferedably with using Nero. It passes my small
reproducer:

From f52502180cc3843f8acc956253af2575245546a8 Mon Sep 17 00:00:00 2001
From: Johannes Thumshirn <jthumshirn@suse.de>
Date: Wed, 5 Jul 2017 14:31:47 +0200
Subject: [PATCH] scsi: sg: fix SG_DXFER_FROM_DEV transfers

SG_DXFER_FROM_DEV transfers do not have a dxferp as we set it to NULL,
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@suse.de>
Fixes: 28676d869bbb ("scsi: sg: check for valid direction before starting the request")
---
 drivers/scsi/sg.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Chris Clayton July 5, 2017, 1:45 p.m. UTC | #1
On 05/07/17 13:42, Johannes Thumshirn wrote:
> On Wed, Jul 05, 2017 at 01:19:09PM +0100, Chris Clayton wrote:
>> I'm happy to test any patches you may propose.
> 
> Can you verify this fix? Preferedably with using Nero. It passes my small
> reproducer:
> 
Thanks Johannes.

With your patch applied to 4.12.0, all three of the nero applications can now detect my drives again.

Excellent work! Thank you.

Tested-by: Chris Clayton <chris2553@googlemail.com>

> From f52502180cc3843f8acc956253af2575245546a8 Mon Sep 17 00:00:00 2001
> From: Johannes Thumshirn <jthumshirn@suse.de>
> Date: Wed, 5 Jul 2017 14:31:47 +0200
> Subject: [PATCH] scsi: sg: fix SG_DXFER_FROM_DEV transfers
> 
> SG_DXFER_FROM_DEV transfers do not have a dxferp as we set it to NULL,
> 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@suse.de>
> Fixes: 28676d869bbb ("scsi: sg: check for valid direction before starting the request")
> ---
>  drivers/scsi/sg.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
> index 21225d62b0c1..3c91593260aa 100644
> --- a/drivers/scsi/sg.c
> +++ b/drivers/scsi/sg.c
> @@ -758,8 +758,11 @@ static bool sg_is_valid_dxfer(sg_io_hdr_t *hp)
>  		if (hp->dxferp || hp->dxfer_len > 0)
>  			return false;
>  		return true;
> -	case SG_DXFER_TO_DEV:
>  	case SG_DXFER_FROM_DEV:
> +		if (hp->dxferp || 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;
>
Johannes Thumshirn July 5, 2017, 1:49 p.m. UTC | #2
On Wed, Jul 05, 2017 at 02:45:06PM +0100, Chris Clayton wrote:
> With your patch applied to 4.12.0, all three of the nero applications can now detect my drives again.
> 
> Excellent work! Thank you.
> 
> Tested-by: Chris Clayton <chris2553@googlemail.com>

Thanks for confirmation.
diff mbox

Patch

diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index 21225d62b0c1..3c91593260aa 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -758,8 +758,11 @@  static bool sg_is_valid_dxfer(sg_io_hdr_t *hp)
 		if (hp->dxferp || hp->dxfer_len > 0)
 			return false;
 		return true;
-	case SG_DXFER_TO_DEV:
 	case SG_DXFER_FROM_DEV:
+		if (hp->dxferp || 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;