• S
    mm: introduce new vm_map_pages() and vm_map_pages_zero() API · a667d745
    Souptick Joarder 提交于
    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.
    
    Link: http://lkml.kernel.org/r/751cb8a0f4c3e67e95c58a3b072937617f338eea.1552921225.git.jrdr.linux@gmail.comSigned-off-by: NSouptick Joarder <jrdr.linux@gmail.com>
    Suggested-by: NRussell King <linux@armlinux.org.uk>
    Suggested-by: NMatthew Wilcox <willy@infradead.org>
    Reviewed-by: NMike Rapoport <rppt@linux.ibm.com>
    Tested-by: NHeiko Stuebner <heiko@sntech.de>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Rik van Riel <riel@surriel.com>
    Cc: Stephen Rothwell <sfr@canb.auug.org.au>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Robin Murphy <robin.murphy@arm.com>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Thierry Reding <treding@nvidia.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Marek Szyprowski <m.szyprowski@samsung.com>
    Cc: Stefan Richter <stefanr@s5r6.in-berlin.de>
    Cc: Sandy Huang <hjc@rock-chips.com>
    Cc: David Airlie <airlied@linux.ie>
    Cc: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
    Cc: Joerg Roedel <joro@8bytes.org>
    Cc: Pawel Osciak <pawel@osciak.com>
    Cc: Kyungmin Park <kyungmin.park@samsung.com>
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: Juergen Gross <jgross@suse.com>
    Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    a667d745
memory.c 127.1 KB