OSDN Git Service

drm/i915: Fix i915_dma_map_single positive error code
authorMichel Thierry <michel.thierry@intel.com>
Tue, 24 Mar 2015 17:06:33 +0000 (17:06 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 27 Mar 2015 08:25:09 +0000 (09:25 +0100)
i915_dma_map_single relies on dma_mapping_error, which returns positive
error codes. Found by static checker.

Introduced by commit 678d96fbb3b5995a2fdff2bca5e1ab4a40b7e968
("drm/i915: Track GEN6 page table usage").

v2: Return negative error code and renamed commit title. (Dan)
v3: Missing reported-by tag (Daniel)

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem_gtt.c

index 9903bb0..9c155d1 100644 (file)
@@ -311,7 +311,10 @@ static inline int i915_dma_map_page_single(struct page *page,
        struct device *device = &dev->pdev->dev;
 
        *daddr = dma_map_page(device, page, 0, 4096, PCI_DMA_BIDIRECTIONAL);
-       return dma_mapping_error(device, *daddr);
+       if (dma_mapping_error(device, *daddr))
+               return -ENOMEM;
+
+       return 0;
 }
 
 static void unmap_and_free_pt(struct i915_page_table_entry *pt,