On 07.02.2024 11:31, Juergen Gross wrote: > --- a/arch/x86/setup.c > +++ b/arch/x86/setup.c > @@ -184,6 +184,8 @@ arch_init(void *par) > { > static char hello[] = "Bootstrapping...\n"; > > + memset(&__bss_start, 0, &_end - &__bss_start);
Doesn't / shouldn't the loader guarantee this? I ask in particular because doing this here implies earlier assembly code may not write to any variable in .bss (nothing like that looks to exist right now, but who knows what may be added at some point). > --- a/include/mm.h > +++ b/include/mm.h > @@ -46,6 +46,8 @@ > #define round_pgdown(_p) ((_p) & PAGE_MASK) > #define round_pgup(_p) (((_p) + (PAGE_SIZE - 1)) & PAGE_MASK) > > +extern char _text, _etext, _erodata, _edata, _end, __bss_start; Maybe use the more conventional array form? Thus also eliminating the need for & at the use sites? Jan