lkml.org 
[lkml]   [2017]   [Sep]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 45/66] scsi: storvsc: fix memory leak on ring buffer busy
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Long Li <longli@microsoft.com>

    commit 0208eeaa650c5c866a3242201678a19e6dc4a14e upstream.

    When storvsc is sending I/O to Hyper-v, it may allocate a bigger buffer
    descriptor for large data payload that can't fit into a pre-allocated
    buffer descriptor. This bigger buffer is freed on return path.

    If I/O request to Hyper-v fails due to ring buffer busy, the storvsc
    allocated buffer descriptor should also be freed.

    [mkp: applied by hand]

    Fixes: be0cf6ca301c ("scsi: storvsc: Set the tablesize based on the information given by the host")
    Signed-off-by: Long Li <longli@microsoft.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/scsi/storvsc_drv.c | 2 ++
    1 file changed, 2 insertions(+)

    --- a/drivers/scsi/storvsc_drv.c
    +++ b/drivers/scsi/storvsc_drv.c
    @@ -1511,6 +1511,8 @@ static int storvsc_queuecommand(struct S
    ret = storvsc_do_io(dev, cmd_request);

    if (ret == -EAGAIN) {
    + if (payload_sz > sizeof(cmd_request->mpb))
    + kfree(payload);
    /* no more space */
    return SCSI_MLQUEUE_DEVICE_BUSY;
    }

    \
     
     \ /
      Last update: 2017-09-24 23:28    [W:3.160 / U:1.268 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site