Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 356253
b: refs/heads/master
c: 595ad9a
h: refs/heads/master
i:
  356251: aa5e728
v: v3
  • Loading branch information
Yinghai Lu authored and H. Peter Anvin committed Jan 30, 2013
1 parent a95c5ce commit c610cd7
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 16 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d1af6d045fba6b070fa81f54dfe9227214be99ea
refs/heads/master: 595ad9af8584908ea5fb698b836169d05b99f186
16 changes: 1 addition & 15 deletions trunk/arch/x86/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -363,20 +363,6 @@ static void __init relocate_initrd(void)
ramdisk_here, ramdisk_here + ramdisk_size - 1);
}

static u64 __init get_mem_size(unsigned long limit_pfn)
{
int i;
u64 mapped_pages = 0;
unsigned long start_pfn, end_pfn;

for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, NULL) {
start_pfn = min_t(unsigned long, start_pfn, limit_pfn);
end_pfn = min_t(unsigned long, end_pfn, limit_pfn);
mapped_pages += end_pfn - start_pfn;
}

return mapped_pages << PAGE_SHIFT;
}
static void __init early_reserve_initrd(void)
{
/* Assume only end is not page aligned */
Expand Down Expand Up @@ -404,7 +390,7 @@ static void __init reserve_initrd(void)

initrd_start = 0;

mapped_size = get_mem_size(max_pfn_mapped);
mapped_size = memblock_mem_size(max_pfn_mapped);
if (ramdisk_size >= (mapped_size>>1))
panic("initrd too large to handle, "
"disabling initrd (%lld needed, %lld available)\n",
Expand Down
1 change: 1 addition & 0 deletions trunk/include/linux/memblock.h
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@ phys_addr_t memblock_alloc_base(phys_addr_t size, phys_addr_t align,
phys_addr_t __memblock_alloc_base(phys_addr_t size, phys_addr_t align,
phys_addr_t max_addr);
phys_addr_t memblock_phys_mem_size(void);
phys_addr_t memblock_mem_size(unsigned long limit_pfn);
phys_addr_t memblock_start_of_DRAM(void);
phys_addr_t memblock_end_of_DRAM(void);
void memblock_enforce_memory_limit(phys_addr_t memory_limit);
Expand Down
17 changes: 17 additions & 0 deletions trunk/mm/memblock.c
Original file line number Diff line number Diff line change
Expand Up @@ -828,6 +828,23 @@ phys_addr_t __init memblock_phys_mem_size(void)
return memblock.memory.total_size;
}

phys_addr_t __init memblock_mem_size(unsigned long limit_pfn)
{
unsigned long pages = 0;
struct memblock_region *r;
unsigned long start_pfn, end_pfn;

for_each_memblock(memory, r) {
start_pfn = memblock_region_memory_base_pfn(r);
end_pfn = memblock_region_memory_end_pfn(r);
start_pfn = min_t(unsigned long, start_pfn, limit_pfn);
end_pfn = min_t(unsigned long, end_pfn, limit_pfn);
pages += end_pfn - start_pfn;
}

return (phys_addr_t)pages << PAGE_SHIFT;
}

/* lowest address */
phys_addr_t __init_memblock memblock_start_of_DRAM(void)
{
Expand Down

0 comments on commit c610cd7

Please sign in to comment.