summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorMatt Mackall <mpm@selenic.com>2008-12-09 13:14:21 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2008-12-10 08:01:53 -0800
commit49c50342c728344b79c8f9e8293637fe80ef5ad5 (patch)
treedec4b310b517d03b62181725026e85bb0cdcc2a0 /fs
parent653d22c0f5c41496c0e949ef5d141ab37c0b0580 (diff)
downloadlinux-49c50342c728344b79c8f9e8293637fe80ef5ad5.tar.gz
linux-49c50342c728344b79c8f9e8293637fe80ef5ad5.tar.bz2
linux-49c50342c728344b79c8f9e8293637fe80ef5ad5.zip
pagemap: fix 32-bit pagemap regression
The large pages fix from bcf8039ed45 broke 32-bit pagemap by pulling the pagemap entry code out into a function with the wrong return type. Pagemap entries are 64 bits on all systems and unsigned long is only 32 bits on 32-bit systems. Signed-off-by: Matt Mackall <mpm@selenic.com> Reported-by: Doug Graham <dgraham@nortel.com> Cc: Alexey Dobriyan <adobriyan@gmail.com> Cc: Dave Hansen <dave@linux.vnet.ibm.com> Cc: <stable@kernel.org> [2.6.26.x, 2.6.27.x] Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/proc/task_mmu.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index b770c095e45c..3a8bdd7f5756 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -557,9 +557,9 @@ static u64 swap_pte_to_pagemap_entry(pte_t pte)
return swp_type(e) | (swp_offset(e) << MAX_SWAPFILES_SHIFT);
}
-static unsigned long pte_to_pagemap_entry(pte_t pte)
+static u64 pte_to_pagemap_entry(pte_t pte)
{
- unsigned long pme = 0;
+ u64 pme = 0;
if (is_swap_pte(pte))
pme = PM_PFRAME(swap_pte_to_pagemap_entry(pte))
| PM_PSHIFT(PAGE_SHIFT) | PM_SWAP;