diff mbox

[v2] drm/i915: Fix i915_dma_map_single positive error code

Message ID 1427215478-8943-1-git-send-email-michel.thierry@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Michel Thierry March 24, 2015, 4:44 p.m. UTC
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 rename commit title. (Dan)

Cc: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
---
 drivers/gpu/drm/i915/i915_gem_gtt.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Daniel Vetter March 24, 2015, 4:54 p.m. UTC | #1
On Tue, Mar 24, 2015 at 04:44:38PM +0000, Michel Thierry wrote:
> 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 rename commit title. (Dan)
> 
> Cc: Dan Carpenter <dan.carpenter@oracle.com>
> Cc: Mika Kuoppala <mika.kuoppala@intel.com>

Still missing the reported-by. Giving credit where it's due is important,
especially when they work for other companies than Intel.
-Daniel

> Signed-off-by: Michel Thierry <michel.thierry@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_gem_gtt.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 645c363..6bb31c8 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -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,
> -- 
> 2.1.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Shuang He March 24, 2015, 9:11 p.m. UTC | #2
Tested-By: PRC QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com)
Task id: 6041
-------------------------------------Summary-------------------------------------
Platform          Delta          drm-intel-nightly          Series Applied
PNV                 -1              269/269              268/269
ILK                                  303/303              303/303
SNB                                  304/304              304/304
IVB                 -1              338/338              337/338
BYT                                  287/287              287/287
HSW                                  362/362              362/362
BDW                                  310/310              310/310
-------------------------------------Detailed-------------------------------------
Platform  Test                                drm-intel-nightly          Series Applied
 PNV  igt@gen3_render_linear_blits      FAIL(1)PASS(2)      FAIL(2)
*IVB  igt@gem_storedw_batches_loop@normal      PASS(2)      DMESG_WARN(1)PASS(1)
Note: You need to pay more attention to line start with '*'
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index 645c363..6bb31c8 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -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,