1. 13 3月, 2012 20 次提交
  2. 17 2月, 2012 1 次提交
    • D
      drm: move pci bus master enable into driver. · 466e69b8
      Dave Airlie 提交于
      The current enabling of bus mastering in the drm midlayer allows a large
      race condition under kexec. When a kexec'ed kernel re-enables bus mastering
      for the GPU, previously setup dma blocks may cause writes to random pieces
      of memory. On radeon the writeback mechanism can cause these sorts of issues.
      
      This patch doesn't fix the problem, but it moves the bus master enable under
      the individual drivers control so they can move enabling it until later in
      their load cycle and close the race.
      
      Fix for radeon kms driver will be in a follow-up patch.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      466e69b8
  3. 09 2月, 2012 3 次提交
  4. 01 2月, 2012 5 次提交
    • D
      drm/nv50/pm: signedness bug in nv50_pm_clocks_pre() · a9d99388
      Dan Carpenter 提交于
      calc_mclk() returns zero on success and negative on failure but clk is
      a u32.
      
      v2: Martin Peres:
      - clk should be an int, not a u32
      Signed-off-by: NMartin Peres <martin.peres@labri.fr>
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      a9d99388
    • B
      drm/nouveau/gem: fix fence_sync race / oops · 525895ba
      Ben Skeggs 提交于
      Due to a race it was possible for a fence to be destroyed while another
      thread was trying to synchronise with it.  If this happened in the fallback
      non-semaphore path, it lead to the following oops due to fence->channel
      being NULL.
      
      BUG: unable to handle kernel NULL pointer dereference at   (null)
      IP: [<fa9632ce>] nouveau_fence_update+0xe/0xe0 [nouveau]
      *pde = a649c067
      SMP
      Modules linked in: fuse nouveau(O) ttm(O) drm_kms_helper(O) drm(O) mxm_wmi video wmi netconsole configfs lockd bnep bluetooth rfkill ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack ip6table_filter ip6_tables snd_hda_codec_realtek snd_hda_intel snd_hda_cobinfmt_misc uinput ata_generic pata_acpi pata_aet2c_algo_bit i2c_core [last unloaded: wmi]
      
      Pid: 2255, comm: gnome-shell Tainted: G           O 3.2.0-0.rc5.git0.1.fc17.i686 #1 System manufacturer System Product Name/M2A-VM
      EIP: 0060:[<fa9632ce>] EFLAGS: 00010296 CPU: 1
      EIP is at nouveau_fence_update+0xe/0xe0 [nouveau]
      EAX: 00000000 EBX: ddfc6dd0 ECX: dd111580 EDX: 00000000
      ESI: 00003e80 EDI: dd111580 EBP: dd121d00 ESP: dd121ce8
       DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
      Process gnome-shell (pid: 2255, ti=dd120000 task=dd111580 task.ti=dd120000)
      Stack:
       7dc86c76 00000000 00003e80 ddfc6dd0 00003e80 dd111580 dd121d0c fa96371f
       00000000 dd121d3c fa963773 dd111580 01000246 000ec53d 00000000 ddfc6dd0
       00001f40 00000000 ddfc6dd0 00000010 dc7df840 dd121d6c fa9639a0 00000000
      Call Trace:
       [<fa96371f>] __nouveau_fence_signalled+0x1f/0x30 [nouveau]
       [<fa963773>] __nouveau_fence_wait+0x43/0xd0 [nouveau]
       [<fa9639a0>] nouveau_fence_sync+0x1a0/0x1c0 [nouveau]
       [<fa964046>] validate_list+0x176/0x300 [nouveau]
       [<f7d9c9c0>] ? ttm_bo_mem_put+0x30/0x30 [ttm]
       [<fa964b8a>] nouveau_gem_ioctl_pushbuf+0x48a/0xfd0 [nouveau]
       [<c0406481>] ? die+0x31/0x80
       [<f7c93d98>] drm_ioctl+0x388/0x490 [drm]
       [<c0406481>] ? die+0x31/0x80
       [<fa964700>] ? nouveau_gem_ioctl_new+0x150/0x150 [nouveau]
       [<c0635c7b>] ? file_has_perm+0xcb/0xe0
       [<f7c93a10>] ? drm_copy_field+0x80/0x80 [drm]
       [<c0564f56>] do_vfs_ioctl+0x86/0x5b0
       [<c0406481>] ? die+0x31/0x80
       [<c0635f22>] ? selinux_file_ioctl+0x62/0x130
       [<c0554f30>] ? fget_light+0x30/0x340
       [<c05654ef>] sys_ioctl+0x6f/0x80
       [<c099e3a4>] syscall_call+0x7/0xb
       [<c0406481>] ? die+0x31/0x80
       [<c0406481>] ? die+0x31/0x80
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      Cc: stable@vger.kernel.org
      525895ba
    • B
      drm/nouveau: fix typo on mxmdcb option · 1eb8a619
      Ben Skeggs 提交于
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      1eb8a619
    • B
      drm/nouveau/mxm: pretend to succeed, even if we can't shadow the MXM-SIS · ce2e7895
      Ben Skeggs 提交于
      There's at least one known case where our shadowing code is buggy, and we
      fail init.  Until we can be confident we're doing all this correctly, lets
      succeed and risk crazy bios tables rather than failing for perfectly valid
      configs too.
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      ce2e7895
    • B
  5. 26 1月, 2012 1 次提交
    • B
      drm/ttm: fix two regressions since move_notify changes · 9f1feed2
      Ben Skeggs 提交于
      Both changes in dc97b340 cause serious
      regressions in the nouveau driver.
      
      move_notify() was originally able to presume that bo->mem is the old node,
      and new_mem is the new node.  The above commit moves the call to
      move_notify() to after move() has been done, which means that now, sometimes,
      new_mem isn't the new node at all, bo->mem is, and new_mem points at a
      stale, possibly-just-been-killed-by-move node.
      
      This is clearly not a good situation.  This patch reverts this change, and
      replaces it with a cleanup in the move() failure path instead.
      
      The second issue is that the call to move_notify() from cleanup_memtype_use()
      causes the TTM ghost objects to get passed into the driver.  This is clearly
      bad as the driver knows nothing about these "fake" TTM BOs, and ends up
      accessing uninitialised memory.
      
      I worked around this in nouveau's move_notify() hook by ensuring the BO
      destructor was nouveau's.  I don't particularly like this solution, and
      would rather TTM never pass the driver these objects.  However, I don't
      clearly understand the reason why we're calling move_notify() here anyway
      and am happy to work around the problem in nouveau instead of breaking the
      behaviour expected by other drivers.
      Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
      Reviewed-by: NThomas Hellstrom <thellstrom@vmware.com>
      Cc: Jerome Glisse <j.glisse@gmail.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      9f1feed2
  6. 13 1月, 2012 2 次提交
  7. 10 1月, 2012 1 次提交
  8. 06 1月, 2012 1 次提交
  9. 22 12月, 2011 1 次提交
  10. 21 12月, 2011 5 次提交