• Keith Busch's avatar
    nvme-pci: fix memory leak on probe failure · b6e44b4c
    Keith Busch authored
    The nvme driver specific structures need to be initialized prior to
    enabling the generic controller so we can unwind on failure with out
    using the reference counting callbacks so that 'probe' and 'remove'
    can be symmetric.
    
    The newly added iod_mempool is the only resource that was being
    allocated out of order, and a failure there would leak the generic
    controller memory. This patch just moves that allocation above the
    controller initialization.
    
    Fixes: 943e942e ("nvme-pci: limit max IO size and segments to avoid high order allocations")
    Reported-by: default avatarWeiping Zhang <zwp10758@gmail.com>
    Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    b6e44b4c
pci.c 71 KB