Bug#511419: [linux-image-2.6.26-1-686] Please apply upstream patch for unbreaking /proc/<pid>/pagemap on 32bit systems
Package: linux-image-2.6.26-1-686
Version: 2.6.26-11
Severity: normal
Tags: patch
--- Please enter the report below this line. ---
There is a patch in upstream kernel 2.6.28 which fixes an oversight bug
in the code for /proc/<pid>/pagemap file; you can find the commit at
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=49c50342c728344b79c8f9e8293637fe80ef5ad5
Without this bugfix, the pagemap file is missing the Present/Swapped
bits for every page on 32 bit systems, because they are encoded in bits
62 and 63, while the bug truncates the values to 32 bits.
The patch itself is attached as well. Would it be possible to apply it
to the kernel for Lenny? Or will it appear there anyway with a future
update?
Thanks,
Oliver
--- System information. ---
Architecture: i386
Kernel: Linux 2.6.26-1-686
Debian Release: lenny/sid
990 testing mainbox
990 testing deb.opera.com
500 unstable viewizard.com
500 unstable snapshots.ekiga.net
500 unstable mainbox
500 stable mainbox
500 stable emacs.orebokech.com
500 stable deb.opera.com
500 experimental mainbox
--- Package information. ---
Depends (Version) | Installed
=====================================-+-=============
module-init-tools | 3.4-1
initramfs-tools (>= 0.55) | 0.92g
OR yaird (>= 0.0.13) |
OR linux-initramfs-tool |
--- 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;
Reply to: