1. 02 3月, 2011 2 次提交
    • J
      drm/i915: fix memory corruption with GM965 and >4GB RAM · 6927faf3
      Jan Niehusmann 提交于
      On a Thinkpad x61s, I noticed some memory corruption when
      plugging/unplugging the external VGA connection. The symptoms are that
      4 bytes at the beginning of a page get overwritten by zeroes.
      The address of the corruption varies when rebooting the machine, but
      stays constant while it's running (so it's possible to repeatedly write
      some data and then corrupt it again by plugging the cable).
      
      Further investigation revealed that the corrupted address is
      (dev_priv->status_page_dmah->busaddr & 0xffffffff), ie. the beginning of
      the hardware status page of the i965 graphics card, cut to 32 bits.
      
      So it seems that for some memory access, the hardware uses only 32 bit
      addressing. If the hardware status page is located >4GB, this
      corrupts unrelated memory.
      Signed-off-by: NJan Niehusmann <jan@gondor.com>
      Acked-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: stable@kernel.org
      6927faf3
    • C
      drm/i915: Allow relocation deltas outside of target bo · 271d81b8
      Chris Wilson 提交于
      Userspace has a legitimate requirement to use a delta that points to
      outside of the target bo, and so we need to enable this. (As this is an
      abi break, albeit a relaxation of the current restrictions, mark the change
      with a new flag.)
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      271d81b8
  2. 08 2月, 2011 1 次提交
  3. 07 2月, 2011 1 次提交
  4. 23 1月, 2011 1 次提交
    • C
      drm/i915: Recognise non-VGA display devices · 934f992c
      Chris Wilson 提交于
      Starting with SandyBridge (though possible with earlier hacked BIOSes),
      the BIOS may initialise the IGFX as secondary to a discrete GPU. Prior,
      it would simply disable the integrated GPU. So we adjust our PCI class
      mask to match any DISPLAY_CLASS device.
      
      In such a configuration, the IGFX is not a primary VGA controller and
      so should not take part in VGA arbitration, and the error return from
      vga_client_register() is expected.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: stable@kernel.org
      934f992c
  5. 20 1月, 2011 1 次提交
    • C
      drm/i915: Initialise ring vfuncs for old DRI paths · e8616b6c
      Chris Wilson 提交于
      We weren't setting up the vfunc table when initialising the old DRI
      ringbuffer, leading to such OOPSes as:
      
      BUG: unable to handle kernel NULL pointer dereference at (null)
      IP: [<(null)>] (null)
      PGD 10c441067 PUD 1185e5067 PMD 0
      Oops: 0010 [#1] PREEMPT SMP
      last sysfs file: /sys/class/dmi/id/chassis_asset_tag
      CPU 3
      Modules linked in: i915 drm_kms_helper drm fb fbdev i2c_algo_bit
      cfbcopyarea video backlight output cfbimgblt cfbfillrect autofs4 ipv6
      nfs lockd fscache nfs_acl auth_rpcgss sunrpc coretemp hwmon_vid mousedev
      usbhid hid option usb_wwan snd_hda_codec_via asus_atk0110 atl1e
      usbserial snd_hda_intel snd_hda_codec firmware_class snd_hwdep snd_pcm
      snd_seq snd_timer snd_seq_device processor parport_pc thermal snd
      thermal_sys parport 8250_pnp button rng_core rtc_cmos shpchp hwmon
      rtc_core ehci_hcd pci_hotplug uhci_hcd soundcore tpm_tis i2c_i801
      rtc_lib tpm serio_raw snd_page_alloc tpm_bios i2c_core usbcore psmouse
      intel_agp sg pcspkr sr_mod evdev cdrom ext3 jbd mbcache dm_mod sd_mod
      ata_piix libata scsi_mod unix
      Jan 18 15:49:29 lithui kernel:
      Pid: 3605, comm: Xorg Not tainted 2.6.36.2 #5 P5KPL-CM/System Product
      Name
      RIP: 0010:[<0000000000000000>]  [<(null)>] (null)
      RSP: 0018:ffff8801150d1d40  EFLAGS: 00010202
      RAX: 000000000001ffff RBX: ffff88011a011b00 RCX: 000000000001a704
      RDX: ffff880118566028 RSI: ffff880118566028 RDI: ffff880117876800
      RBP: ffff8801150d1d48 R08: ffff8801195fe300 R09: 00000000c0086444
      R10: 0000000000000001 R11: 0000000000003206 R12: ffff880117876800
      R13: ffff880118566000 R14: ffff880117876820 R15: ffff8801150d1df8
      FS:  00007f1038d456e0(0000) GS:ffff880001780000(0000)
      knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 0000000000000000 CR3: 00000001187e7000 CR4: 00000000000006e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      Process Xorg (pid: 3605, threadinfo ffff8801150d0000, task
      ffff88011b016e40)
      Stack:
      ffffffffa043b8e6 ffff8801150d1d98 ffffffffa041768b dead000000000000
      <0> 0000000000000048 00007f1023f2a000 0000000000000044 0000000000000008
      <0> ffff88010d26bd80 ffff880117876800 ffff8801150d1df8 ffff8801150d1ea8
      Call Trace:
      [<ffffffffa043b8e6>] ? intel_ring_advance+0x16/0x20 [i915]
      [<ffffffffa041768b>] i915_irq_emit+0x15b/0x240 [i915]
      [<ffffffffa03ea7b1>] drm_ioctl+0x1f1/0x460 [drm]
      [<ffffffffa0417530>] ? i915_irq_emit+0x0/0x240 [i915]
      [<ffffffff810dd8f1>] ? do_sync_read+0xd1/0x120
      [<ffffffff81025b1f>] ? do_page_fault+0x1df/0x3d0
      [<ffffffff810ed5c7>] do_vfs_ioctl+0x97/0x550
      [<ffffffff8115c2ea>] ? security_file_permission+0x7a/0x90
      [<ffffffff810edb19>] sys_ioctl+0x99/0xa0
      [<ffffffff810024ab>] system_call_fastpath+0x16/0x1b
      Code:  Bad RIP value.
      RIP  [<(null)>] (null)
      RSP <ffff8801150d1d40>
      CR2: 0000000000000000
      Reported-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Tested-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=29153
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=23172Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: stable@kernel.org
      e8616b6c
  6. 19 1月, 2011 1 次提交
  7. 12 1月, 2011 1 次提交
  8. 05 1月, 2011 2 次提交
  9. 23 12月, 2010 1 次提交
  10. 20 12月, 2010 1 次提交
  11. 15 12月, 2010 1 次提交
  12. 05 12月, 2010 2 次提交
  13. 30 11月, 2010 1 次提交
  14. 24 11月, 2010 1 次提交
  15. 23 11月, 2010 3 次提交
  16. 22 11月, 2010 1 次提交
  17. 12 11月, 2010 1 次提交
  18. 09 11月, 2010 1 次提交
  19. 30 10月, 2010 1 次提交
  20. 29 10月, 2010 2 次提交
  21. 28 10月, 2010 4 次提交
  22. 27 10月, 2010 1 次提交
  23. 22 10月, 2010 2 次提交
  24. 20 10月, 2010 1 次提交
  25. 19 10月, 2010 3 次提交
  26. 08 10月, 2010 2 次提交
  27. 07 10月, 2010 1 次提交