Skip to content

Commit

Permalink
drm/i915: Fix l3 parity user buffer offset
Browse files Browse the repository at this point in the history
The buf pointer used during l3_write is just char *, therefore it does
not require the silly any addition of offset.

v2: Also fix i915_l3_read with a suggested logic from Ville

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
  • Loading branch information
Ben Widawsky authored and Daniel Vetter committed Sep 13, 2013
1 parent 1c3dcd1 commit 33618ea
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions drivers/gpu/drm/i915/i915_sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -127,21 +127,23 @@ i915_l3_read(struct file *filp, struct kobject *kobj,
if (ret)
return ret;

count = min_t(int, GEN7_L3LOG_SIZE-offset, count);

ret = i915_mutex_lock_interruptible(drm_dev);
if (ret)
return ret;

misccpctl = I915_READ(GEN7_MISCCPCTL);
I915_WRITE(GEN7_MISCCPCTL, misccpctl & ~GEN7_DOP_CLOCK_GATE_ENABLE);

for (i = offset; count >= 4 && i < GEN7_L3LOG_SIZE; i += 4, count -= 4)
*((uint32_t *)(&buf[i])) = I915_READ(GEN7_L3LOG_BASE + i);
for (i = 0; i < count; i += 4)
*((uint32_t *)(&buf[i])) = I915_READ(GEN7_L3LOG_BASE + offset + i);

I915_WRITE(GEN7_MISCCPCTL, misccpctl);

mutex_unlock(&drm_dev->struct_mutex);

return i - offset;
return i;
}

static ssize_t
Expand Down Expand Up @@ -186,9 +188,7 @@ i915_l3_write(struct file *filp, struct kobject *kobj,
if (temp)
dev_priv->l3_parity.remap_info = temp;

memcpy(dev_priv->l3_parity.remap_info + (offset/4),
buf + (offset/4),
count);
memcpy(dev_priv->l3_parity.remap_info + (offset/4), buf, count);

i915_gem_l3_remap(drm_dev);

Expand Down

0 comments on commit 33618ea

Please sign in to comment.