Re: [Xen-devel] [PATCH 0/9] Use vm_insert_range and vm_insert_range_buggy
On Fri, Jan 11, 2019 at 8:31 PM Souptick Joarder wrote: > > 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 use it across > the drivers. > > vm_insert_range() is the API which could be used to mapped > kernel memory/pages in drivers which has considered vm_pgoff > > vm_insert_range_buggy() is the API which could be used to map > range of kernel memory/pages in drivers which has not considered > vm_pgoff. vm_pgoff is passed default as 0 for those drivers. > > We _could_ then at a later "fix" these drivers which are using > vm_insert_range_buggy() to behave according to the normal vm_pgoff > offsetting simply by removing the _buggy suffix on the function > name and if that causes regressions, it gives us an easy way to revert. > > There is an existing bug in [7/9], where user passed length is not > verified against object_count. For any value of length > object_count > it will end up overrun page array which could lead to a potential bug. > This is fixed as part of these conversion. > > Souptick Joarder (9): > mm: Introduce new vm_insert_range and vm_insert_range_buggy API > arch/arm/mm/dma-mapping.c: Convert to use vm_insert_range > drivers/firewire/core-iso.c: Convert to use vm_insert_range_buggy > drm/rockchip/rockchip_drm_gem.c: Convert to use vm_insert_range > drm/xen/xen_drm_front_gem.c: Convert to use vm_insert_range > iommu/dma-iommu.c: Convert to use vm_insert_range > videobuf2/videobuf2-dma-sg.c: Convert to use vm_insert_range_buggy > xen/gntdev.c: Convert to use vm_insert_range > xen/privcmd-buf.c: Convert to use vm_insert_range_buggy Any further comment on these patches ? > > arch/arm/mm/dma-mapping.c | 22 ++ > drivers/firewire/core-iso.c | 15 + > drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 17 + > drivers/gpu/drm/xen/xen_drm_front_gem.c | 18 ++--- > drivers/iommu/dma-iommu.c | 12 +--- > drivers/media/common/videobuf2/videobuf2-dma-sg.c | 22 ++ > drivers/xen/gntdev.c | 16 ++--- > drivers/xen/privcmd-buf.c | 8 +-- > include/linux/mm.h| 4 ++ > mm/memory.c | 81 > +++ > mm/nommu.c| 14 > 11 files changed, 129 insertions(+), 100 deletions(-) > > -- > 1.9.1 > ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH 0/9] Use vm_insert_range
On 11/21/18 2:56 PM, Souptick Joarder wrote: > On Thu, Nov 22, 2018 at 1:08 AM Boris Ostrovsky > wrote: >> On 11/21/18 1:24 AM, Souptick Joarder wrote: >>> On Thu, Nov 15, 2018 at 9:09 PM Souptick Joarder >>> wrote: 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 a new function and use it across the drivers. vm_insert_range is the new API which will be used to map a range of kernel memory/pages to user vma. All the applicable places are converted to use new vm_insert_range in this patch series. Souptick Joarder (9): mm: Introduce new vm_insert_range API arch/arm/mm/dma-mapping.c: Convert to use vm_insert_range drivers/firewire/core-iso.c: Convert to use vm_insert_range drm/rockchip/rockchip_drm_gem.c: Convert to use vm_insert_range drm/xen/xen_drm_front_gem.c: Convert to use vm_insert_range iommu/dma-iommu.c: Convert to use vm_insert_range videobuf2/videobuf2-dma-sg.c: Convert to use vm_insert_range xen/gntdev.c: Convert to use vm_insert_range xen/privcmd-buf.c: Convert to use vm_insert_range >>> Any further comment on driver changes ? >> Xen drivers (the last two patches) look fine to me. > Thanks, can I considered this as Reviewed-by ? Reviewed-by: Boris Ostrovsky ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH 0/9] Use vm_insert_range
On Thu, Nov 22, 2018 at 1:08 AM Boris Ostrovsky wrote: > > On 11/21/18 1:24 AM, Souptick Joarder wrote: > > On Thu, Nov 15, 2018 at 9:09 PM Souptick Joarder > > wrote: > >> 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 a new function and use it across > >> the drivers. > >> > >> vm_insert_range is the new API which will be used to map a > >> range of kernel memory/pages to user vma. > >> > >> All the applicable places are converted to use new vm_insert_range > >> in this patch series. > >> > >> Souptick Joarder (9): > >> mm: Introduce new vm_insert_range API > >> arch/arm/mm/dma-mapping.c: Convert to use vm_insert_range > >> drivers/firewire/core-iso.c: Convert to use vm_insert_range > >> drm/rockchip/rockchip_drm_gem.c: Convert to use vm_insert_range > >> drm/xen/xen_drm_front_gem.c: Convert to use vm_insert_range > >> iommu/dma-iommu.c: Convert to use vm_insert_range > >> videobuf2/videobuf2-dma-sg.c: Convert to use vm_insert_range > >> xen/gntdev.c: Convert to use vm_insert_range > >> xen/privcmd-buf.c: Convert to use vm_insert_range > > Any further comment on driver changes ? > > Xen drivers (the last two patches) look fine to me. Thanks, can I considered this as Reviewed-by ? > > -boris > > > >> arch/arm/mm/dma-mapping.c | 21 ++--- > >> drivers/firewire/core-iso.c | 15 ++-- > >> drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 20 ++-- > >> drivers/gpu/drm/xen/xen_drm_front_gem.c | 20 +--- > >> drivers/iommu/dma-iommu.c | 12 ++ > >> drivers/media/common/videobuf2/videobuf2-dma-sg.c | 23 ++- > >> drivers/xen/gntdev.c | 11 - > >> drivers/xen/privcmd-buf.c | 8 ++- > >> include/linux/mm_types.h | 3 +++ > >> mm/memory.c | 28 > >> +++ > >> mm/nommu.c| 7 ++ > >> 11 files changed, 70 insertions(+), 98 deletions(-) > >> > >> -- > >> 1.9.1 > >> > ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH 0/9] Use vm_insert_range
On 11/21/18 1:24 AM, Souptick Joarder wrote: > On Thu, Nov 15, 2018 at 9:09 PM Souptick Joarder wrote: >> 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 a new function and use it across >> the drivers. >> >> vm_insert_range is the new API which will be used to map a >> range of kernel memory/pages to user vma. >> >> All the applicable places are converted to use new vm_insert_range >> in this patch series. >> >> Souptick Joarder (9): >> mm: Introduce new vm_insert_range API >> arch/arm/mm/dma-mapping.c: Convert to use vm_insert_range >> drivers/firewire/core-iso.c: Convert to use vm_insert_range >> drm/rockchip/rockchip_drm_gem.c: Convert to use vm_insert_range >> drm/xen/xen_drm_front_gem.c: Convert to use vm_insert_range >> iommu/dma-iommu.c: Convert to use vm_insert_range >> videobuf2/videobuf2-dma-sg.c: Convert to use vm_insert_range >> xen/gntdev.c: Convert to use vm_insert_range >> xen/privcmd-buf.c: Convert to use vm_insert_range > Any further comment on driver changes ? Xen drivers (the last two patches) look fine to me. -boris >> arch/arm/mm/dma-mapping.c | 21 ++--- >> drivers/firewire/core-iso.c | 15 ++-- >> drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 20 ++-- >> drivers/gpu/drm/xen/xen_drm_front_gem.c | 20 +--- >> drivers/iommu/dma-iommu.c | 12 ++ >> drivers/media/common/videobuf2/videobuf2-dma-sg.c | 23 ++- >> drivers/xen/gntdev.c | 11 - >> drivers/xen/privcmd-buf.c | 8 ++- >> include/linux/mm_types.h | 3 +++ >> mm/memory.c | 28 >> +++ >> mm/nommu.c| 7 ++ >> 11 files changed, 70 insertions(+), 98 deletions(-) >> >> -- >> 1.9.1 >> ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH 0/9] Use vm_insert_range
On Thu, Nov 15, 2018 at 9:09 PM Souptick Joarder wrote: > > 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 a new function and use it across > the drivers. > > vm_insert_range is the new API which will be used to map a > range of kernel memory/pages to user vma. > > All the applicable places are converted to use new vm_insert_range > in this patch series. > > Souptick Joarder (9): > mm: Introduce new vm_insert_range API > arch/arm/mm/dma-mapping.c: Convert to use vm_insert_range > drivers/firewire/core-iso.c: Convert to use vm_insert_range > drm/rockchip/rockchip_drm_gem.c: Convert to use vm_insert_range > drm/xen/xen_drm_front_gem.c: Convert to use vm_insert_range > iommu/dma-iommu.c: Convert to use vm_insert_range > videobuf2/videobuf2-dma-sg.c: Convert to use vm_insert_range > xen/gntdev.c: Convert to use vm_insert_range > xen/privcmd-buf.c: Convert to use vm_insert_range Any further comment on driver changes ? > > arch/arm/mm/dma-mapping.c | 21 ++--- > drivers/firewire/core-iso.c | 15 ++-- > drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 20 ++-- > drivers/gpu/drm/xen/xen_drm_front_gem.c | 20 +--- > drivers/iommu/dma-iommu.c | 12 ++ > drivers/media/common/videobuf2/videobuf2-dma-sg.c | 23 ++- > drivers/xen/gntdev.c | 11 - > drivers/xen/privcmd-buf.c | 8 ++- > include/linux/mm_types.h | 3 +++ > mm/memory.c | 28 > +++ > mm/nommu.c| 7 ++ > 11 files changed, 70 insertions(+), 98 deletions(-) > > -- > 1.9.1 > ___ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel