From be3ba4f4963be93e41824a4cd0e4424e9cb8eb9d Mon Sep 17 00:00:00 2001 From: William Lee Irwin III Date: Mon, 18 Oct 2004 18:11:44 -0700 Subject: [PATCH] [PATCH] procfs: fix task_mmu.c text size reporting Not all binfmts page align ->end_code and ->start_code, so the task_mmu statistics calculations need to perform this alignment themselves. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- fs/proc/task_mmu.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index 7998fa56282a5..98a507d4c06b3 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -9,7 +9,7 @@ char *task_mem(struct mm_struct *mm, char *buffer) unsigned long data, text, lib; data = mm->total_vm - mm->shared_vm - mm->stack_vm; - text = (mm->end_code - mm->start_code) >> 10; + text = (PAGE_ALIGN(mm->end_code) - (mm->start_code & PAGE_MASK)) >> 10; lib = (mm->exec_vm << (PAGE_SHIFT-10)) - text; buffer += sprintf(buffer, "VmSize:\t%8lu kB\n" @@ -36,7 +36,8 @@ int task_statm(struct mm_struct *mm, int *shared, int *text, int *data, int *resident) { *shared = mm->shared_vm; - *text = (mm->end_code - mm->start_code) >> PAGE_SHIFT; + *text = (PAGE_ALIGN(mm->end_code) - (mm->start_code & PAGE_MASK)) + >> PAGE_SHIFT; *data = mm->total_vm - mm->shared_vm - *text; *resident = mm->rss; return mm->total_vm; -- 2.53.0