2019-03-09 04:25:43

by Kangjie Lu

[permalink] [raw]
Subject: [PATCH] gpu: i915: fix a missing check of get_free_page

If the allocation fails, return false to avoid potential
NULL pointer dereference

Signed-off-by: Kangjie Lu <[email protected]>
---
drivers/gpu/drm/i915/i915_gpu_error.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index 9a65341fec09..ad54fc3551df 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -227,8 +227,11 @@ static bool compress_init(struct compress *c)
}

c->tmp = NULL;
- if (i915_has_memcpy_from_wc())
+ if (i915_has_memcpy_from_wc()) {
c->tmp = (void *)__get_free_page(GFP_ATOMIC | __GFP_NOWARN);
+ if (!c->tmp)
+ return false;
+ }

return true;
}
--
2.17.1



2019-03-09 09:37:47

by Chris Wilson

[permalink] [raw]
Subject: Re: [PATCH] gpu: i915: fix a missing check of get_free_page

Quoting Kangjie Lu (2019-03-09 04:24:50)
> If the allocation fails, return false to avoid potential
> NULL pointer dereference

No. If we fail to allocate c->tmp, we do uncached reads instead.
-Chris