• Keith Busch's avatar
    NVMe: Fix memory leak on retried commands · 0dfc70c3
    Keith Busch authored
    Resources are reallocated for requeued commands, so unmap and release
    the iod for the failed command.
    
    It's a pretty bad memory leak and causes a kernel hang if you remove a
    drive because of a busy dma pool. You'll get messages spewing like this:
    
      nvme 0000:xx:xx.x: dma_pool_destroy prp list 256, ffff880420dec000 busy
    
    and lock up pci and the driver since removal never completes while
    holding a lock.
    
    Cc: stable@vger.kernel.org
    Cc: <stable@vger.kernel.org> # 4.0.x-
    Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarJens Axboe <axboe@fb.com>
    0dfc70c3
nvme-core.c 83.6 KB