diff options
author | Daniel Kurtz <djkurtz@chromium.org> | 2014-04-04 13:22:01 +0400 |
---|---|---|
committer | Inki Dae <daeinki@gmail.com> | 2014-06-01 21:07:02 +0400 |
commit | 2f1eab8d8ab59e799f7d51d62410b398607a7bc3 (patch) | |
tree | a35a4e79c415100eaa0af6b66647cfa8da71d3b6 /drivers/gpu/drm/exynos/exynos_drm_fbdev.c | |
parent | 182407a6ed5333fc37dd980a8de91a8f826a94f6 (diff) | |
download | linux-2f1eab8d8ab59e799f7d51d62410b398607a7bc3.tar.xz |
drm/exynos/fbdev: don't set fix.smem/mmio_{start,len}
Kernel access to the eyxnos fbdev framebuffer is via its gem object's
kernel mapping (kvaddr, stored in info->screen_base).
User space access is provided by mmap(), read() and write() of /dev/fb/fb0.
These functions also only use screen_base/screen_size().
Therefore, it is not necessary to set fix->smem_{start,len} or
fix->mmio_{start,len} fields.
This avoids leaking kernel, physical and dma mapped addresses to user
space via the ioctls FBIOGET_VSCREENINFO and FBIOGET_FSCREENINFO.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Diffstat (limited to 'drivers/gpu/drm/exynos/exynos_drm_fbdev.c')
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c index addbf7536da4..c5c00f209370 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c @@ -123,14 +123,7 @@ static int exynos_drm_fbdev_update(struct drm_fb_helper *helper, dev->mode_config.fb_base = (resource_size_t)buffer->dma_addr; fbi->screen_base = buffer->kvaddr + offset; - if (is_drm_iommu_supported(dev)) - fbi->fix.smem_start = (unsigned long) - (page_to_phys(sg_page(buffer->sgt->sgl)) + offset); - else - fbi->fix.smem_start = (unsigned long)buffer->dma_addr; - fbi->screen_size = size; - fbi->fix.smem_len = size; return 0; } |