summaryrefslogtreecommitdiffstats
path: root/fs/proc
diff options
context:
space:
mode:
authorAlan Cox2008-05-23 22:04:31 +0200
committerLinus Torvalds2008-05-24 18:56:09 +0200
commit80119ef5c8153e0a6cc5edf00c083dc98a9bd348 (patch)
treea2af11a3991b1bebe9d764ab6d4d28891e86eda2 /fs/proc
parenttypes.h: don't expose struct ustat to userspace (diff)
downloadkernel-qcow2-linux-80119ef5c8153e0a6cc5edf00c083dc98a9bd348.tar.gz
kernel-qcow2-linux-80119ef5c8153e0a6cc5edf00c083dc98a9bd348.tar.xz
kernel-qcow2-linux-80119ef5c8153e0a6cc5edf00c083dc98a9bd348.zip
mm: fix atomic_t overflow in vm
The atomic_t type is 32bit but a 64bit system can have more than 2^32 pages of virtual address space available. Without this we overflow on ludicrously large mappings Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/proc')
-rw-r--r--fs/proc/proc_misc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/proc/proc_misc.c b/fs/proc/proc_misc.c
index 74a323d2b850..32dc14cd8900 100644
--- a/fs/proc/proc_misc.c
+++ b/fs/proc/proc_misc.c
@@ -139,7 +139,7 @@ static int meminfo_read_proc(char *page, char **start, off_t off,
#define K(x) ((x) << (PAGE_SHIFT - 10))
si_meminfo(&i);
si_swapinfo(&i);
- committed = atomic_read(&vm_committed_space);
+ committed = atomic_long_read(&vm_committed_space);
allowed = ((totalram_pages - hugetlb_total_pages())
* sysctl_overcommit_ratio / 100) + total_swap_pages;