Commit 49c50342 authored by Matt Mackall's avatar Matt Mackall Committed by Linus Torvalds

pagemap: fix 32-bit pagemap regression

The large pages fix from bcf8039e 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: default avatarMatt Mackall <mpm@selenic.com>
Reported-by: default avatarDoug 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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 653d22c0
...@@ -557,9 +557,9 @@ static u64 swap_pte_to_pagemap_entry(pte_t pte) ...@@ -557,9 +557,9 @@ static u64 swap_pte_to_pagemap_entry(pte_t pte)
return swp_type(e) | (swp_offset(e) << MAX_SWAPFILES_SHIFT); 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)) if (is_swap_pte(pte))
pme = PM_PFRAME(swap_pte_to_pagemap_entry(pte)) pme = PM_PFRAME(swap_pte_to_pagemap_entry(pte))
| PM_PSHIFT(PAGE_SHIFT) | PM_SWAP; | PM_PSHIFT(PAGE_SHIFT) | PM_SWAP;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment