[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Kernel versions 6.x don't boot on Amiga 4000



Hi Stephen, Adrian

the only commits to hit arch/m68k/mm between 5.15 and now are:

29f28f8b826d m68k: fix livelock in uaccess
6d0b92254510 m68k/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
d92725256b4f mm: avoid unnecessary page fault retires on shared memory types
f95a387cdeb3 m68k: coldfire: drop ISA_DMA_API support
05d51e42df06 m68k: Introduce a virtual m68k machine
c4d5b6eef258 m68k: mm: Remove check for VM_IO to fix deferred I/O
36ef159f4408 mm: remove redundant check about FAULT_FLAG_ALLOW_RETRY bit
0e25498f8cd4 exit: Add and use make_task_dead.
376e3fdecb0d m68k: Enable memtest functionality
952eea9b01e4 memblock: allow to specify flags with memblock_add_node()

The first is a fix for the second so these should be tested together. None appear suspect to me.

Running memtest could incur a boot delay but AFAIR that isn't enabled by default, and it isn't implicated in the panic log Adrian posted.

Cheers,

	Michael

Am 24.02.2023 um 16:02 schrieb Michael Schmitz:
Hi Stephen,

that's apparently been corrected in later versions. Commit
ca831f29f8f25c97182e726429b38c0802200c8f (in from 5.17).

I doubt this would lead to different code generated.

Which was the first broken version you tried? That would narrow down the
search range considerably...

Cheers,

    Michael




Am 24.02.2023 um 14:09 schrieb Stephen Walsh:
FYI:

Just caught this trying a re-compile of kernel 5.15.2 from kernel org,
under debbootstrap/sbuild and qemu-system-m68k both produce this issue:


  CC      mm/process_vm_access.o
  CC      mm/page_alloc.o
mm/page_alloc.c: In function ‘mem_init_print_info’:
mm/page_alloc.c:8163:27: warning: comparison between two arrays
[-Warray-compare]
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                           ^~
mm/page_alloc.c:8167:9: note: in expansion of macro ‘adj_init_size’
 8167 |         adj_init_size(__init_begin, __init_end, init_data_size,
      |         ^~~~~~~~~~~~~
mm/page_alloc.c:8163:27: note: use ‘&__init_begin[0] <=
&_sinittext[0]’ to compare the addresses
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                           ^~
mm/page_alloc.c:8167:9: note: in expansion of macro ‘adj_init_size’
 8167 |         adj_init_size(__init_begin, __init_end, init_data_size,
      |         ^~~~~~~~~~~~~
mm/page_alloc.c:8163:41: warning: comparison between two arrays
[-Warray-compare]
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                                         ^
mm/page_alloc.c:8167:9: note: in expansion of macro ‘adj_init_size’
 8167 |         adj_init_size(__init_begin, __init_end, init_data_size,
      |         ^~~~~~~~~~~~~
mm/page_alloc.c:8163:41: note: use ‘&_sinittext[0] < &__init_end[0]’
to compare the addresses
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                                         ^
mm/page_alloc.c:8167:9: note: in expansion of macro ‘adj_init_size’
 8167 |         adj_init_size(__init_begin, __init_end, init_data_size,
      |         ^~~~~~~~~~~~~
mm/page_alloc.c:8163:27: warning: comparison between two arrays
[-Warray-compare]
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                           ^~
mm/page_alloc.c:8169:9: note: in expansion of macro ‘adj_init_size’
 8169 |         adj_init_size(_stext, _etext, codesize, _sinittext,
init_code_size);
      |         ^~~~~~~~~~~~~
mm/page_alloc.c:8163:27: note: use ‘&_stext[0] <= &_sinittext[0]’ to
compare the addresses
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                           ^~
mm/page_alloc.c:8169:9: note: in expansion of macro ‘adj_init_size’
 8169 |         adj_init_size(_stext, _etext, codesize, _sinittext,
init_code_size);
      |         ^~~~~~~~~~~~~
mm/page_alloc.c:8163:41: warning: comparison between two arrays
[-Warray-compare]
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                                         ^
mm/page_alloc.c:8169:9: note: in expansion of macro ‘adj_init_size’
 8169 |         adj_init_size(_stext, _etext, codesize, _sinittext,
init_code_size);
      |         ^~~~~~~~~~~~~
mm/page_alloc.c:8163:41: note: use ‘&_sinittext[0] < &_etext[0]’ to
compare the addresses
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                                         ^
mm/page_alloc.c:8169:9: note: in expansion of macro ‘adj_init_size’
 8169 |         adj_init_size(_stext, _etext, codesize, _sinittext,
init_code_size);
      |         ^~~~~~~~~~~~~
mm/page_alloc.c:8163:27: warning: comparison between two arrays
[-Warray-compare]
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                           ^~
mm/page_alloc.c:8170:9: note: in expansion of macro ‘adj_init_size’
 8170 |         adj_init_size(_sdata, _edata, datasize, __init_begin,
init_data_size);
      |         ^~~~~~~~~~~~~
mm/page_alloc.c:8163:27: note: use ‘&_sdata[0] <= &__init_begin[0]’ to
compare the addresses
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                           ^~
mm/page_alloc.c:8170:9: note: in expansion of macro ‘adj_init_size’
 8170 |         adj_init_size(_sdata, _edata, datasize, __init_begin,
init_data_size);
      |         ^~~~~~~~~~~~~
mm/page_alloc.c:8163:41: warning: comparison between two arrays
[-Warray-compare]
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                                         ^
mm/page_alloc.c:8170:9: note: in expansion of macro ‘adj_init_size’
 8170 |         adj_init_size(_sdata, _edata, datasize, __init_begin,
init_data_size);
      |         ^~~~~~~~~~~~~
mm/page_alloc.c:8163:41: note: use ‘&__init_begin[0] < &_edata[0]’ to
compare the addresses
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                                         ^
mm/page_alloc.c:8170:9: note: in expansion of macro ‘adj_init_size’
 8170 |         adj_init_size(_sdata, _edata, datasize, __init_begin,
init_data_size);
      |         ^~~~~~~~~~~~~
mm/page_alloc.c:8163:27: warning: comparison between two arrays
[-Warray-compare]
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                           ^~
mm/page_alloc.c:8171:9: note: in expansion of macro ‘adj_init_size’
 8171 |         adj_init_size(_stext, _etext, codesize,
__start_rodata, rosize);
      |         ^~~~~~~~~~~~~
mm/page_alloc.c:8163:27: note: use ‘&_stext[0] <= &__start_rodata[0]’
to compare the addresses
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                           ^~
mm/page_alloc.c:8171:9: note: in expansion of macro ‘adj_init_size’
 8171 |         adj_init_size(_stext, _etext, codesize,
__start_rodata, rosize);
      |         ^~~~~~~~~~~~~
mm/page_alloc.c:8163:41: warning: comparison between two arrays
[-Warray-compare]
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                                         ^
mm/page_alloc.c:8171:9: note: in expansion of macro ‘adj_init_size’
 8171 |         adj_init_size(_stext, _etext, codesize,
__start_rodata, rosize);
      |         ^~~~~~~~~~~~~
mm/page_alloc.c:8163:41: note: use ‘&__start_rodata[0] < &_etext[0]’
to compare the addresses
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                                         ^
mm/page_alloc.c:8171:9: note: in expansion of macro ‘adj_init_size’
 8171 |         adj_init_size(_stext, _etext, codesize,
__start_rodata, rosize);
      |         ^~~~~~~~~~~~~
mm/page_alloc.c:8163:27: warning: comparison between two arrays
[-Warray-compare]
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                           ^~
mm/page_alloc.c:8172:9: note: in expansion of macro ‘adj_init_size’
 8172 |         adj_init_size(_sdata, _edata, datasize,
__start_rodata, rosize);
      |         ^~~~~~~~~~~~~
mm/page_alloc.c:8163:27: note: use ‘&_sdata[0] <= &__start_rodata[0]’
to compare the addresses
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                           ^~
mm/page_alloc.c:8172:9: note: in expansion of macro ‘adj_init_size’
 8172 |         adj_init_size(_sdata, _edata, datasize,
__start_rodata, rosize);
      |         ^~~~~~~~~~~~~
mm/page_alloc.c:8163:41: warning: comparison between two arrays
[-Warray-compare]
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                                         ^
mm/page_alloc.c:8172:9: note: in expansion of macro ‘adj_init_size’
 8172 |         adj_init_size(_sdata, _edata, datasize,
__start_rodata, rosize);
      |         ^~~~~~~~~~~~~
mm/page_alloc.c:8163:41: note: use ‘&__start_rodata[0] < &_edata[0]’
to compare the addresses
 8163 |                 if (start <= pos && pos < end && size > adj) \
      |                                         ^
mm/page_alloc.c:8172:9: note: in expansion of macro ‘adj_init_size’
 8172 |         adj_init_size(_sdata, _edata, datasize,
__start_rodata, rosize);
      |         ^~~~~~~~~~~~~
  CC      mm/init-mm.o
  CC      mm/memblock.o








Reply to: