From 491af9a7e7ccddb1c3045c7f9cd2990f6d22154f Mon Sep 17 00:00:00 2001 From: Andreas Baierl Date: Tue, 16 Oct 2018 03:19:20 -0400 Subject: [PATCH 125/146] drm/lima: Fix lima cache creation Due to the kernel merge of the hardened usercopy patch set we have to whitelist the memory area which is used for copy_from_user actions. Otherwise lima fails with an abort and segmentation fault. This is necessary on systems with CONFIG_HARDENED_USERCOPY enabled. It was tested on a Cubieboard 1, Allwinner A10. Signed-off-by: Andreas Baierl --- drivers/gpu/drm/lima/lima_gp.c | 5 +++-- drivers/gpu/drm/lima/lima_pp.c | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/lima/lima_gp.c b/drivers/gpu/drm/lima/lima_gp.c index 706652cb1741..6c902648e5cd 100644 --- a/drivers/gpu/drm/lima/lima_gp.c +++ b/drivers/gpu/drm/lima/lima_gp.c @@ -245,9 +245,10 @@ int lima_gp_pipe_init(struct lima_device *dev) struct lima_sched_pipe *pipe = dev->pipe + lima_pipe_gp; if (!lima_gp_task_slab) { - lima_gp_task_slab = kmem_cache_create( + lima_gp_task_slab = kmem_cache_create_usercopy( "lima_gp_task", sizeof(struct lima_sched_task) + frame_size, - 0, SLAB_HWCACHE_ALIGN, NULL); + 0, SLAB_HWCACHE_ALIGN, sizeof(struct lima_sched_task), + frame_size, NULL); if (!lima_gp_task_slab) return -ENOMEM; } diff --git a/drivers/gpu/drm/lima/lima_pp.c b/drivers/gpu/drm/lima/lima_pp.c index 3355895ceeba..502190d1bf3f 100644 --- a/drivers/gpu/drm/lima/lima_pp.c +++ b/drivers/gpu/drm/lima/lima_pp.c @@ -383,9 +383,10 @@ int lima_pp_pipe_init(struct lima_device *dev) frame_size = sizeof(struct drm_lima_m450_pp_frame); if (!lima_pp_task_slab) { - lima_pp_task_slab = kmem_cache_create( + lima_pp_task_slab = kmem_cache_create_usercopy( "lima_pp_task", sizeof(struct lima_sched_task) + frame_size, - 0, SLAB_HWCACHE_ALIGN, NULL); + 0, SLAB_HWCACHE_ALIGN, sizeof(struct lima_sched_task), + frame_size, NULL); if (!lima_pp_task_slab) return -ENOMEM; } -- 2.17.1