Commit 723be3c6 authored by Geert Uytterhoeven's avatar Geert Uytterhoeven
Browse files

m68k: sun3: Fix DEBUG_MMU_EMU build



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: 9fde0348 ("m68k: Remove set_fs()")
Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Link: https://lore.kernel.org/b1d12a1d24b4aea9f98d905383ba932b2dc382e6.1737387419.git.geert@linux-m68k.org
parent 751b3d8d
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -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 {
+2 −2
Original line number Diff line number Diff line
@@ -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