git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Patched to 2.6.10-1.14_FC2.
[linux-2.6.git]
/
fs
/
proc
/
task_mmu.c
diff --git
a/fs/proc/task_mmu.c
b/fs/proc/task_mmu.c
index
e2ecc45
..
def2511
100644
(file)
--- 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;
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"
lib = (mm->exec_vm << (PAGE_SHIFT-10)) - text;
buffer += sprintf(buffer,
"VmSize:\t%8lu kB\n"
@@
-19,22
+19,23
@@
char *task_mem(struct mm_struct *mm, char *buffer)
"VmStk:\t%8lu kB\n"
"VmExe:\t%8lu kB\n"
"VmLib:\t%8lu kB\n"
"VmStk:\t%8lu kB\n"
"VmExe:\t%8lu kB\n"
"VmLib:\t%8lu kB\n"
+ "VmPTE:\t%8lu kB\n"
"StaBrk:\t%08lx kB\n"
"Brk:\t%08lx kB\n"
"StaStk:\t%08lx kB\n"
"StaBrk:\t%08lx kB\n"
"Brk:\t%08lx kB\n"
"StaStk:\t%08lx kB\n"
-#if __i386__
- "ExecLim:\t%08lx\n"
-#endif
,
(mm->total_vm - mm->reserved_vm) << (PAGE_SHIFT-10),
mm->locked_vm << (PAGE_SHIFT-10),
mm->rss << (PAGE_SHIFT-10),
data << (PAGE_SHIFT-10),
,
(mm->total_vm - mm->reserved_vm) << (PAGE_SHIFT-10),
mm->locked_vm << (PAGE_SHIFT-10),
mm->rss << (PAGE_SHIFT-10),
data << (PAGE_SHIFT-10),
- mm->stack_vm << (PAGE_SHIFT-10), text, lib, mm->start_brk, mm->brk, mm->start_stack
+ mm->stack_vm << (PAGE_SHIFT-10), text, lib,
+ (PTRS_PER_PTE*sizeof(pte_t)*mm->nr_ptes) >> 10,
+ mm->start_brk, mm->brk, mm->start_stack);
#if __i386__
#if __i386__
- , mm->context.exec_limit
+ if (!nx_enabled)
+ buffer += sprintf(buffer,
+ "ExecLim:\t%08lx\n", mm->context.exec_limit);
#endif
#endif
- );
return buffer;
}
return buffer;
}
@@
-47,7
+48,8
@@
int task_statm(struct mm_struct *mm, int *shared, int *text,
int *data, int *resident)
{
*shared = mm->rss - mm->anon_rss;
int *data, int *resident)
{
*shared = mm->rss - mm->anon_rss;
- *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;
*resident = mm->rss;
return mm->total_vm;
*data = mm->total_vm - mm->shared_vm;
*resident = mm->rss;
return mm->total_vm;
@@
-55,6
+57,9
@@
int task_statm(struct mm_struct *mm, int *shared, int *text,
static int show_map(struct seq_file *m, void *v)
{
static int show_map(struct seq_file *m, void *v)
{
+#ifdef __i386__
+ struct task_struct *task = m->private;
+#endif
struct vm_area_struct *map = v;
struct file *file = map->vm_file;
int flags = map->vm_flags;
struct vm_area_struct *map = v;
struct file *file = map->vm_file;
int flags = map->vm_flags;
@@
-73,7
+78,13
@@
static int show_map(struct seq_file *m, void *v)
map->vm_end,
flags & VM_READ ? 'r' : '-',
flags & VM_WRITE ? 'w' : '-',
map->vm_end,
flags & VM_READ ? 'r' : '-',
flags & VM_WRITE ? 'w' : '-',
- flags & VM_EXEC ? 'x' : '-',
+ (flags & VM_EXEC
+#ifdef __i386__
+ || (!nx_enabled &&
+ (map->vm_start < task->mm->context.exec_limit))
+#endif
+ )
+ ? 'x' : '-',
flags & VM_MAYSHARE ? 's' : 'p',
map->vm_pgoff << PAGE_SHIFT,
MAJOR(dev), MINOR(dev), ino, &len);
flags & VM_MAYSHARE ? 's' : 'p',
map->vm_pgoff << PAGE_SHIFT,
MAJOR(dev), MINOR(dev), ino, &len);