summaryrefslogtreecommitdiffstats
path: root/drivers/auxdisplay
diff options
context:
space:
mode:
authorSouptick Joarder <jrdr.linux@gmail.com>2019-05-26 21:40:27 +0530
committerMiguel Ojeda <miguel.ojeda.sandonis@gmail.com>2019-06-20 15:06:17 +0200
commit461e274b2821901ca9c084f43074ad099848199f (patch)
tree113803216d499451833a728acb0075f3b1ff020d /drivers/auxdisplay
parent9e0babf2c06c73cda2c0cd37a1653d823adb40ec (diff)
downloadlinux-461e274b2821901ca9c084f43074ad099848199f.tar.gz
linux-461e274b2821901ca9c084f43074ad099848199f.tar.bz2
linux-461e274b2821901ca9c084f43074ad099848199f.zip
auxdisplay/cfag12864bfb.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 cfag12864b_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> Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Diffstat (limited to 'drivers/auxdisplay')
-rw-r--r--drivers/auxdisplay/cfag12864bfb.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/auxdisplay/cfag12864bfb.c b/drivers/auxdisplay/cfag12864bfb.c
index 40c8a552a478..4074886b7bc8 100644
--- a/drivers/auxdisplay/cfag12864bfb.c
+++ b/drivers/auxdisplay/cfag12864bfb.c
@@ -52,8 +52,9 @@ static const struct fb_var_screeninfo cfag12864bfb_var = {
static int cfag12864bfb_mmap(struct fb_info *info, struct vm_area_struct *vma)
{
- return vm_insert_page(vma, vma->vm_start,
- virt_to_page(cfag12864b_buffer));
+ struct page *pages = virt_to_page(cfag12864b_buffer);
+
+ return vm_map_pages_zero(vma, &pages, 1);
}
static struct fb_ops cfag12864bfb_ops = {