summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSouptick Joarder <jrdr.linux@gmail.com>2019-05-26 21:41:10 +0530
committerMiguel Ojeda <miguel.ojeda.sandonis@gmail.com>2019-06-20 15:06:24 +0200
commitf4bb1f895aa07dfcb96169192ff7c9154620df87 (patch)
treee5d8d73d37c870727faa14cf2c45d25f02d6c72b
parent461e274b2821901ca9c084f43074ad099848199f (diff)
downloadlinux-f4bb1f895aa07dfcb96169192ff7c9154620df87.tar.gz
linux-f4bb1f895aa07dfcb96169192ff7c9154620df87.tar.bz2
linux-f4bb1f895aa07dfcb96169192ff7c9154620df87.zip
auxdisplay/ht16k33.c: Convert to use vm_map_pages_zero()
While using mmap, the incorrect values of length and vm_pgoff are ignored and this driver goes ahead with mapping fbdev.buffer to user vma. Convert vm_insert_pages() to use vm_map_pages_zero(). We could later "fix" these drivers to behave according to the normal vm_pgoff offsetting simply by removing the _zero suffix on the function name and if that causes regressions, it gives us an easy way to revert. Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> Acked-by: Robin van der Gracht <robin@protonic.nl> Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
-rw-r--r--drivers/auxdisplay/ht16k33.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/auxdisplay/ht16k33.c b/drivers/auxdisplay/ht16k33.c
index 21393ec3b9a4..9c0bb771751d 100644
--- a/drivers/auxdisplay/ht16k33.c
+++ b/drivers/auxdisplay/ht16k33.c
@@ -223,9 +223,9 @@ static const struct backlight_ops ht16k33_bl_ops = {
static int ht16k33_mmap(struct fb_info *info, struct vm_area_struct *vma)
{
struct ht16k33_priv *priv = info->par;
+ struct page *pages = virt_to_page(priv->fbdev.buffer);
- return vm_insert_page(vma, vma->vm_start,
- virt_to_page(priv->fbdev.buffer));
+ return vm_map_pages_zero(vma, &pages, 1);
}
static struct fb_ops ht16k33_fb_ops = {