* [PATCH -next] module: fix build error when CONFIG_SMP is disabled
@ 2021-05-29 2:03 Bixuan Cui
2021-05-29 4:43 ` Sunnanyong (Nanyong Sun, Intelligent Computing Solution Development Dep)
0 siblings, 1 reply; 3+ messages in thread
From: Bixuan Cui @ 2021-05-29 2:03 UTC (permalink / raw)
To: paul.walmsley, palmer, aou
Cc: vincent.chen, sunnanyong, linux-riscv, linux-kernel, Bixuan Cui
Fix build error when disable CONFIG_SMP:
mm/pgtable-generic.o: In function `.L19':
pgtable-generic.c:(.text+0x42): undefined reference to `flush_pmd_tlb_range'
mm/pgtable-generic.o: In function `pmdp_huge_clear_flush':
pgtable-generic.c:(.text+0x6c): undefined reference to `flush_pmd_tlb_range'
mm/pgtable-generic.o: In function `pmdp_invalidate':
pgtable-generic.c:(.text+0x162): undefined reference to `flush_pmd_tlb_range'
Fixes: e88b333142e4 ("riscv: mm: add THP support on 64-bit")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Bixuan Cui <cuibixuan@huawei.com>
---
arch/riscv/include/asm/tlbflush.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/arch/riscv/include/asm/tlbflush.h b/arch/riscv/include/asm/tlbflush.h
index c84218ad7afc..9d5801f6e2c3 100644
--- a/arch/riscv/include/asm/tlbflush.h
+++ b/arch/riscv/include/asm/tlbflush.h
@@ -44,6 +44,12 @@ static inline void flush_tlb_range(struct vm_area_struct *vma,
local_flush_tlb_all();
}
+static inline void flush_pmd_tlb_range(struct vm_area_struct *vma,
+ unsigned long start, unsigned long end)
+{
+ local_flush_tlb_all();
+}
+
#define flush_tlb_mm(mm) flush_tlb_all()
#endif /* !CONFIG_SMP || !CONFIG_MMU */
--
2.17.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH -next] module: fix build error when CONFIG_SMP is disabled 2021-05-29 2:03 [PATCH -next] module: fix build error when CONFIG_SMP is disabled Bixuan Cui @ 2021-05-29 4:43 ` Sunnanyong (Nanyong Sun, Intelligent Computing Solution Development Dep) 2021-05-29 6:21 ` Bixuan Cui 0 siblings, 1 reply; 3+ messages in thread From: Sunnanyong (Nanyong Sun, Intelligent Computing Solution Development Dep) @ 2021-05-29 4:43 UTC (permalink / raw) To: Bixuan Cui, paul.walmsley, palmer, aou Cc: vincent.chen, linux-riscv, linux-kernel On 2021/5/29 10:03, Bixuan Cui wrote: > diff --git a/arch/riscv/include/asm/tlbflush.h b/arch/riscv/include/asm/tlbflush.h > index c84218ad7afc..9d5801f6e2c3 100644 > --- a/arch/riscv/include/asm/tlbflush.h > +++ b/arch/riscv/include/asm/tlbflush.h > @@ -44,6 +44,12 @@ static inline void flush_tlb_range(struct vm_area_struct *vma, > local_flush_tlb_all(); > } > > +static inline void flush_pmd_tlb_range(struct vm_area_struct *vma, > + unsigned long start, unsigned long end) > +{ > + local_flush_tlb_all(); > +} > + > #define flush_tlb_mm(mm) flush_tlb_all() > #endif /* !CONFIG_SMP || !CONFIG_MMU */ Move the prototype of flush_pmd_tlb_range from pgtable.h to tlbflush.h can also fix this problem, and it seems that declare flush_pmd_tlb_range in tlbflush.h is better. We could diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h index 29e2c836848d..eda31002c4b1 100644 --- a/arch/riscv/include/asm/pgtable.h +++ b/arch/riscv/include/asm/pgtable.h @@ -622,11 +622,6 @@ static inline pmd_t pmdp_establish(struct vm_area_struct *vma, { return __pmd(atomic_long_xchg((atomic_long_t *)pmdp, pmd_val(pmd))); } - -#define __HAVE_ARCH_FLUSH_PMD_TLB_RANGE -void flush_pmd_tlb_range(struct vm_area_struct *vma, unsigned long start, - unsigned long end); - #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ /* diff --git a/arch/riscv/include/asm/tlbflush.h b/arch/riscv/include/asm/tlbflush.h index c84218ad7afc..b9b9c64ac974 100644 --- a/arch/riscv/include/asm/tlbflush.h +++ b/arch/riscv/include/asm/tlbflush.h @@ -33,6 +33,11 @@ void flush_tlb_mm(struct mm_struct *mm); void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr); void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); +#ifdef CONFIG_TRANSPARENT_HUGEPAGE +#define __HAVE_ARCH_FLUSH_PMD_TLB_RANGE +void flush_pmd_tlb_range(struct vm_area_struct *vma, unsigned long start, + unsigned long end); +#endif /* CONFIG_TRANSPARENT_HUGEPAGE */ #else /* CONFIG_SMP && CONFIG_MMU */ #define flush_tlb_all() local_flush_tlb_all() In this way , flush_p(m/u)d_tlb_range will be defined in include/linux/pgtable.h if CONFIG_SMP is not set. _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH -next] module: fix build error when CONFIG_SMP is disabled 2021-05-29 4:43 ` Sunnanyong (Nanyong Sun, Intelligent Computing Solution Development Dep) @ 2021-05-29 6:21 ` Bixuan Cui 0 siblings, 0 replies; 3+ messages in thread From: Bixuan Cui @ 2021-05-29 6:21 UTC (permalink / raw) To: Sunnanyong (Nanyong Sun, Intelligent Computing Solution Development Dep), paul.walmsley, palmer, aou Cc: vincent.chen, linux-riscv, linux-kernel On 2021/5/29 12:43, Sunnanyong (Nanyong Sun, Intelligent Computing Solution Development Dep) wrote: > Move the prototype of flush_pmd_tlb_range from pgtable.h to tlbflush.h > > can also fix this problem, and it seems that declare flush_pmd_tlb_range in tlbflush.h > > is better. > > We could Agree with you. Thanks Bixuan Cui _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-05-29 6:22 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-05-29 2:03 [PATCH -next] module: fix build error when CONFIG_SMP is disabled Bixuan Cui 2021-05-29 4:43 ` Sunnanyong (Nanyong Sun, Intelligent Computing Solution Development Dep) 2021-05-29 6:21 ` Bixuan Cui
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox