<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/gpu/drm/i915/i915_gem_execbuffer.c, branch linux-3.3.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.3.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.3.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-05-07T15:53:22Z</updated>
<entry>
<title>drm/i915: fix integer overflow in i915_gem_do_execbuffer()</title>
<updated>2012-05-07T15:53:22Z</updated>
<author>
<name>Xi Wang</name>
</author>
<published>2012-04-23T08:06:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9f4660213e58b3b78dc75bf3e3b4126dbe9a0b14'/>
<id>urn:sha1:9f4660213e58b3b78dc75bf3e3b4126dbe9a0b14</id>
<content type='text'>
commit 44afb3a04391a74309d16180d1e4f8386fdfa745 upstream.

On 32-bit systems, a large args-&gt;num_cliprects from userspace via ioctl
may overflow the allocation size, leading to out-of-bounds access.

This vulnerability was introduced in commit 432e58ed ("drm/i915: Avoid
allocation for execbuffer object list").

Signed-off-by: Xi Wang &lt;xi.wang@gmail.com&gt;
Reviewed-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm/i915: fix integer overflow in i915_gem_execbuffer2()</title>
<updated>2012-05-07T15:53:22Z</updated>
<author>
<name>Xi Wang</name>
</author>
<published>2012-04-23T08:06:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4a265435c87b19175c3906ff49ffe5bf4a4cc228'/>
<id>urn:sha1:4a265435c87b19175c3906ff49ffe5bf4a4cc228</id>
<content type='text'>
commit ed8cd3b2cd61004cab85380c52b1817aca1ca49b upstream.

On 32-bit systems, a large args-&gt;buffer_count from userspace via ioctl
may overflow the allocation size, leading to out-of-bounds access.

This vulnerability was introduced in commit 8408c282 ("drm/i915:
First try a normal large kmalloc for the temporary exec buffers").

Signed-off-by: Xi Wang &lt;xi.wang@gmail.com&gt;
Reviewed-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Merge branch 'drm-core-next' of git://people.freedesktop.org/~airlied/linux</title>
<updated>2012-01-10T19:04:36Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2012-01-10T19:04:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1a464cbb3d483f2f195b614cffa4aa1b910a0440'/>
<id>urn:sha1:1a464cbb3d483f2f195b614cffa4aa1b910a0440</id>
<content type='text'>
* 'drm-core-next' of git://people.freedesktop.org/~airlied/linux: (307 commits)
  drm/nouveau/pm: fix build with HWMON off
  gma500: silence gcc warnings in mid_get_vbt_data()
  drm/ttm: fix condition (and vs or)
  drm/radeon: double lock typo in radeon_vm_bo_rmv()
  drm/radeon: use after free in radeon_vm_bo_add()
  drm/sis|via: don't return stack garbage from free_mem ioctl
  drm/radeon/kms: remove pointless CS flags priority struct
  drm/radeon/kms: check if vm is supported in VA ioctl
  drm: introduce drm_can_sleep and use in intel/radeon drivers. (v2)
  radeon: Fix disabling PCI bus mastering on big endian hosts.
  ttm: fix agp since ttm tt rework
  agp: Fix multi-line warning message whitespace
  drm/ttm/dma: Fix accounting error when calling ttm_mem_global_free_page and don't try to free freed pages.
  drm/ttm/dma: Only call set_pages_array_wb when the page is not in WB pool.
  drm/radeon/kms: sync across multiple rings when doing bo moves v3
  drm/radeon/kms: Add support for multi-ring sync in CS ioctl (v2)
  drm/radeon: GPU virtual memory support v22
  drm: make DRM_UNLOCKED ioctls with their own mutex
  drm: no need to hold global mutex for static data
  drm/radeon/benchmark: common modes sweep ignores 640x480@32
  ...

Fix up trivial conflicts in radeon/evergreen.c and vmwgfx/vmwgfx_kms.c
</content>
</entry>
<entry>
<title>drm/i915: Add support for resetting the SO write pointers on gen7.</title>
<updated>2012-01-03T17:31:18Z</updated>
<author>
<name>Eric Anholt</name>
</author>
<published>2012-01-03T17:23:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ae662d31264979e52581bd2573bf0b82812f52ab'/>
<id>urn:sha1:ae662d31264979e52581bd2573bf0b82812f52ab</id>
<content type='text'>
These registers are automatically incremented by the hardware during
transform feedback to track where the next streamed vertex output
should go.  Unlike the previous generation, which had a packet for
setting the corresponding registers to a defined value, gen7 only has
MI_LOAD_REGISTER_IMM to do so.  That's a secure packet (since it loads
an arbitrary register), so we need to do it from the kernel, and it
needs to be settable atomically with the batchbuffer execution so that
two clients doing transform feedback don't stomp on each others'
state.

Instead of building a more complicated interface involcing setting the
registers to a specific value, just set them to 0 when asked and
userland can tweak its pointers accordingly.

Signed-off-by: Eric Anholt &lt;eric@anholt.net&gt;
Reviewed-by: Eugeni Dodonov &lt;eugeni.dodonov@intel.com&gt;
Reviewed-by: Kenneth Graunke &lt;kenneth@whitecape.org&gt;
Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>drm/i915: Force sync command ordering (Gen6+)</title>
<updated>2012-01-03T17:09:44Z</updated>
<author>
<name>Ben Widawsky</name>
</author>
<published>2011-12-13T03:21:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=84f9f938be4156e4baea466688bd6abae1c9e6ba'/>
<id>urn:sha1:84f9f938be4156e4baea466688bd6abae1c9e6ba</id>
<content type='text'>
The docs say this is required for Gen7, and since the bit was added for
Gen6, we are also setting it there pit pf paranoia. Particularly as
Chris points out, if PIPE_CONTROL counts as a 3d state packet.

This was found through doc inspection by Ken and applies to Gen6+;

Reported-by: Kenneth Graunke &lt;kenneth@whitecape.org&gt;
Signed-off-by: Ben Widawsky &lt;ben@bwidawsk.net&gt;
Reviewed-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Reviewed-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Reviewed-by: Eric Anholt &lt;eric@anholt.net&gt;
Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>drm/i915: relative_constants_mode race fix</title>
<updated>2012-01-03T17:09:44Z</updated>
<author>
<name>Ben Widawsky</name>
</author>
<published>2011-12-13T03:21:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e2971bdab2b761683353da383c0fd5ac704d1cca'/>
<id>urn:sha1:e2971bdab2b761683353da383c0fd5ac704d1cca</id>
<content type='text'>
dev_priv keeps track of the current addressing mode that gets set at
execbuffer time. Unfortunately the existing code was doing this before
acquiring struct_mutex which leaves a race with another thread also
doing an execbuffer. If that wasn't bad enough, relocate_slow drops
struct_mutex which opens a much more likely error where another thread
comes in and modifies the state while relocate_slow is being slow.

The solution here is to just defer setting this state until we
absolutely need it, and we know we'll have struct_mutex for the
remainder of our code path.

v2: Keith noticed a bug in the original patch.

Signed-off-by: Ben Widawsky &lt;ben@bwidawsk.net&gt;
Reviewed-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>drm/i915: Disable semaphores by default on SNB</title>
<updated>2011-12-27T05:07:26Z</updated>
<author>
<name>Keith Packard</name>
</author>
<published>2011-12-27T01:02:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ebbd857e6b9a92c0aff4aacd1b1d2361d888633e'/>
<id>urn:sha1:ebbd857e6b9a92c0aff4aacd1b1d2361d888633e</id>
<content type='text'>
Semaphores still cause problems on some machines:

&gt; From Udo Steinberg:
&gt;
&gt; With Linux-3.2-rc6 I'm frequently seeing GPU hangs when large amounts of
&gt; text scroll in an xterm, such as when extracting a tar archive. Such as this
&gt; one (note the timestamps):
&gt;
&gt;  I can reproduce it fairly easily with something
&gt;  as simple as:
&gt;
&gt;	  while true; do dmesg; done

This patch turns them off on SNB while leaving them on for IVB.

Reported-by: Udo Steinberg &lt;udo@hypervisor.org&gt;
Cc: Daniel Vetter &lt;daniel@ffwll.ch&gt;
Cc: Eugeni Dodonov &lt;eugeni@dodonov.net&gt;
Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>drm/i915: enable semaphores on per-device defaults</title>
<updated>2011-12-16T16:49:59Z</updated>
<author>
<name>Eugeni Dodonov</name>
</author>
<published>2011-12-10T01:16:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f45b55575cedb7efa782e43f1ea74338456d0381'/>
<id>urn:sha1:f45b55575cedb7efa782e43f1ea74338456d0381</id>
<content type='text'>
This adds a default setting for semaphores parameter, and enables
semaphores by default on IVB.

For now, as semaphores interaction with VTd causes random issues on
SNB, we do not enable them by default. But they can still be enabled
via the semaphores=1 kernel parameter.

v2: enables semaphores on SNB when IO remapping is disabled, with base
on Keith Packard patch.

CC: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
CC: Ben Widawsky &lt;ben@bwidawsk.net&gt;
CC: Keith Packard &lt;keithp@keithp.com&gt;
CC: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
CC: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=42696
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=40564
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41353
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38862
Reviewed-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Reviewed-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Eugeni Dodonov &lt;eugeni.dodonov@intel.com&gt;
Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>drm/i915: Dumb down the semaphore logic</title>
<updated>2011-09-21T21:52:41Z</updated>
<author>
<name>Ben Widawsky</name>
</author>
<published>2011-09-15T03:32:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c8c99b0f0dea1ced5d0e10cdb9143356cc16b484'/>
<id>urn:sha1:c8c99b0f0dea1ced5d0e10cdb9143356cc16b484</id>
<content type='text'>
While I think the previous code is correct, it was hard to follow and
hard to debug. Since we already have a ring abstraction, might as well
use it to handle the semaphore updates and compares.

I don't expect this code to make semaphores better or worse, but you
never know...

v2:
Remove magic per Keith's suggestions.
Ran Daniel's gem_ring_sync_loop test on this.

v3:
Ignored one of Keith's suggestions.

v4:
Removed some bloat per Daniel's recommendation.

Cc: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Cc: Keith Packard &lt;keithp@keithp.com&gt;
Signed-off-by: Ben Widawsky &lt;ben@bwidawsk.net&gt;
Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>Revert "drm/i915: Kill GTT mappings when moving from GTT domain"</title>
<updated>2011-06-21T18:11:02Z</updated>
<author>
<name>Eric Anholt</name>
</author>
<published>2011-06-14T23:43:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e92d03bff9a0d0bcbb812c9b1290ca96c9338d45'/>
<id>urn:sha1:e92d03bff9a0d0bcbb812c9b1290ca96c9338d45</id>
<content type='text'>
This reverts commit 4a684a4117abd756291969336af454e8a958802f.
Userland has always been required to set the object's domain to GTT
before using it through a GTT mapping, it's not something that the
kernel is supposed to enforce.  (The pagefault support is so that we
can handle multiple mappings without userland having to pin across
them, not so that userland can use GTT after GPU domains without
telling the kernel).

Fixes 19.2% +/- 0.8% (n=6) performance regression in cairo-gl
firefox-talos-gfx on my T420 latop.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
</feed>
