From b1af516e0cc97ea63f19a6cb9cc391d14a05028b Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Sat, 28 Mar 2009 20:29:48 -0400 Subject: [PATCH] --- yaml --- r: 138987 b: refs/heads/master c: d008877550d8ca8c6878dd494e50c1b9209f38d4 h: refs/heads/master i: 138985: f530f2f60226d480a8bf43c04437c2d01c2a6613 138983: 84ce1b1c51b299a9394f6359b3090196191eb48e v: v3 --- [refs] | 2 +- trunk/drivers/gpu/drm/i915/i915_gem.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 1f03afb30953..abd7ea5bd496 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 90f959bcb386da2c71613dcefc6a285e054a539e +refs/heads/master: d008877550d8ca8c6878dd494e50c1b9209f38d4 diff --git a/trunk/drivers/gpu/drm/i915/i915_gem.c b/trunk/drivers/gpu/drm/i915/i915_gem.c index e5d2bdf2cc9b..e0389ad1477d 100644 --- a/trunk/drivers/gpu/drm/i915/i915_gem.c +++ b/trunk/drivers/gpu/drm/i915/i915_gem.c @@ -446,13 +446,16 @@ fast_shmem_write(struct page **pages, int length) { char __iomem *vaddr; + unsigned long unwritten; vaddr = kmap_atomic(pages[page_base >> PAGE_SHIFT], KM_USER0); if (vaddr == NULL) return -ENOMEM; - __copy_from_user_inatomic(vaddr + page_offset, data, length); + unwritten = __copy_from_user_inatomic(vaddr + page_offset, data, length); kunmap_atomic(vaddr, KM_USER0); + if (unwritten) + return -EFAULT; return 0; }