Hi Finn, On Fri, Nov 12, 2021 at 1:37 AM Finn Thain <fthain@xxxxxxxxxxxxxx> wrote: > Enable the memtest functionality and rearrange some code to prevent it > from clobbering the initrd. > > The CONFIG_BLK_DEV_INITRD symbol was conditional on !defined(CONFIG_SUN3). > For simplicity, remove that test on the basis that m68k_ramdisk.size == 0 > on Sun 3. > > The SLIME source code at > http://sammy.net/sun3/ftp/pub/m68k/sun3/slime/slime-2.0.tar.gz > indicates that no BI_RAMDISK entry is ever passed to the kernel due > to #ifdef 0 around the relevant code. > > Cc: Mike Rapoport <rppt@xxxxxxxxxx> > Cc: Sam Creasey <sammy@xxxxxxxxx> > Cc: Jonathan Corbet <corbet@xxxxxxx> > Signed-off-by: Finn Thain <fthain@xxxxxxxxxxxxxx> Thanks for your patch! > --- a/arch/m68k/Kconfig > +++ b/arch/m68k/Kconfig > @@ -9,6 +9,7 @@ config M68K > select ARCH_HAVE_NMI_SAFE_CMPXCHG if RMW_INSNS > select ARCH_MIGHT_HAVE_PC_PARPORT if ISA > select ARCH_NO_PREEMPT if !COLDFIRE > + select ARCH_USE_MEMTEST if MMU_MOTOROLA? > select ARCH_WANT_IPC_PARSE_VERSION > select BINFMT_FLAT_ARGVP_ENVP_ON_STACK > select DMA_DIRECT_REMAP if HAS_DMA && MMU && !COLDFIRE > diff --git a/arch/m68k/kernel/setup_mm.c b/arch/m68k/kernel/setup_mm.c > index 4b51bfd38e5f..49e573b94326 100644 > --- a/arch/m68k/kernel/setup_mm.c > +++ b/arch/m68k/kernel/setup_mm.c > @@ -338,13 +338,6 @@ void __init setup_arch(char **cmdline_p) > panic("No configuration setup"); > } > > - paging_init(); > - > -#ifdef CONFIG_NATFEAT > - nf_init(); > -#endif > - > -#ifndef CONFIG_SUN3 > #ifdef CONFIG_BLK_DEV_INITRD > if (m68k_ramdisk.size) { > memblock_reserve(m68k_ramdisk.addr, m68k_ramdisk.size); Does this still work, given the initrd is part of memory that used to be added before (in paging_init(), but now is added later? (I'm no memblock expert, so that might be a silly question ;-) > @@ -354,6 +347,12 @@ void __init setup_arch(char **cmdline_p) > } > #endif > > + paging_init(); > + > +#ifdef CONFIG_NATFEAT > + nf_init(); > +#endif > + > #ifdef CONFIG_ATARI > if (MACH_IS_ATARI) > atari_stram_reserve_pages((void *)availmem); > @@ -364,8 +363,6 @@ void __init setup_arch(char **cmdline_p) > } > #endif > > -#endif /* !CONFIG_SUN3 */ > - > /* set ISA defs early as possible */ > #if defined(CONFIG_ISA) && defined(MULTI_ISA) > if (MACH_IS_Q40) { > diff --git a/arch/m68k/mm/motorola.c b/arch/m68k/mm/motorola.c > index 9f3f77785aa7..5b6575eb6d02 100644 > --- a/arch/m68k/mm/motorola.c > +++ b/arch/m68k/mm/motorola.c > @@ -455,6 +455,8 @@ void __init paging_init(void) > > flush_tlb_all(); > > + early_memtest(min_addr, max_addr); So this is available only if MMU_MOTOROLA, not for Sun-3, Coldfire, or nommu. > + > /* > * initialize the bad page table and bad page to point > * to a couple of allocated pages Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds