From: Ye Liu <liuye@kylinos.cn>
In io_mapping_map_user(), precompute the page protection flags in a local
variable before calling remap_pfn_range_notrack().
No functional change.
Signed-off-by: Ye Liu <liuye@kylinos.cn>
---
mm/io-mapping.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/mm/io-mapping.c b/mm/io-mapping.c
index 01b362799930..f44a6a134712 100644
--- a/mm/io-mapping.c
+++ b/mm/io-mapping.c
@@ -21,9 +21,10 @@ int io_mapping_map_user(struct io_mapping *iomap, struct vm_area_struct *vma,
if (WARN_ON_ONCE((vma->vm_flags & expected_flags) != expected_flags))
return -EINVAL;
+ pgprot_t remap_prot = __pgprot((pgprot_val(iomap->prot) & _PAGE_CACHE_MASK) |
+ (pgprot_val(vma->vm_page_prot) & ~_PAGE_CACHE_MASK));
+
/* We rely on prevalidation of the io-mapping to skip track_pfn(). */
- return remap_pfn_range_notrack(vma, addr, pfn, size,
- __pgprot((pgprot_val(iomap->prot) & _PAGE_CACHE_MASK) |
- (pgprot_val(vma->vm_page_prot) & ~_PAGE_CACHE_MASK)));
+ return remap_pfn_range_notrack(vma, addr, pfn, size, remap_prot);
}
EXPORT_SYMBOL_GPL(io_mapping_map_user);
--
2.25.1
On Sun, Apr 27, 2025 at 06:04:40PM +0800, Ye Liu wrote: > From: Ye Liu <liuye@kylinos.cn> > > In io_mapping_map_user(), precompute the page protection flags in a local > variable before calling remap_pfn_range_notrack(). > > No functional change. > > Signed-off-by: Ye Liu <liuye@kylinos.cn> Reviewed-by: Mike Rapoport (Microsoft) <rppt@kernel.org> > --- > mm/io-mapping.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/mm/io-mapping.c b/mm/io-mapping.c > index 01b362799930..f44a6a134712 100644 > --- a/mm/io-mapping.c > +++ b/mm/io-mapping.c > @@ -21,9 +21,10 @@ int io_mapping_map_user(struct io_mapping *iomap, struct vm_area_struct *vma, > if (WARN_ON_ONCE((vma->vm_flags & expected_flags) != expected_flags)) > return -EINVAL; > > + pgprot_t remap_prot = __pgprot((pgprot_val(iomap->prot) & _PAGE_CACHE_MASK) | > + (pgprot_val(vma->vm_page_prot) & ~_PAGE_CACHE_MASK)); > + > /* We rely on prevalidation of the io-mapping to skip track_pfn(). */ > - return remap_pfn_range_notrack(vma, addr, pfn, size, > - __pgprot((pgprot_val(iomap->prot) & _PAGE_CACHE_MASK) | > - (pgprot_val(vma->vm_page_prot) & ~_PAGE_CACHE_MASK))); > + return remap_pfn_range_notrack(vma, addr, pfn, size, remap_prot); > } > EXPORT_SYMBOL_GPL(io_mapping_map_user); > -- > 2.25.1 > -- Sincerely yours, Mike.
On 4/27/25 15:34, Ye Liu wrote: > From: Ye Liu <liuye@kylinos.cn> > > In io_mapping_map_user(), precompute the page protection flags in a local > variable before calling remap_pfn_range_notrack(). > > No functional change. > > Signed-off-by: Ye Liu <liuye@kylinos.cn> > --- > mm/io-mapping.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/mm/io-mapping.c b/mm/io-mapping.c > index 01b362799930..f44a6a134712 100644 > --- a/mm/io-mapping.c > +++ b/mm/io-mapping.c > @@ -21,9 +21,10 @@ int io_mapping_map_user(struct io_mapping *iomap, struct vm_area_struct *vma, > if (WARN_ON_ONCE((vma->vm_flags & expected_flags) != expected_flags)) > return -EINVAL; > > + pgprot_t remap_prot = __pgprot((pgprot_val(iomap->prot) & _PAGE_CACHE_MASK) | > + (pgprot_val(vma->vm_page_prot) & ~_PAGE_CACHE_MASK)); > + > /* We rely on prevalidation of the io-mapping to skip track_pfn(). */ > - return remap_pfn_range_notrack(vma, addr, pfn, size, > - __pgprot((pgprot_val(iomap->prot) & _PAGE_CACHE_MASK) | > - (pgprot_val(vma->vm_page_prot) & ~_PAGE_CACHE_MASK))); > + return remap_pfn_range_notrack(vma, addr, pfn, size, remap_prot); > } > EXPORT_SYMBOL_GPL(io_mapping_map_user); Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
On 27.04.25 12:04, Ye Liu wrote: > From: Ye Liu <liuye@kylinos.cn> > > In io_mapping_map_user(), precompute the page protection flags in a local > variable before calling remap_pfn_range_notrack(). > > No functional change. > > Signed-off-by: Ye Liu <liuye@kylinos.cn> > --- > mm/io-mapping.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/mm/io-mapping.c b/mm/io-mapping.c > index 01b362799930..f44a6a134712 100644 > --- a/mm/io-mapping.c > +++ b/mm/io-mapping.c > @@ -21,9 +21,10 @@ int io_mapping_map_user(struct io_mapping *iomap, struct vm_area_struct *vma, > if (WARN_ON_ONCE((vma->vm_flags & expected_flags) != expected_flags)) > return -EINVAL; > > + pgprot_t remap_prot = __pgprot((pgprot_val(iomap->prot) & _PAGE_CACHE_MASK) | > + (pgprot_val(vma->vm_page_prot) & ~_PAGE_CACHE_MASK)); > + > /* We rely on prevalidation of the io-mapping to skip track_pfn(). */ > - return remap_pfn_range_notrack(vma, addr, pfn, size, > - __pgprot((pgprot_val(iomap->prot) & _PAGE_CACHE_MASK) | > - (pgprot_val(vma->vm_page_prot) & ~_PAGE_CACHE_MASK))); > + return remap_pfn_range_notrack(vma, addr, pfn, size, remap_prot); > } > EXPORT_SYMBOL_GPL(io_mapping_map_user); Reviewed-by: David Hildenbrand <david@redhat.com> -- Cheers, David / dhildenb
© 2016 - 2025 Red Hat, Inc.