On Wed, Oct 16, 2019 at 1:04 PM <greentime...@sifive.com> wrote: > > From: Greentime Hu <greentime...@sifive.com> > > This patch fixes the virtual address layout in pgtable.h. > The virtual address of FIXADDR_START and VMEMMAP_START should not be > overlapped. > These addresses will be existed at the same time in Linux kernel that they > can't > be overlapped. > > Fixes: d95f1a542c3d ("RISC-V: Implement sparsemem") > Signed-off-by: Greentime Hu <greentime...@sifive.com> > --- > arch/riscv/include/asm/pgtable.h | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/arch/riscv/include/asm/pgtable.h > b/arch/riscv/include/asm/pgtable.h > index 4f4162d90586..b927fb4ecf1c 100644 > --- a/arch/riscv/include/asm/pgtable.h > +++ b/arch/riscv/include/asm/pgtable.h > @@ -87,14 +87,6 @@ extern pgd_t swapper_pg_dir[]; > #define VMALLOC_END (PAGE_OFFSET - 1) > #define VMALLOC_START (PAGE_OFFSET - VMALLOC_SIZE) > > -#define FIXADDR_TOP VMALLOC_START > -#ifdef CONFIG_64BIT > -#define FIXADDR_SIZE PMD_SIZE > -#else > -#define FIXADDR_SIZE PGDIR_SIZE > -#endif > -#define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE) > - > /* > * Roughly size the vmemmap space to be large enough to fit enough > * struct pages to map half the virtual address space. Then > @@ -108,6 +100,14 @@ extern pgd_t swapper_pg_dir[]; > > #define vmemmap ((struct page *)VMEMMAP_START) > > +#define FIXADDR_TOP (VMEMMAP_START) > +#ifdef CONFIG_64BIT > +#define FIXADDR_SIZE PMD_SIZE > +#else > +#define FIXADDR_SIZE PGDIR_SIZE > +#endif > +#define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE) > + > /* > * ZERO_PAGE is a global shared page that is always zero, > * used for zero-mapped memory areas, etc. > -- > 2.17.1 >
Looks good to me. Reviewed-by: Anup Patel <a...@brainfault.org> Regards, Anup