OSDN Git Service

drm/i915: Copy the updated reloc->presumed_offset back to the user
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 20 Oct 2010 19:59:57 +0000 (20:59 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 20 Oct 2010 20:06:34 +0000 (21:06 +0100)
commitb5dc608c98d929abbf2fe932ed07b3c868d83342
tree856fe6ba9133fe9b3019ff578fb808aa79027a9f
parent69dc4987cbe5fe70ae1c2a08906d431d53cdd242
drm/i915: Copy the updated reloc->presumed_offset back to the user

If the userspace driver is using a constant relocation array with a
static buffer, they will pass the same relocation array back to the
kernel. So we *do* need to update the presumed offset value in those
relocations to reflect the current object so that they remain correct
with future batchbuffers and we avoid the necessity of having to suspend
execution and perform redundant relocations.

Fixes the regression introduced by 12f889c for applications using
absolute addressing on trees of buffer (i.e. the current consumers of
libdrm_intel.so).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=30996
Reported-by: Wang, Jinjin <jinjin.wang@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/i915_gem.c