From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: Re: [PATCH 2/2] drm/i915: Disable page-faults around the fast pwrite/pread paths Date: Sat, 09 Jul 2011 18:40:36 +0100 Message-ID: References: <1310200731-18086-1-git-send-email-chris@chris-wilson.co.uk> <1310200731-18086-2-git-send-email-chris@chris-wilson.co.uk> <8762nb1poq.fsf@eliezer.anholt.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 68BB49F0DA for ; Sat, 9 Jul 2011 10:40:39 -0700 (PDT) In-Reply-To: <8762nb1poq.fsf@eliezer.anholt.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: Eric Anholt , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Sat, 09 Jul 2011 07:41:57 -0700, Eric Anholt wrote: > On Sat, 9 Jul 2011 09:38:51 +0100, Chris Wilson wrote: > > --- a/drivers/gpu/drm/i915/i915_gem.c > > +++ b/drivers/gpu/drm/i915/i915_gem.c > > > - vaddr = kmap_atomic(page, KM_USER0); > > + vaddr = kmap_atomic(page); > > + /* We have to disable faulting here in case the user address > > + * is really a GTT mapping and so we can not enter > > + * i915_gem_fault() whilst already holding struct_mutex. > > + */ > > + pagefault_disable(); > > ret = __copy_from_user_inatomic(vaddr + page_offset, > > user_data, > > page_length); > > - kunmap_atomic(vaddr, KM_USER0); > > + pagefault_enable(); > > + kunmap_atomic(vaddr); > > does this even compile? Looks like you dropped an arg. That parameter was removed several months ago and although a pass was made through the kernel to update all callsites, this one inexplicably remained. commit t 3e4d3af501cccdc8a8cca41bdbe57d54ad7e7e73 Author: Peter Zijlstra Date: Tue Oct 26 14:21:51 2010 -0700 mm: stack based kmap_atomic() -Chris -- Chris Wilson, Intel Open Source Technology Centre