1. 10 6月, 2014 1 次提交
  2. 02 11月, 2013 1 次提交
  3. 03 10月, 2012 2 次提交
  4. 21 9月, 2012 1 次提交
  5. 18 12月, 2009 1 次提交
    • A
      drm: convert drm_ioctl to unlocked_ioctl · ed8b6704
      Arnd Bergmann 提交于
      drm_ioctl is called with the Big Kernel Lock held,
      which shows up very high in statistics on vfs_ioctl.
      
      Moving the lock into the drm_ioctl function itself
      makes sure we blame the right subsystem and it gets
      us one step closer to eliminating the locked version
      of fops->ioctl.
      
      Since drm_ioctl does not require the lock itself,
      we only need to hold it while calling the specific
      handler. The 32 bit conversion handlers do not
      interact with any other code, so they don't need
      the BKL here either and can just call drm_ioctl.
      
      As a bonus, this cleans up all the other users
      of drm_ioctl which now no longer have to find
      the inode or call lock_kernel.
      
      [airlied: squashed the non-driver bits
      of the second patch in here, this provides
      the flag for drivers to use to select unlocked
      ioctls - but doesn't modify any drivers].
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: David Airlie <airlied@linux.ie>
      Cc: dri-devel@lists.sourceforge.net
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      ed8b6704
  6. 15 9月, 2009 1 次提交
  7. 14 7月, 2008 1 次提交
    • D
      drm: reorganise drm tree to be more future proof. · c0e09200
      Dave Airlie 提交于
      With the coming of kernel based modesetting and the memory manager stuff,
      the everything in one directory approach was getting very ugly and
      starting to be unmanageable.
      
      This restructures the drm along the lines of other kernel components.
      
      It creates a drivers/gpu/drm directory and moves the hw drivers into
      subdirectores. It moves the includes into an include/drm, and
      sets up the unifdef for the userspace headers we should be exporting.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      c0e09200
  8. 17 6月, 2007 1 次提交
    • D
      fix radeon setparam on 32/64 systems, harder. · f4d27817
      David Woodhouse 提交于
      Commit 9b01bd5b introduced a
      compat_ioctl handler for RADEON_SETPARAM, the sole purpose of which was
      to handle the fact that on i386, alignof(uint64_t)==4.
      
      Unfortunately, this handler was installed for _all_ 64-bit
      architectures, instead of only x86_64 and ia64.  And thus it breaks
      32-bit compatibility on every other arch, where 64-bit integers are
      aligned to 8 bytes in 32-bit mode just the same as in 64-bit mode.
      
      Arnd has a cunning plan to use 'compat_u64' with appropriate alignment
      attributes according to the 32-bit ABI, but for now let's just make the
      compat_radeon_cp_setparam routine entirely disappear on 64-bit machines
      whose 32-bit compat support isn't for i386.  It would be a no-op with
      compat_u64 anyway.
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Dave Airlie <airlied@gmail.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f4d27817
  9. 10 6月, 2007 1 次提交
  10. 09 12月, 2006 1 次提交
  11. 11 1月, 2006 1 次提交
  12. 25 9月, 2005 1 次提交
    • D
      drm: lindent the drm directory. · b5e89ed5
      Dave Airlie 提交于
      I've been threatening this for a while, so no point hanging around.
      This lindents the DRM code which was always really bad in tabbing department.
      I've also fixed some misnamed files in comments and removed some trailing
      whitespace.
      Signed-off-by: NDave Airlie <airlied@linux.ie>
      b5e89ed5
  13. 23 6月, 2005 1 次提交
    • D
      drm: 32/64-bit DRM ioctl compatibility patch · 9a186645
      Dave Airlie 提交于
      The patch is against a 2.6.11 kernel tree.  I am running this with a
      32-bit X server (compiled up from X.org CVS as of a couple of weeks
      ago) and 32-bit DRI libraries and clients.  All the userland stuff is
      identical to what I am using under a 32-bit kernel on my G4 powerbook
      (which is a 32-bit machine of course).  I haven't tried compiling up a
      64-bit X server or clients yet.
      
      In the compatibility routines I have assumed that the kernel can
      safely access user addresses after set_fs(KERNEL_DS).  That is, where
      an ioctl argument structure contains pointers to other structures, and
      those other structures are already compatible between the 32-bit and
      64-bit ABIs (i.e. they only contain things like chars, shorts or
      ints), I just check the address with access_ok() and then pass it
      through to the 64-bit ioctl code.  I believe this approach may not
      work on sparc64, but it does work on ppc64 and x86_64 at least.
      
      One tricky area which may need to be revisited is the question of how
      to handle the handles which we pass back to userspace to identify
      mappings.  These handles are generated in the ADDMAP ioctl and then
      passed in as the offset value to mmap.  However, offset values for
      mmap seem to be generated in other ways as well, particularly for AGP
      mappings.
      
      The approach I have ended up with is to generate a fake 32-bit handle
      only for _DRM_SHM mappings.  The handles for other mappings (AGP, REG,
      FB) are physical addresses which are already limited to 32 bits, and
      generating fake handles for them created all sorts of problems in the
      mmap/nopage code.
      
      This patch has been updated to use the new compatibility ioctls.
      
      From: Paul Mackerras <paulus@samba.org>
      Signed-off-by: NDave Airlie <airlied@linux.ie>
      9a186645