lkml.org 
[lkml]   [2017]   [Jul]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] scsi: sg: fix SG_DXFER_FROM_DEV transfers
    Date
    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")
    Reported-by: Chris Clayton <chris2553@googlemail.com>
    Tested-by: Chris Clayton <chris2553@googlemail.com>
    Cc: Doug Gilbert <dgilbert@interlog.com>
    ---
    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;
    --
    2.12.3
    \
     
     \ /
      Last update: 2017-07-05 15:50    [W:4.536 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site