mm: introduce new vm_map_pages() and vm_map_pages_zero() API

Patch series "mm: Use vm_map_pages() and vm_map_pages_zero() API", v5.

This patch (of 5):

Previouly drivers have their own way of mapping range of kernel
pages/memory into user vma and this was done by invoking vm_insert_page()
within a loop.

As this pattern is common across different drivers, it can be generalized
by creating new functions and using them across the drivers.

vm_map_pages() is the API which can be used to map kernel memory/pages in
drivers which have considered vm_pgoff

vm_map_pages_zero() is the API which can be used to map a range of kernel
memory/pages in drivers which have not considered vm_pgoff.  vm_pgoff is
passed as default 0 for those drivers.

We _could_ then at a later "fix" these drivers which are using
vm_map_pages_zero() 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.

Tested on Rockchip hardware and display is working, including talking to
Lima via prime.

Signed-off-by: Souptick Joarder <>
Suggested-by: Russell King <>
Suggested-by: Matthew Wilcox <>
Reviewed-by: Mike Rapoport <>
Tested-by: Heiko Stuebner <>
Cc: Michal Hocko <>
Cc: "Kirill A. Shutemov" <>
Cc: Vlastimil Babka <>
Cc: Rik van Riel <>
Cc: Stephen Rothwell <>
Cc: Peter Zijlstra <>
Cc: Robin Murphy <>
Cc: Joonsoo Kim <>
Cc: Thierry Reding <>
Cc: Kees Cook <>
Cc: Marek Szyprowski <>
Cc: Stefan Richter <>
Cc: Sandy Huang <>
Cc: David Airlie <>
Cc: Oleksandr Andrushchenko <>
Cc: Joerg Roedel <>
Cc: Pawel Osciak <>
Cc: Kyungmin Park <>
Cc: Boris Ostrovsky <>
Cc: Juergen Gross <>
Cc: Mauro Carvalho Chehab <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
3 files changed