summaryrefslogtreecommitdiffstats
path: root/drivers/video/fbdev/vfb.c
diff options
context:
space:
mode:
authorThomas Zimmermann <tzimmermann@suse.de>2023-11-27 14:15:58 +0100
committerThomas Zimmermann <tzimmermann@suse.de>2023-11-29 12:20:44 +0100
commit76f92201b821dd2f442ebe37ec9b52b525855bac (patch)
tree156abcd154eb74b08493323ecfdeca50b40daa76 /drivers/video/fbdev/vfb.c
parent23dad7b95fea68426311405a0627b90c06c3fc34 (diff)
downloadlinux-stable-76f92201b821dd2f442ebe37ec9b52b525855bac.tar.gz
linux-stable-76f92201b821dd2f442ebe37ec9b52b525855bac.tar.bz2
linux-stable-76f92201b821dd2f442ebe37ec9b52b525855bac.zip
fbdev: Push pgprot_decrypted() into mmap implementations
If a driver sets struct fb_ops.fb_mmap, the fbdev core automatically calls pgprot_decrypted(). But the default fb_mmap code doesn't handle pgprot_decrypted(). Move the call to pgprot_decrypted() into each drivers' fb_mmap function. This only concerns fb_mmap functions for system and DMA memory. For I/O memory, which is the default case, nothing changes. The fb_mmap for I/O-memory can later be moved into a helper as well. DRM's fbdev emulation handles pgprot_decrypted() internally via the Prime helpers. Fbdev doesn't have to do anything in this case. In cases where DRM uses deferred I/O, this patch updates fb_mmap correctly. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Javier Martinez Canillas <javierm@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20231127131655.4020-30-tzimmermann@suse.de
Diffstat (limited to 'drivers/video/fbdev/vfb.c')
-rw-r--r--drivers/video/fbdev/vfb.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/video/fbdev/vfb.c b/drivers/video/fbdev/vfb.c
index f6140f247e4b..f86149ba3835 100644
--- a/drivers/video/fbdev/vfb.c
+++ b/drivers/video/fbdev/vfb.c
@@ -382,6 +382,8 @@ static int vfb_pan_display(struct fb_var_screeninfo *var,
static int vfb_mmap(struct fb_info *info,
struct vm_area_struct *vma)
{
+ vma->vm_page_prot = pgprot_decrypted(vma->vm_page_prot);
+
return remap_vmalloc_range(vma, (void *)info->fix.smem_start, vma->vm_pgoff);
}