On Tue, Aug 10, 2021 at 5:59 PM Mike Rapoport <rppt@xxxxxxxxxx> wrote: > > On Mon, Aug 09, 2021 at 03:40:04PM +0200, Geert Uytterhoeven wrote: > > CC Mike > > > > On Mon, Aug 9, 2021 at 3:32 PM Mikael Pettersson <mikpelinux@xxxxxxxxx> wrote: > > > On Mon, Aug 9, 2021 at 3:59 AM Finn Thain <fthain@xxxxxxxxxxxxxx> wrote: > > > > On Sun, 8 Aug 2021, Mikael Pettersson wrote: > > > > > On Sun, Aug 8, 2021 at 1:20 AM Finn Thain <fthain@xxxxxxxxxxxxxx> wrote: > > > > > > On Sat, 7 Aug 2021, Mikael Pettersson wrote: > > > > > > > I updated the 5.10 longterm kernel on one of my m68k/aranym VMs from > > > > > > > 5.10.47 to 5.10.56, and the new kernel failed to boot: > > > > > > > > > > > > > > ARAnyM 1.1.0 > > > > > > > Using config file: 'aranym1.headless.config' > > > > > > > Could not open joystick 0 > > > > > > > ARAnyM RTC Timer: /dev/rtc: Permission denied > > > > > > > ARAnyM LILO: Error loading ramdisk 'root.bin' > > > > > > > Blitter tried to read byte from register ff8a00 at 0077ee > > > > > > > > > > > > > > At this point it kept running, but produced no output to the console, > > > > > > > and would never get to the point of starting user-space. Attaching gdb > > > > > > > to aranym showed nothing interesting, i.e. it seemed to be executing > > > > > > > normally. > > > > > > My initial bisect was wrong. I tried reverting 8f34f1eac382 from > > > 5.10.57 but that made no difference, so I re-ran the git bisect with > > > all known good points pre-marked. This landed on: > > > # first bad commit: [ce6ee46e0f39ed97e23ebf7b5a565e0266a8a1a3] > > > mm/page_alloc: fix memory map initialization for descending nodes > > > > > > Reverting _that_ from 5.10.57 does unbreak that kernel. > > Indeed there is a problem with that commit in 5.10. The memmap > initialization relies on availability of zone_to_nid() to link struct page > to a node. But in 5.10 zone_to_nid() is only defined for NUMA, but not for > DISCONTIGMEM. > > Mikael, can you please try the patch below: > > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h > index 9d0c454d23cd..63b550403317 100644 > --- a/include/linux/mmzone.h > +++ b/include/linux/mmzone.h > @@ -445,7 +445,7 @@ struct zone { > */ > long lowmem_reserve[MAX_NR_ZONES]; > > -#ifdef CONFIG_NUMA > +#ifdef CONFIG_NEED_MULTIPLE_NODES > int node; > #endif > struct pglist_data *zone_pgdat; > @@ -896,7 +896,7 @@ static inline bool populated_zone(struct zone *zone) > return zone->present_pages; > } > > -#ifdef CONFIG_NUMA > +#ifdef CONFIG_NEED_MULTIPLE_NODES > static inline int zone_to_nid(struct zone *zone) > { > return zone->node; > > -- > Sincerely yours, > Mike. Applying this on top of 5.10.57 fixes the problem, thanks. Tested-by: Mikael Pettersson <mikpelinux@xxxxxxxxx>