[PATCH v4 5/8] arch: introduce set_direct_map_valid_noflush()

Mike Rapoport rppt at kernel.org
Mon Oct 7 23:19:13 PDT 2024


Hi Huacai,

On Tue, Oct 08, 2024 at 10:11:25AM +0800, Huacai Chen wrote:
> Hi, Mike,
> 
> On Mon, Oct 7, 2024 at 2:30 PM Mike Rapoport <rppt at kernel.org> wrote:
> >
> > From: "Mike Rapoport (Microsoft)" <rppt at kernel.org>
> >
> > Add an API that will allow updates of the direct/linear map for a set of
> > physically contiguous pages.
> >
> > It will be used in the following patches.
> >
> > Signed-off-by: Mike Rapoport (Microsoft) <rppt at kernel.org>
> > ---
> >  arch/arm64/include/asm/set_memory.h     |  1 +
> >  arch/arm64/mm/pageattr.c                | 10 ++++++++++
> >  arch/loongarch/include/asm/set_memory.h |  1 +
> >  arch/loongarch/mm/pageattr.c            | 21 +++++++++++++++++++++
> >  arch/riscv/include/asm/set_memory.h     |  1 +
> >  arch/riscv/mm/pageattr.c                | 15 +++++++++++++++
> >  arch/s390/include/asm/set_memory.h      |  1 +
> >  arch/s390/mm/pageattr.c                 | 11 +++++++++++
> >  arch/x86/include/asm/set_memory.h       |  1 +
> >  arch/x86/mm/pat/set_memory.c            |  8 ++++++++
> >  include/linux/set_memory.h              |  6 ++++++
> >  11 files changed, 76 insertions(+)
> >
> > diff --git a/arch/loongarch/include/asm/set_memory.h b/arch/loongarch/include/asm/set_memory.h
> > index d70505b6676c..55dfaefd02c8 100644
> > --- a/arch/loongarch/include/asm/set_memory.h
> > +++ b/arch/loongarch/include/asm/set_memory.h
> > @@ -17,5 +17,6 @@ int set_memory_rw(unsigned long addr, int numpages);
> >  bool kernel_page_present(struct page *page);
> >  int set_direct_map_default_noflush(struct page *page);
> >  int set_direct_map_invalid_noflush(struct page *page);
> > +int set_direct_map_valid_noflush(struct page *page, unsigned nr, bool valid);
> >
> >  #endif /* _ASM_LOONGARCH_SET_MEMORY_H */
> > diff --git a/arch/loongarch/mm/pageattr.c b/arch/loongarch/mm/pageattr.c
> > index ffd8d76021d4..f14b40c968b4 100644
> > --- a/arch/loongarch/mm/pageattr.c
> > +++ b/arch/loongarch/mm/pageattr.c
> > @@ -216,3 +216,24 @@ int set_direct_map_invalid_noflush(struct page *page)
> >
> >         return __set_memory(addr, 1, __pgprot(0), __pgprot(_PAGE_PRESENT | _PAGE_VALID));
> >  }
> > +
> > +int set_direct_map_valid_noflush(struct page *page, unsigned nr, bool valid)
> > +{
> > +       unsigned long addr = (unsigned long)page_address(page);
> > +       pgprot_t set, clear;
> > +
> > +       return __set_memory((unsigned long)page_address(page), nr, set, clear);
> This line should be removed.

Argh, copy/paste is so hard...

Thanks, will do.
 
> Huacai

-- 
Sincerely yours,
Mike.



More information about the linux-snps-arc mailing list