static void __init locate_unstable_memory(void) { struct membank *mb = &meminfo.bank[meminfo.nr_banks - 1]; unsigned long bank_size; unsigned long low, high; bank_size = apq8064_memory_bank_size(); low = meminfo.bank[0].start; high = mb->start + mb->size; /* Check if 32 bit overflow occured */ if (high < mb->start) high = ~0UL; low &= ~(bank_size - 1); if (high - low <= bank_size) return; apq8064_reserve_info.low_unstable_address = mb->start - MIN_MEMORY_BLOCK_SIZE + mb->size; apq8064_reserve_info.max_unstable_size = MIN_MEMORY_BLOCK_SIZE; apq8064_reserve_info.bank_size = bank_size; pr_info("low unstable address %lx max size %lx bank size %lx\n", apq8064_reserve_info.low_unstable_address, apq8064_reserve_info.max_unstable_size, apq8064_reserve_info.bank_size); }
static void __init locate_unstable_memory(void) { struct membank *mb = &meminfo.bank[meminfo.nr_banks - 1]; unsigned long bank_size; unsigned long low, high; bank_size = apq8064_memory_bank_size(); low = meminfo.bank[0].start; high = mb->start + mb->size; low &= ~(bank_size - 1); if (high - low <= bank_size) return; apq8064_reserve_info.low_unstable_address = low + bank_size; apq8064_reserve_info.max_unstable_size = high - low - bank_size; apq8064_reserve_info.bank_size = bank_size; pr_info("low unstable address %lx max size %lx bank size %lx\n", apq8064_reserve_info.low_unstable_address, apq8064_reserve_info.max_unstable_size, apq8064_reserve_info.bank_size); }