From: Wei Yongjun yongjun_wei@trendmicro.com.cn
Fix to return -ENOMEM in the kmap() error handling case instead of 0, as done elsewhere in this function.
Signed-off-by: Wei Yongjun yongjun_wei@trendmicro.com.cn --- drivers/gpu/drm/i915/intel_ringbuffer.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index 5698fae..9b97cf6 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -464,9 +464,11 @@ init_pipe_control(struct intel_ring_buffer *ring) goto err_unref;
pc->gtt_offset = obj->gtt_offset; - pc->cpu_page = kmap(sg_page(obj->pages->sgl)); - if (pc->cpu_page == NULL) + pc->cpu_page = kmap(sg_page(obj->pages->sgl)); + if (pc->cpu_page == NULL) { + ret = -ENOMEM; goto err_unpin; + }
DRM_DEBUG_DRIVER("%s pipe control offset: 0x%08x\n", ring->name, pc->gtt_offset);
On Tue, May 28, 2013 at 05:51:44PM +0800, Wei Yongjun wrote:
Queued for -next, thanks for the patch. -Daniel
On Tue, May 28, 2013 at 05:51:44PM +0800, Wei Yongjun wrote:
kmap() can fail?
It is either translated to page_address() or kmap_high() (on x86), neither of which may return NULL. However, only kmap_atomic() is documented as being guaranteed to return a valid value. If we could have a similar definitive statement for kmap(), we can then cleanup quite a bit of redundant error handling. -Chris
dri-devel@lists.freedesktop.org