diff options
author | Robert Richter <robert.richter@amd.com> | 2009-06-10 21:47:10 +0200 |
---|---|---|
committer | Robert Richter <robert.richter@amd.com> | 2009-06-10 21:47:10 +0200 |
commit | 0886751c5d8b19fcee2e65d34ae21c9111e652a9 (patch) | |
tree | 015e8c2b3d44d46e9e8fccd016340c51bc876d3b /arch/x86/mm/hugetlbpage.c | |
parent | 7e4e0bd50e80df2fe5501f48f872448376cdd997 (diff) | |
parent | 07a2039b8eb0af4ff464efd3dfd95de5c02648c6 (diff) | |
download | linux-0886751c5d8b19fcee2e65d34ae21c9111e652a9.tar.gz linux-0886751c5d8b19fcee2e65d34ae21c9111e652a9.tar.bz2 linux-0886751c5d8b19fcee2e65d34ae21c9111e652a9.zip |
Merge commit 'v2.6.30' into oprofile/master
Diffstat (limited to 'arch/x86/mm/hugetlbpage.c')
-rw-r--r-- | arch/x86/mm/hugetlbpage.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/x86/mm/hugetlbpage.c b/arch/x86/mm/hugetlbpage.c index 8f307d914c2e..f46c340727b8 100644 --- a/arch/x86/mm/hugetlbpage.c +++ b/arch/x86/mm/hugetlbpage.c @@ -26,12 +26,16 @@ static unsigned long page_table_shareable(struct vm_area_struct *svma, unsigned long sbase = saddr & PUD_MASK; unsigned long s_end = sbase + PUD_SIZE; + /* Allow segments to share if only one is marked locked */ + unsigned long vm_flags = vma->vm_flags & ~VM_LOCKED; + unsigned long svm_flags = svma->vm_flags & ~VM_LOCKED; + /* * match the virtual addresses, permission and the alignment of the * page table page. */ if (pmd_index(addr) != pmd_index(saddr) || - vma->vm_flags != svma->vm_flags || + vm_flags != svm_flags || sbase < svma->vm_start || svma->vm_end < s_end) return 0; |