hugetlb.c (e0ec90ee7e6f6cbaa6d59ffb48d2a7af5e80e61d) hugetlb.c (de60f5f10c58d4f34b68622442c0e04180367f3f)
1/*
2 * Generic hugetlb support.
3 * (C) Nadia Yvette Chambers, April 2004
4 */
5#include <linux/list.h>
6#include <linux/init.h>
7#include <linux/module.h>
8#include <linux/mm.h>

--- 4123 unchanged lines hidden (view full) ---

4132 unsigned long addr, pgoff_t idx)
4133{
4134 unsigned long saddr = ((idx - svma->vm_pgoff) << PAGE_SHIFT) +
4135 svma->vm_start;
4136 unsigned long sbase = saddr & PUD_MASK;
4137 unsigned long s_end = sbase + PUD_SIZE;
4138
4139 /* Allow segments to share if only one is marked locked */
1/*
2 * Generic hugetlb support.
3 * (C) Nadia Yvette Chambers, April 2004
4 */
5#include <linux/list.h>
6#include <linux/init.h>
7#include <linux/module.h>
8#include <linux/mm.h>

--- 4123 unchanged lines hidden (view full) ---

4132 unsigned long addr, pgoff_t idx)
4133{
4134 unsigned long saddr = ((idx - svma->vm_pgoff) << PAGE_SHIFT) +
4135 svma->vm_start;
4136 unsigned long sbase = saddr & PUD_MASK;
4137 unsigned long s_end = sbase + PUD_SIZE;
4138
4139 /* Allow segments to share if only one is marked locked */
4140 unsigned long vm_flags = vma->vm_flags & ~VM_LOCKED;
4141 unsigned long svm_flags = svma->vm_flags & ~VM_LOCKED;
4140 unsigned long vm_flags = vma->vm_flags & VM_LOCKED_CLEAR_MASK;
4141 unsigned long svm_flags = svma->vm_flags & VM_LOCKED_CLEAR_MASK;
4142
4143 /*
4144 * match the virtual addresses, permission and the alignment of the
4145 * page table page.
4146 */
4147 if (pmd_index(addr) != pmd_index(saddr) ||
4148 vm_flags != svm_flags ||
4149 sbase < svma->vm_start || svma->vm_end < s_end)

--- 282 unchanged lines hidden ---
4142
4143 /*
4144 * match the virtual addresses, permission and the alignment of the
4145 * page table page.
4146 */
4147 if (pmd_index(addr) != pmd_index(saddr) ||
4148 vm_flags != svm_flags ||
4149 sbase < svma->vm_start || svma->vm_end < s_end)

--- 282 unchanged lines hidden ---