On Tue, 2007-10-16 at 18:28 +0200, Bernhard Walle wrote: > > @@ -736,7 +736,7 @@ static int __init smp_scan_config (unsig > smp_found_config = 1; > printk(KERN_INFO "found SMP MP-table at %08lx\n", > virt_to_phys(mpf)); > - reserve_bootmem(virt_to_phys(mpf), PAGE_SIZE); > + reserve_bootmem(virt_to_phys(mpf), PAGE_SIZE, 0); > if (mpf->mpf_physptr) { > /* Could you give all of these 0's a name? I really hate seeing random magic numbers in these things. 0 completely kills the ability of someone to read the code and figure out what it is trying to do without going and looking at reserve_bootmem(). Or, alternatively, do something like this: -extern void reserve_bootmem(unsigned long addr, unsigned long size); +/* + * If flags is 0, then the return value is always 0 (success). If + * flags contains BOOTMEM_EXCLUSIVE, then -EBUSY is returned if the + * memory already was reserved. + */ +extern int reserve_bootmem(unsigned long addr, unsigned long size, int flag); +int reserve_bootmem(unsigned long addr, unsigned long size) +{ + /* the 0 is because we don't + return reserve_bootmem_exclusive(addr, size, 0); +} Where all of the existing callers stay the same. But, the ones wanting exclusive access actually call the _exclusive() variant. -- Dave