lkml.org 
[lkml]   [2020]   [Aug]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 081/228] agp/intel: Fix a memory leak on module initialisation failure
    Date
    From: Qiushi Wu <wu000273@umn.edu>

    [ Upstream commit b975abbd382fe442713a4c233549abb90e57c22b ]

    In intel_gtt_setup_scratch_page(), pointer "page" is not released if
    pci_dma_mapping_error() return an error, leading to a memory leak on
    module initialisation failure. Simply fix this issue by freeing "page"
    before return.

    Fixes: 0e87d2b06cb46 ("intel-gtt: initialize our own scratch page")
    Signed-off-by: Qiushi Wu <wu000273@umn.edu>
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200522083451.7448-1-chris@chris-wilson.co.uk
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/char/agp/intel-gtt.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/drivers/char/agp/intel-gtt.c b/drivers/char/agp/intel-gtt.c
    index 7516ba981b635..34cc853772bc4 100644
    --- a/drivers/char/agp/intel-gtt.c
    +++ b/drivers/char/agp/intel-gtt.c
    @@ -304,8 +304,10 @@ static int intel_gtt_setup_scratch_page(void)
    if (intel_private.needs_dmar) {
    dma_addr = pci_map_page(intel_private.pcidev, page, 0,
    PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
    - if (pci_dma_mapping_error(intel_private.pcidev, dma_addr))
    + if (pci_dma_mapping_error(intel_private.pcidev, dma_addr)) {
    + __free_page(page);
    return -EINVAL;
    + }

    intel_private.scratch_page_dma = dma_addr;
    } else
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-08-20 12:10    [W:4.100 / U:0.392 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site