lkml.org 
[lkml]   [2018]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 099/171] scsi: qla2xxx: Avoid double completion of abort command
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

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

    [ Upstream commit 3a9910d7b686546dcc9986e790af17e148f1c888 ]

    qla2x00_tmf_sp_done() now deletes the timer that will run
    qla2x00_tmf_iocb_timeout(), but doesn't check whether the timer already
    expired. Check the return value from del_timer() to avoid calling
    complete() a second time.

    Fixes: 4440e46d5db7 ("[SCSI] qla2xxx: Add IOCB Abort command asynchronous ...")
    Fixes: 1514839b3664 ("scsi: qla2xxx: Fix NULL pointer crash due to active ...")
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Acked-by: Himanshu Madhani <himanshu.madhani@cavium.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/scsi/qla2xxx/qla_init.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
    index 5f66b6da65f2..b6d9e3104b89 100644
    --- a/drivers/scsi/qla2xxx/qla_init.c
    +++ b/drivers/scsi/qla2xxx/qla_init.c
    @@ -368,8 +368,8 @@ qla24xx_abort_sp_done(void *data, void *ptr, int res)
    srb_t *sp = (srb_t *)ptr;
    struct srb_iocb *abt = &sp->u.iocb_cmd;

    - del_timer(&sp->u.iocb_cmd.timer);
    - complete(&abt->u.abt.comp);
    + if (del_timer(&sp->u.iocb_cmd.timer))
    + complete(&abt->u.abt.comp);
    }

    static int
    --
    2.17.1


    \
     
     \ /
      Last update: 2018-11-08 23:22    [W:4.134 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site