1
linux/include
Hugh Dickins 3bf5ee9564 [PATCH] freepgt: hugetlb_free_pgd_range
ia64 and ppc64 had hugetlb_free_pgtables functions which were no longer being
called, and it wasn't obvious what to do about them.

The ppc64 case turns out to be easy: the associated tables are noted elsewhere
and freed later, safe to either skip its hugetlb areas or go through the
motions of freeing nothing.  Since ia64 does need a special case, restore to
ppc64 the special case of skipping them.

The ia64 hugetlb case has been broken since pgd_addr_end went in, though it
probably appeared to work okay if you just had one such area; in fact it's
been broken much longer if you consider a long munmap spanning from another
region into the hugetlb region.

In the ia64 hugetlb region, more virtual address bits are available than in
the other regions, yet the page tables are structured the same way: the page
at the bottom is larger.  Here we need to scale down each addr before passing
it to the standard free_pgd_range.  Was about to write a hugely_scaled_down
macro, but found htlbpage_to_page already exists for just this purpose.  Fixed
off-by-one in ia64 is_hugepage_only_range.

Uninline free_pgd_range to make it available to ia64.  Make sure the
vma-gathering loop in free_pgtables cannot join a hugepage_only_range to any
other (safe to join huges?  probably but don't bother).

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-19 13:29:16 -07:00
..
acpi Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
asm-alpha Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
asm-arm [PATCH] ARM: fix debug macros 2005-04-17 16:28:31 +01:00
asm-arm26 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
asm-cris Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
asm-frv Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
asm-generic [PATCH] add Big Endian variants of ioread/iowrite 2005-04-16 15:25:54 -07:00
asm-h8300 [PATCH] h8300 header update 2005-04-16 15:25:21 -07:00
asm-i386 [PATCH] x86_64: add support for Intel dual-core detection and displaying 2005-04-16 15:25:15 -07:00
asm-ia64 [PATCH] freepgt: hugetlb_free_pgd_range 2005-04-19 13:29:16 -07:00
asm-m32r Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
asm-m68k [PATCH] ppc32: fix compilation error in include/asm-m68k/setup.h 2005-04-16 15:24:27 -07:00
asm-m68knommu Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
asm-mips [PATCH] consolidate timeout defintions in scsi.h 2005-04-18 12:31:52 -05:00
asm-parisc Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
asm-ppc [PATCH] u32 vs. pm_message_t in ppc and radeon 2005-04-16 15:25:34 -07:00
asm-ppc64 [PATCH] freepgt: hugetlb_free_pgd_range 2005-04-19 13:29:16 -07:00
asm-s390 [PATCH] freepgt: remove MM_VM_SIZE(mm) 2005-04-19 13:29:15 -07:00
asm-sh [PATCH] fix u32 vs. pm_message_t in rest of the tree 2005-04-16 15:25:37 -07:00
asm-sh64 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
asm-sparc [PATCH] sparc64: Fix stat 2005-04-18 15:13:15 -07:00
asm-sparc64 [PATCH] sparc64: Fix stat 2005-04-18 15:13:15 -07:00
asm-um Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
asm-v850 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
asm-x86_64 [PATCH] x86_64: Switch SMP bootup over to new CPU hotplug state machine 2005-04-16 15:25:19 -07:00
linux [PATCH] freepgt: hugetlb_free_pgd_range 2005-04-19 13:29:16 -07:00
math-emu Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
media Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mtd Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
net [PATCH] x86_64: Make IRDA devices are not really ISA devices not depend on CONFIG_ISA 2005-04-16 15:24:56 -07:00
pcmcia Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
rxrpc Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
scsi merge by hand (scsi_device.h) 2005-04-18 13:45:00 -05:00
sound Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
video Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00