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>

authored by Matt Mackall and committed by Linus Torvalds 49c50342 653d22c0

+2 -2
+2 -2
fs/proc/task_mmu.c
··· 557 557 return swp_type(e) | (swp_offset(e) << MAX_SWAPFILES_SHIFT); 558 558 } 559 559 560 - static unsigned long pte_to_pagemap_entry(pte_t pte) 560 + static u64 pte_to_pagemap_entry(pte_t pte) 561 561 { 562 - unsigned long pme = 0; 562 + u64 pme = 0; 563 563 if (is_swap_pte(pte)) 564 564 pme = PM_PFRAME(swap_pte_to_pagemap_entry(pte)) 565 565 | PM_PSHIFT(PAGE_SHIFT) | PM_SWAP;