Hi, Bernhard Walle <bwalle at suse.de> writes: > --- a/arch/x86/mm/init_64.c > +++ b/arch/x86/mm/init_64.c > @@ -798,12 +798,13 @@ void free_initrd_mem(unsigned long start > } > #endif > > -void __init reserve_bootmem_generic(unsigned long phys, unsigned len) > +int __init reserve_bootmem_generic(unsigned long phys, unsigned len, int flags) > { > #ifdef CONFIG_NUMA > int nid, next_nid; > #endif > unsigned long pfn = phys >> PAGE_SHIFT; > + int ret; > > if (pfn >= end_pfn) { > /* > @@ -811,11 +812,11 @@ void __init reserve_bootmem_generic(unsi > * firmware tables: > */ > if (pfn < max_pfn_mapped) > - return; > + return -EFAULT; This seemed to be `just do nothing' behaviour. Wouldn't 0 be more correct here? Or something else so there is a difference between the path that does not print a warning (the one below) and the path that does? > > printk(KERN_ERR "reserve_bootmem: illegal reserve %lx %u\n", > phys, len); > - return; > + return -EFAULT; > } Hannes