summaryrefslogtreecommitdiffstats
path: root/sys/dev/drm2
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2012-05-28 13:55:49 +0000
committerkib <kib@FreeBSD.org>2012-05-28 13:55:49 +0000
commit07bc41a97b279543e09a00b202498277a7d09145 (patch)
treeb146e716dc486064ac4f5364853c259a0a972fb6 /sys/dev/drm2
parentcda9e92421edf4b2c7de3bf1ba2d1e87b223e92b (diff)
downloadFreeBSD-src-07bc41a97b279543e09a00b202498277a7d09145.zip
FreeBSD-src-07bc41a97b279543e09a00b202498277a7d09145.tar.gz
Fix calculation of the execution buffer end in the mapped pages
when it is spilled into the next page. MFC after: 1 month
Diffstat (limited to 'sys/dev/drm2')
-rw-r--r--sys/dev/drm2/i915/i915_gem_execbuffer.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/dev/drm2/i915/i915_gem_execbuffer.c b/sys/dev/drm2/i915/i915_gem_execbuffer.c
index 7143045..cea6970 100644
--- a/sys/dev/drm2/i915/i915_gem_execbuffer.c
+++ b/sys/dev/drm2/i915/i915_gem_execbuffer.c
@@ -1069,7 +1069,8 @@ i915_gem_fix_mi_batchbuffer_end(struct drm_i915_gem_object *batch_obj,
po_r -= 4;
mkva = pmap_mapdev_attr(trunc_page(po_r), 2 * PAGE_SIZE,
PAT_WRITE_COMBINING);
- cmd = *(uint32_t *)(mkva + (po_r & PAGE_MASK));
+ po_r &= PAGE_MASK;
+ cmd = *(uint32_t *)(mkva + po_r);
if (cmd != MI_BATCH_BUFFER_END) {
/*
@@ -1083,8 +1084,7 @@ i915_gem_fix_mi_batchbuffer_end(struct drm_i915_gem_object *batch_obj,
po_w = po_r;
DRM_DEBUG("batchbuffer does not end by MI_BATCH_BUFFER_END, overwriting last bo cmd !\n");
}
-
- *(uint32_t *)(mkva + (po_w & PAGE_MASK)) = MI_BATCH_BUFFER_END;
+ *(uint32_t *)(mkva + po_w) = MI_BATCH_BUFFER_END;
}
pmap_unmapdev((vm_offset_t)mkva, 2 * PAGE_SIZE);
OpenPOWER on IntegriCloud