* Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > On Wed, 4 Nov 2009, Luis R. Rodriguez wrote: > > > > Can you please consider reviewing this issue and help determine if > > this indeed needs to be reverted for 2.6.32 and the next 2.6.31.y. > > > > I am curious if other devices would work by reverting this as well. > > [ ... ] For details please feel free to check: > > > > http://bugzilla.kernel.org/show_bug.cgi?id=14402 > > That same commit was the cause for > > http://bugzilla.kernel.org/show_bug.cgi?id=13940 > > and we just increased the rounding to make it go away (see commit > 15b812f1). But that was a hack. > > And if that didn't help the ath9k case, then we should just revert > entirely. Agreed - below is the combo 15b812f1 + 5d423ccd revert. (Would be nice to get the boot log of the latest post-15b812f1 kernel that Yinghai asked for before we revert, in the hope of better understanding the problem.) Thanks, Ingo Signed-off-by: Ingo Molnar <mingo@xxxxxxx> --- diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index d17d482..b322e30 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c @@ -617,7 +617,7 @@ __init int e820_search_gap(unsigned long *gapstart, unsigned long *gapsize, */ __init void e820_setup_gap(void) { - unsigned long gapstart, gapsize; + unsigned long gapstart, gapsize, round; int found; gapstart = 0x10000000; @@ -634,9 +634,14 @@ __init void e820_setup_gap(void) #endif /* - * e820_reserve_resources_late protect stolen RAM already + * See how much we want to round up: start off with + * rounding to the next 1MB area. */ - pci_mem_start = gapstart; + round = 0x100000; + while ((gapsize >> 4) > round) + round += round; + /* Fun with two's complement */ + pci_mem_start = (gapstart + round) & -round; printk(KERN_INFO "Allocating PCI resources starting at %lx (gap: %lx:%lx)\n", @@ -1378,8 +1383,8 @@ static unsigned long ram_alignment(resource_size_t pos) if (mb < 16) return 1024*1024; - /* To 64MB for anything above that */ - return 64*1024*1024; + /* To 32MB for anything above that */ + return 32*1024*1024; } #define MAX_RESOURCE_SIZE ((resource_size_t)-1) -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html