Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 14183
b: refs/heads/master
c: e18c687
h: refs/heads/master
i:
  14181: ecdf6db
  14179: 7919c13
  14175: 157a071
v: v3
  • Loading branch information
Andi Kleen authored and Linus Torvalds committed Nov 15, 2005
1 parent 8a728ff commit ec1b582
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b0d41693217b3bb5b837940dc7465e82a9d49476
refs/heads/master: e18c6874a505958d153a11f9d6947971c349008a
19 changes: 19 additions & 0 deletions trunk/arch/x86_64/mm/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ extern int swiotlb;

extern char _stext[];

static unsigned long dma_reserve __initdata;

DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);

/*
Expand Down Expand Up @@ -354,6 +356,21 @@ size_zones(unsigned long *z, unsigned long *h,
w += z[i];
h[i] = e820_hole_size(s, w);
}

/* Add the space pace needed for mem_map to the holes too. */
for (i = 0; i < MAX_NR_ZONES; i++)
h[i] += (z[i] * sizeof(struct page)) / PAGE_SIZE;

/* The 16MB DMA zone has the kernel and other misc mappings.
Account them too */
if (h[ZONE_DMA]) {
h[ZONE_DMA] += dma_reserve;
if (h[ZONE_DMA] >= z[ZONE_DMA]) {
printk(KERN_WARNING
"Kernel too large and filling up ZONE_DMA?\n");
h[ZONE_DMA] = z[ZONE_DMA];
}
}
}

#ifndef CONFIG_NUMA
Expand Down Expand Up @@ -510,6 +527,8 @@ void __init reserve_bootmem_generic(unsigned long phys, unsigned len)
#else
reserve_bootmem(phys, len);
#endif
if (phys+len <= MAX_DMA_PFN*PAGE_SIZE)
dma_reserve += len / PAGE_SIZE;
}

int kern_addr_valid(unsigned long addr)
Expand Down

0 comments on commit ec1b582

Please sign in to comment.