]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
m68k: sun3: Fix DEBUG_MMU_EMU build
authorGeert Uytterhoeven <geert@linux-m68k.org>
Mon, 20 Jan 2025 15:40:22 +0000 (16:40 +0100)
committerGeert Uytterhoeven <geert@linux-m68k.org>
Mon, 3 Feb 2025 13:32:51 +0000 (14:32 +0100)
With DEBUG_MMU_EMU enabled:

    arch/m68k/sun3/mmu_emu.c: In function ‘mmu_emu_handle_fault’:
    arch/m68k/sun3/mmu_emu.c:420:38: error: implicit declaration of function ‘get_fs’; did you mean ‘sget_fc’? [-Werror=implicit-function-declaration]
      420 |         pr_info("seg:%ld crp:%p ->", get_fs().seg, crp);
  |                                      ^~~~~~

    [...]

    arch/m68k/sun3/mmu_emu.c:420:46: error: request for member ‘seg’ in something not a structure or union
      420 |         pr_info("seg:%ld crp:%p ->", get_fs().seg, crp);
  |                                              ^

Fix this by reintroducing and using a helper to retrieve the current
value of the DFC register.

While at it, replace "%p" by "%px", as there is no point in printing
obfuscated pointers during debugging.

Fixes: 9fde0348640252c7 ("m68k: Remove set_fs()")
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://lore.kernel.org/b1d12a1d24b4aea9f98d905383ba932b2dc382e6.1737387419.git.geert@linux-m68k.org
arch/m68k/include/asm/processor.h
arch/m68k/sun3/mmu_emu.c

index 8f2676c3a9882dcdcf5f7952ac7d5c22a839e4c3..3c43c09d448945284d67ccf12d0c6a7e3cd72e37 100644 (file)
@@ -95,10 +95,24 @@ static inline void set_fc(unsigned long val)
                              "movec %0,%/dfc\n\t"
                              : /* no outputs */ : "r" (val) : "memory");
 }
+
+static inline unsigned long get_fc(void)
+{
+       unsigned long val;
+
+       __asm__ ("movec %/dfc,%0" : "=r" (val) : );
+
+       return val;
+}
 #else
 static inline void set_fc(unsigned long val)
 {
 }
+
+static inline unsigned long get_fc(void)
+{
+       return USER_DATA;
+}
 #endif /* CONFIG_CPU_HAS_ADDRESS_SPACES */
 
 struct thread_struct {
index 7b15cc12637bf31457c037f0ac62c064e805fa39..b39fc3717d8eaebdd517a9b9eaf0f76e3e06789c 100644 (file)
@@ -371,7 +371,7 @@ int mmu_emu_handle_fault (unsigned long vaddr, int read_flag, int kernel_fault)
        }
 
 #ifdef DEBUG_MMU_EMU
-       pr_info("%s: vaddr=%lx type=%s crp=%p\n", __func__, vaddr,
+       pr_info("%s: vaddr=%lx type=%s crp=%px\n", __func__, vaddr,
                str_read_write(read_flag), crp);
 #endif
 
@@ -418,7 +418,7 @@ int mmu_emu_handle_fault (unsigned long vaddr, int read_flag, int kernel_fault)
                pte_val (*pte) |= SUN3_PAGE_ACCESSED;
 
 #ifdef DEBUG_MMU_EMU
-       pr_info("seg:%ld crp:%p ->", get_fs().seg, crp);
+       pr_info("seg:%ld crp:%px ->", get_fc(), crp);
        print_pte_vaddr (vaddr);
        pr_cont("\n");
 #endif