Re: [PATCH 05/21] drm/i915/gtt: Don't leak scratch page on mapping error

Joonas Lahtinen
2015-06-02T07:48:38Z

On pe, 2015-05-22 at 20:04 +0300, Mika Kuoppala wrote:
> Free the scratch page if dma mapping fails.
>
> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>

Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

> ---
> drivers/gpu/drm/i915/i915_gem_gtt.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index c61de4a..a608b1b 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -2191,8 +2191,10 @@ static int setup_scratch_page(struct drm_device *dev)
> #ifdef CONFIG_INTEL_IOMMU
> dma_addr = pci_map_page(dev->pdev, page, 0, PAGE_SIZE,
> PCI_DMA_BIDIRECTIONAL);
> - if (pci_dma_mapping_error(dev->pdev, dma_addr))
> + if (pci_dma_mapping_error(dev->pdev, dma_addr)) {
> + __free_page(page);
> return -EINVAL;
> + }
> #else
> dma_addr = page_to_phys(page);
> #endif