lkml.org 
[lkml]   [2019]   [Mar]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 122/149] nvme-pci: add missing unlock for reset error
    Date
    4.19-stable review patch.  If anyone has any objections, please let me know.

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

    [ Upstream commit 4726bcf30fad37cc555cd9dcd6c73f2b2668c879 ]

    The reset work holds a mutex to prevent races with removal modifying the
    same resources, but was unlocking only on success. Unlock on failure
    too.

    Fixes: 5c959d73dba64 ("nvme-pci: fix rapid add remove sequence")
    Signed-off-by: Keith Busch <keith.busch@intel.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/nvme/host/pci.c | 8 +++++---
    1 file changed, 5 insertions(+), 3 deletions(-)

    diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
    index 6398ffbce6de..7b9ef8e734e7 100644
    --- a/drivers/nvme/host/pci.c
    +++ b/drivers/nvme/host/pci.c
    @@ -2263,15 +2263,15 @@ static void nvme_reset_work(struct work_struct *work)
    mutex_lock(&dev->shutdown_lock);
    result = nvme_pci_enable(dev);
    if (result)
    - goto out;
    + goto out_unlock;

    result = nvme_pci_configure_admin_queue(dev);
    if (result)
    - goto out;
    + goto out_unlock;

    result = nvme_alloc_admin_tags(dev);
    if (result)
    - goto out;
    + goto out_unlock;

    /*
    * Limit the max command size to prevent iod->sg allocations going
    @@ -2354,6 +2354,8 @@ static void nvme_reset_work(struct work_struct *work)
    nvme_start_ctrl(&dev->ctrl);
    return;

    + out_unlock:
    + mutex_unlock(&dev->shutdown_lock);
    out:
    nvme_remove_dead_ctrl(dev, result);
    }
    --
    2.19.1


    \
     
     \ /
      Last update: 2019-03-12 18:41    [W:4.071 / U:0.748 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site