1. 14 Mar, 2011 3 commits
    • Ben Skeggs's avatar
      bb9b18a3
    • Marcin Slusarz's avatar
      drm/nouveau: properly handle pushbuffer check failures · 7fa0cba2
      Marcin Slusarz authored
      When "buffer in list" check does not pass, don't free validation lists - they were
      not initialized yet.
      
      Fixes this oops:
      
      [drm] nouveau 0000:02:00.0: push 105 buffer not in list
      BUG: unable to handle kernel NULL pointer dereference at 000000000000057c
      IP: [<ffffffff81236aa4>] do_raw_spin_lock+0x14/0x13c
      PGD 1ac6cb067 PUD 1aaa52067 PMD 0
      CPU 0
      Modules linked in: nouveau ttm drm_kms_helper snd_hda_codec_realtek snd_hda_intel snd_hda_codec
      
      Pid: 6265, comm: OilRush_x86 Not tainted 2.6.38-rc6-nv+ #632 System manufacturer System Product Name/P6T SE
      RIP: 0010:[<ffffffff81236aa4>]  [<ffffffff81236aa4>] do_raw_spin_lock+0x14/0x13c
      (...)
      Process OilRush_x86 (pid: 6265, threadinfo ffff8801a6aee000, task ffff8801a26c0000)
       0000000000000000 ffff8801ac74c618 0000000000000000 0000000000000578
       0000000000000000 ffff8801ac74c618 0000000000000000 ffff8801bd9d0000
       [<ffffffff81417f78>] _raw_spin_lock+0x1e/0x22
       [<ffffffffa00a2746>] nouveau_bo_fence+0x2e/0x60 [nouveau]
       [<ffffffffa00a540b>] validate_fini_list+0x35/0xeb [nouveau]
       [<ffffffffa00a54d3>] validate_fini+0x12/0x31 [nouveau]
       [<ffffffffa00a6386>] nouveau_gem_ioctl_pushbuf+0xe94/0xf6b [nouveau]
       [<ffffffff8141ac56>] ? sub_preempt_count+0x9e/0xb2
       [<ffffffff81417e94>] ? _raw_spin_unlock_irqrestore+0x30/0x4d
       [<ffffffff8105dea2>] ? __wake_up+0x3f/0x48
       [<ffffffff812aebb4>] drm_ioctl+0x289/0x361
       [<ffffffff8141ac56>] ? sub_preempt_count+0x9e/0xb2
       [<ffffffffa00a54f2>] ? nouveau_gem_ioctl_pushbuf+0x0/0xf6b [nouveau]
       [<ffffffff8141ac56>] ? sub_preempt_count+0x9e/0xb2
       [<ffffffffa010caa2>] nouveau_compat_ioctl+0x16/0x1c [nouveau]
       [<ffffffff81142c0d>] compat_sys_ioctl+0x1c8/0x12d7
       [<ffffffff814179ca>] ? trace_hardirqs_off_thunk+0x3a/0x6c
       [<ffffffff81058099>] sysenter_dispatch+0x7/0x30
       [<ffffffff8141798e>] ? trace_hardirqs_on_thunk+0x3a/0x3c
      RIP  [<ffffffff81236aa4>] do_raw_spin_lock+0x14/0x13c
       RSP <ffff8801a6aefb88>
      ---[ end trace 0014d5d93e6147e1 ]---
      
      Additionally, don't call validate_fini twice in case of validation failure.
      Signed-off-by: default avatarMarcin Slusarz <marcin.slusarz@gmail.com>
      Signed-off-by: default avatarMaarten Maathuis <madman2003@gmail.com>
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      7fa0cba2
    • Ben Skeggs's avatar
      drm/nvc0: remove vm hack forcing large/small pages to not share a PDE · b84f30e6
      Ben Skeggs authored
      Appears to be fixed with commit:
      
      "drm/nv50-nvc0: make sure vma is definitely unmapped when destroying bo"
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      b84f30e6
  2. 04 Mar, 2011 2 commits
  3. 03 Mar, 2011 17 commits
  4. 01 Mar, 2011 4 commits
  5. 28 Feb, 2011 1 commit
  6. 27 Feb, 2011 1 commit
  7. 25 Feb, 2011 1 commit
    • Dave Airlie's avatar
      Merge branch 'drm-nouveau-next' of... · dc87eaf1
      Dave Airlie authored
      Merge branch 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next
      
      * 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: (50 commits)
        drm/nv50: flesh out ZCULL init and match nvidia on later chipsets
        drm/nv50: support for compression
        drm/nv50-nvc0: delay GART binding until move_notify time
        drm/nouveau: rename nouveau_vram to nouveau_mem
        drm/nvc0: allow creation of buffers with any non-compressed memtype
        drm/nv50-nvc0: unmap buffers from the vm when they're evicted
        drm/nv50-nvc0: move vm bind/unbind to move_notify hook
        drm/nv50-nvc0: restrict memtype to those specified at creation time
        drm/nouveau: pass domain rather than ttm flags to gem_new()
        drm/nv50: simplify bo moves now that they're all through the vm
        drm/nouveau: remove no_vm/mappable flags from nouveau_bo
        drm/nouveau: Fix pageflip event
        drm/nouveau/vbios: parse more gpio tag bits from connector table
        drm/nouveau: decode PFIFO DMA_PUSHER error codes
        drm/nv50: fix typos in CCACHE error reporting
        drm/nvc0: support for sw methods + enable page flipping
        drm/nv50: enable page flipping
        drm/nv50-nvc0: activate/update ds channel's framebuffer on modesets
        drm/nv50-nvc0: initialise display sync channels
        drm/nv50-nvc0: precalculate some fb state when creating them
        ...
      dc87eaf1
  8. 24 Feb, 2011 11 commits