]> git.hungrycats.org Git - linux/commit
[PATCH] /dev/zero vs hugetlb mappings.
authorOleg Nesterov <oleg@tv-sign.ru>
Tue, 31 Aug 2004 03:33:57 +0000 (20:33 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Tue, 31 Aug 2004 03:33:57 +0000 (20:33 -0700)
commitec081b118e6c9a77912493959aea07bdfa15f05a
tree86f1bdeed7e6c8d3580797aed94d1e075a9cf4e5
parent82b11318cb6c9be10c8358d34ccbeeaacd7a999b
[PATCH] /dev/zero vs hugetlb mappings.

Hugetlbfs mmap with MAP_PRIVATE becomes MAP_SHARED silently, but
vma->vm_flags have no VM_SHARED bit.  Reading from /dev/zero into hugetlb
area will do:

read_zero()
    read_zero_pagealigned()
        if (vma->vm_flags & VM_SHARED)
            break;                      // fallback to clear_user()
        zap_page_range();
        zeromap_page_range();

It will hit BUG_ON() in unmap_hugepage_range() if region is not huge page
aligned, or silently convert it into the private anonymous mapping.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/char/mem.c