drm/i915: [sparse] __iomem fixes for debugfs
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Sat, 21 Apr 2012 20:49:10 +0000 (22:49 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 3 May 2012 09:18:00 +0000 (11:18 +0200)
These were mostly straight forward. No forced casting needed.

Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com>
[danvet: fix conflict with ringbuffer_data removal and drop the hunk
about the status page - that needs more care to fix up.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_debugfs.c

index 8c899a2237ff4f5b5aad8339e690f22bbb52628f..54a10667fe82b9f62d34426e2be93d0d1bb990c1 100644 (file)
@@ -1290,17 +1290,25 @@ static int i915_opregion(struct seq_file *m, void *unused)
        struct drm_device *dev = node->minor->dev;
        drm_i915_private_t *dev_priv = dev->dev_private;
        struct intel_opregion *opregion = &dev_priv->opregion;
+       void *data = kmalloc(OPREGION_SIZE, GFP_KERNEL);
        int ret;
 
+       if (data == NULL)
+               return -ENOMEM;
+
        ret = mutex_lock_interruptible(&dev->struct_mutex);
        if (ret)
-               return ret;
+               goto out;
 
-       if (opregion->header)
-               seq_write(m, opregion->header, OPREGION_SIZE);
+       if (opregion->header) {
+               memcpy_fromio(data, opregion->header, OPREGION_SIZE);
+               seq_write(m, data, OPREGION_SIZE);
+       }
 
        mutex_unlock(&dev->struct_mutex);
 
+out:
+       kfree(data);
        return 0;
 }