Re: [PATCH v3 9/9] powerpc/mm: Use is_kernel_text() and is_kernel_inittext() helper

From: Kefeng Wang
Date: Tue Sep 28 2021 - 21:14:38 EST




On 2021/9/29 1:51, Christophe Leroy wrote:


Le 26/09/2021 à 09:20, Kefeng Wang a écrit :
Use is_kernel_text() and is_kernel_inittext() helper to simplify code,
also drop etext, _stext, _sinittext, _einittext declaration which
already declared in section.h.

Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Cc: Paul Mackerras <paulus@xxxxxxxxx>
Cc: linuxppc-dev@xxxxxxxxxxxxxxxx
Signed-off-by: Kefeng Wang <wangkefeng.wang@xxxxxxxxxx>
---
  arch/powerpc/mm/pgtable_32.c | 7 ++-----
  1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c
index dcf5ecca19d9..13c798308c2e 100644
--- a/arch/powerpc/mm/pgtable_32.c
+++ b/arch/powerpc/mm/pgtable_32.c
@@ -33,8 +33,6 @@
  #include <mm/mmu_decl.h>
-extern char etext[], _stext[], _sinittext[], _einittext[];
-
  static u8 early_fixmap_pagetable[FIXMAP_PTE_SIZE] __page_aligned_data;
  notrace void __init early_ioremap_init(void)
@@ -104,14 +102,13 @@ static void __init __mapin_ram_chunk(unsigned long offset, unsigned long top)
  {
      unsigned long v, s;
      phys_addr_t p;
-    int ktext;
+    bool ktext;
      s = offset;
      v = PAGE_OFFSET + s;
      p = memstart_addr + s;
      for (; s < top; s += PAGE_SIZE) {
-        ktext = ((char *)v >= _stext && (char *)v < etext) ||
-            ((char *)v >= _sinittext && (char *)v < _einittext);
+        ktext = (is_kernel_text(v) || is_kernel_inittext(v));

I think we could use core_kernel_next() instead.
Indead. oops, sorry for the build error, will update, thanks.


Build failure on mpc885_ads_defconfig

arch/powerpc/mm/pgtable_32.c: In function '__mapin_ram_chunk':
arch/powerpc/mm/pgtable_32.c:111:26: error: implicit declaration of function 'is_kernel_text'; did you mean 'is_kernel_inittext'? [-Werror=implicit-function-declaration]
  111 |                 ktext = (is_kernel_text(v) || is_kernel_inittext(v));
      |                          ^~~~~~~~~~~~~~
      |                          is_kernel_inittext
cc1: all warnings being treated as errors
make[2]: *** [scripts/Makefile.build:277: arch/powerpc/mm/pgtable_32.o] Error 1
make[1]: *** [scripts/Makefile.build:540: arch/powerpc/mm] Error 2
make: *** [Makefile:1868: arch/powerpc] Error 2


.