1. 03 6月, 2013 1 次提交
    • D
      drm/i915: Fix spurious -EIO/SIGBUS on wedged gpus · 7abb690a
      Daniel Vetter 提交于
      Chris Wilson noticed that since
      
      commit 1f83fee0 [v3.9]
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Thu Nov 15 17:17:22 2012 +0100
      
          drm/i915: clear up wedged transitions
      
      X can again get -EIO when it does not expect it. And even worse score
      a SIGBUS when accessing gtt mmaps. The established ABI is that we
      _only_ return an -EIO from execbuf - all other ioctls should just
      work. And since the reset code moves all bos out of gpu domains and
      clears out all the last_seqno/ring tracking there really shouldn't be
      any reason for non-execbuf code to ever touch the hw and see an -EIO.
      
      After some extensive discussions we've noticed that these spurios -EIO
      are caused by i915_gem_wait_for_error:
      
      http://www.mail-archive.com/intel-gfx@lists.freedesktop.org/msg20540.html
      
      That is easy to fix by returning 0 instead of -EIO, since grabbing the
      dev->struct_mutex does not yet mean that we actually want to touch the
      hw. And so there is no reason at all to fail with -EIO.
      
      But that's not the entire since, since often (at least it's easily
      googleable) dmesg indicates that the reset fails and we declare the
      gpu wedged. Then, quite a bit later X wakes up with the "Timed out
      waiting for the gpu reset to complete" DRM_ERROR message in
      wait_for_errror and brings down the desktop with an -EIO/SIGBUS.
      
      So clearly we're missing a wakeup somewhere, since the gpu reset just
      doesn't take 10 seconds to complete. And indeed we're do handle the
      terminally wedged state wrong.
      
      Fix this all up.
      
      References: https://bugs.freedesktop.org/show_bug.cgi?id=63921
      References: https://bugs.freedesktop.org/show_bug.cgi?id=64073
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Damien Lespiau <damien.lespiau@intel.com>
      Cc: stable@vger.kernel.org
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      7abb690a
  2. 02 6月, 2013 2 次提交
    • L
      Linux 3.10-rc4 · d683b96b
      Linus Torvalds 提交于
      d683b96b
    • L
      Merge branch 'for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · cc863973
      Linus Torvalds 提交于
      Pull parisc fixes from Helge Deller:
       "This patcheset includes fixes for:
      
         - the PCI/LBA which brings back the stifb graphics framebuffer
           console
         - possible memory overflows in parisc kernel init code
         - parport support on older GSC machines
         - avoids that users by mistake enable PARPORT_PC_SUPERIO on parisc
         - MAINTAINERS file list updates for parisc."
      
      * 'for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: parport0: fix this legacy no-device port driver!
        parport_pc: disable PARPORT_PC_SUPERIO on parisc architecture
        parisc/PCI: lba: fix: convert to pci_create_root_bus() for correct root bus resources (v2)
        parisc/PCI: Set type for LBA bus_num resource
        MAINTAINERS: update parisc architecture file list
        parisc: kernel: using strlcpy() instead of strcpy()
        parisc: rename "CONFIG_PA7100" to "CONFIG_PA7000"
        parisc: fix kernel BUG at arch/parisc/include/asm/mmzone.h:50
        parisc: memory overflow, 'name' length is too short for using
      cc863973
  3. 01 6月, 2013 37 次提交