aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/hugetlbfs/inode.c3
-rw-r--r--fs/proc/task_mmu.c2
-rw-r--r--include/linux/hugetlb.h6
-rw-r--r--include/linux/hugetlb_inline.h2
-rw-r--r--include/linux/mm.h6
-rw-r--r--include/linux/mm_types.h4
-rw-r--r--ipc/shm.c2
-rw-r--r--mm/fremap.c2
-rw-r--r--mm/hugetlb.c4
-rw-r--r--mm/memory.c2
-rw-r--r--mm/mlock.c8
-rw-r--r--mm/mmap.c8
12 files changed, 26 insertions, 23 deletions
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index e7a035781b7d..7aafeb8fa300 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -921,7 +921,8 @@ static int can_do_hugetlb_shm(void)
921 return capable(CAP_IPC_LOCK) || in_group_p(sysctl_hugetlb_shm_group); 921 return capable(CAP_IPC_LOCK) || in_group_p(sysctl_hugetlb_shm_group);
922} 922}
923 923
924struct file *hugetlb_file_setup(const char *name, size_t size, int acctflag, 924struct file *hugetlb_file_setup(const char *name, size_t size,
925 vm_flags_t acctflag,
925 struct user_struct **user, int creat_flags) 926 struct user_struct **user, int creat_flags)
926{ 927{
927 int error = -ENOMEM; 928 int error = -ENOMEM;
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index 2c9db29ea358..db15935fa757 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -211,7 +211,7 @@ static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma)
211{ 211{
212 struct mm_struct *mm = vma->vm_mm; 212 struct mm_struct *mm = vma->vm_mm;
213 struct file *file = vma->vm_file; 213 struct file *file = vma->vm_file;
214 int flags = vma->vm_flags; 214 vm_flags_t flags = vma->vm_flags;
215 unsigned long ino = 0; 215 unsigned long ino = 0;
216 unsigned long long pgoff = 0; 216 unsigned long long pgoff = 0;
217 unsigned long start, end; 217 unsigned long start, end;
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h
index 943c76b3d4bb..cf8931e1dd9d 100644
--- a/include/linux/hugetlb.h
+++ b/include/linux/hugetlb.h
@@ -41,7 +41,7 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
41 unsigned long address, unsigned int flags); 41 unsigned long address, unsigned int flags);
42int hugetlb_reserve_pages(struct inode *inode, long from, long to, 42int hugetlb_reserve_pages(struct inode *inode, long from, long to,
43 struct vm_area_struct *vma, 43 struct vm_area_struct *vma,
44 int acctflags); 44 vm_flags_t vm_flags);
45void hugetlb_unreserve_pages(struct inode *inode, long offset, long freed); 45void hugetlb_unreserve_pages(struct inode *inode, long offset, long freed);
46int dequeue_hwpoisoned_huge_page(struct page *page); 46int dequeue_hwpoisoned_huge_page(struct page *page);
47void copy_huge_page(struct page *dst, struct page *src); 47void copy_huge_page(struct page *dst, struct page *src);
@@ -168,7 +168,7 @@ static inline struct hugetlbfs_sb_info *HUGETLBFS_SB(struct super_block *sb)
168 168
169extern const struct file_operations hugetlbfs_file_operations; 169extern const struct file_operations hugetlbfs_file_operations;
170extern const struct vm_operations_struct hugetlb_vm_ops; 170extern const struct vm_operations_struct hugetlb_vm_ops;
171struct file *hugetlb_file_setup(const char *name, size_t size, int acct, 171struct file *hugetlb_file_setup(const char *name, size_t size, vm_flags_t acct,
172 struct user_struct **user, int creat_flags); 172 struct user_struct **user, int creat_flags);
173int hugetlb_get_quota(struct address_space *mapping, long delta); 173int hugetlb_get_quota(struct address_space *mapping, long delta);
174void hugetlb_put_quota(struct address_space *mapping, long delta); 174void hugetlb_put_quota(struct address_space *mapping, long delta);
@@ -192,7 +192,7 @@ static inline void set_file_hugepages(struct file *file)
192#define is_file_hugepages(file) 0 192#define is_file_hugepages(file) 0
193#define set_file_hugepages(file) BUG() 193#define set_file_hugepages(file) BUG()
194static inline struct file *hugetlb_file_setup(const char *name, size_t size, 194static inline struct file *hugetlb_file_setup(const char *name, size_t size,
195 int acctflag, struct user_struct **user, int creat_flags) 195 vm_flags_t acctflag, struct user_struct **user, int creat_flags)
196{ 196{
197 return ERR_PTR(-ENOSYS); 197 return ERR_PTR(-ENOSYS);
198} 198}
diff --git a/include/linux/hugetlb_inline.h b/include/linux/hugetlb_inline.h
index 6931489a5c14..2bb681fbeb35 100644
--- a/include/linux/hugetlb_inline.h
+++ b/include/linux/hugetlb_inline.h
@@ -7,7 +7,7 @@
7 7
8static inline int is_vm_hugetlb_page(struct vm_area_struct *vma) 8static inline int is_vm_hugetlb_page(struct vm_area_struct *vma)
9{ 9{
10 return vma->vm_flags & VM_HUGETLB; 10 return !!(vma->vm_flags & VM_HUGETLB);
11} 11}
12 12
13#else 13#else
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 8eb969ebf904..fb8e814f78dc 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -165,12 +165,12 @@ extern pgprot_t protection_map[16];
165 */ 165 */
166static inline int is_linear_pfn_mapping(struct vm_area_struct *vma) 166static inline int is_linear_pfn_mapping(struct vm_area_struct *vma)
167{ 167{
168 return (vma->vm_flags & VM_PFN_AT_MMAP); 168 return !!(vma->vm_flags & VM_PFN_AT_MMAP);
169} 169}
170 170
171static inline int is_pfn_mapping(struct vm_area_struct *vma) 171static inline int is_pfn_mapping(struct vm_area_struct *vma)
172{ 172{
173 return (vma->vm_flags & VM_PFNMAP); 173 return !!(vma->vm_flags & VM_PFNMAP);
174} 174}
175 175
176/* 176/*
@@ -1432,7 +1432,7 @@ extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
1432 unsigned long flag, unsigned long pgoff); 1432 unsigned long flag, unsigned long pgoff);
1433extern unsigned long mmap_region(struct file *file, unsigned long addr, 1433extern unsigned long mmap_region(struct file *file, unsigned long addr,
1434 unsigned long len, unsigned long flags, 1434 unsigned long len, unsigned long flags,
1435 unsigned int vm_flags, unsigned long pgoff); 1435 vm_flags_t vm_flags, unsigned long pgoff);
1436 1436
1437static inline unsigned long do_mmap(struct file *file, unsigned long addr, 1437static inline unsigned long do_mmap(struct file *file, unsigned long addr,
1438 unsigned long len, unsigned long prot, 1438 unsigned long len, unsigned long prot,
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index 071d459e866b..6fe96c19f85e 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -102,6 +102,8 @@ struct page {
102#endif 102#endif
103}; 103};
104 104
105typedef unsigned long __nocast vm_flags_t;
106
105/* 107/*
106 * A region containing a mapping of a non-memory backed file under NOMMU 108 * A region containing a mapping of a non-memory backed file under NOMMU
107 * conditions. These are held in a global tree and are pinned by the VMAs that 109 * conditions. These are held in a global tree and are pinned by the VMAs that
@@ -109,7 +111,7 @@ struct page {
109 */ 111 */
110struct vm_region { 112struct vm_region {
111 struct rb_node vm_rb; /* link in global region tree */ 113 struct rb_node vm_rb; /* link in global region tree */
112 unsigned long vm_flags; /* VMA vm_flags */ 114 vm_flags_t vm_flags; /* VMA vm_flags */
113 unsigned long vm_start; /* start address of region */ 115 unsigned long vm_start; /* start address of region */
114 unsigned long vm_end; /* region initialised to here */ 116 unsigned long vm_end; /* region initialised to here */
115 unsigned long vm_top; /* region allocated to here */ 117 unsigned long vm_top; /* region allocated to here */
diff --git a/ipc/shm.c b/ipc/shm.c
index 729acb7e3148..ab3385a21b27 100644
--- a/ipc/shm.c
+++ b/ipc/shm.c
@@ -347,7 +347,7 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params)
347 struct file * file; 347 struct file * file;
348 char name[13]; 348 char name[13];
349 int id; 349 int id;
350 int acctflag = 0; 350 vm_flags_t acctflag = 0;
351 351
352 if (size < SHMMIN || size > ns->shm_ctlmax) 352 if (size < SHMMIN || size > ns->shm_ctlmax)
353 return -EINVAL; 353 return -EINVAL;
diff --git a/mm/fremap.c b/mm/fremap.c
index 7f4123056e06..b8e0e2d468af 100644
--- a/mm/fremap.c
+++ b/mm/fremap.c
@@ -224,7 +224,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
224 /* 224 /*
225 * drop PG_Mlocked flag for over-mapped range 225 * drop PG_Mlocked flag for over-mapped range
226 */ 226 */
227 unsigned int saved_flags = vma->vm_flags; 227 vm_flags_t saved_flags = vma->vm_flags;
228 munlock_vma_pages_range(vma, start, start + size); 228 munlock_vma_pages_range(vma, start, start + size);
229 vma->vm_flags = saved_flags; 229 vma->vm_flags = saved_flags;
230 } 230 }
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 5fd68b95c671..f33bb319b73f 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -2833,7 +2833,7 @@ void hugetlb_change_protection(struct vm_area_struct *vma,
2833int hugetlb_reserve_pages(struct inode *inode, 2833int hugetlb_reserve_pages(struct inode *inode,
2834 long from, long to, 2834 long from, long to,
2835 struct vm_area_struct *vma, 2835 struct vm_area_struct *vma,
2836 int acctflag) 2836 vm_flags_t vm_flags)
2837{ 2837{
2838 long ret, chg; 2838 long ret, chg;
2839 struct hstate *h = hstate_inode(inode); 2839 struct hstate *h = hstate_inode(inode);
@@ -2843,7 +2843,7 @@ int hugetlb_reserve_pages(struct inode *inode,
2843 * attempt will be made for VM_NORESERVE to allocate a page 2843 * attempt will be made for VM_NORESERVE to allocate a page
2844 * and filesystem quota without using reserves 2844 * and filesystem quota without using reserves
2845 */ 2845 */
2846 if (acctflag & VM_NORESERVE) 2846 if (vm_flags & VM_NORESERVE)
2847 return 0; 2847 return 0;
2848 2848
2849 /* 2849 /*
diff --git a/mm/memory.c b/mm/memory.c
index b73f677f0bb1..fc24f7d788bd 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -730,7 +730,7 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
730 add_taint(TAINT_BAD_PAGE); 730 add_taint(TAINT_BAD_PAGE);
731} 731}
732 732
733static inline int is_cow_mapping(unsigned int flags) 733static inline int is_cow_mapping(vm_flags_t flags)
734{ 734{
735 return (flags & (VM_SHARED | VM_MAYWRITE)) == VM_MAYWRITE; 735 return (flags & (VM_SHARED | VM_MAYWRITE)) == VM_MAYWRITE;
736} 736}
diff --git a/mm/mlock.c b/mm/mlock.c
index 516b2c2ddd5a..048260c4e02e 100644
--- a/mm/mlock.c
+++ b/mm/mlock.c
@@ -307,13 +307,13 @@ void munlock_vma_pages_range(struct vm_area_struct *vma,
307 * For vmas that pass the filters, merge/split as appropriate. 307 * For vmas that pass the filters, merge/split as appropriate.
308 */ 308 */
309static int mlock_fixup(struct vm_area_struct *vma, struct vm_area_struct **prev, 309static int mlock_fixup(struct vm_area_struct *vma, struct vm_area_struct **prev,
310 unsigned long start, unsigned long end, unsigned int newflags) 310 unsigned long start, unsigned long end, vm_flags_t newflags)
311{ 311{
312 struct mm_struct *mm = vma->vm_mm; 312 struct mm_struct *mm = vma->vm_mm;
313 pgoff_t pgoff; 313 pgoff_t pgoff;
314 int nr_pages; 314 int nr_pages;
315 int ret = 0; 315 int ret = 0;
316 int lock = newflags & VM_LOCKED; 316 int lock = !!(newflags & VM_LOCKED);
317 317
318 if (newflags == vma->vm_flags || (vma->vm_flags & VM_SPECIAL) || 318 if (newflags == vma->vm_flags || (vma->vm_flags & VM_SPECIAL) ||
319 is_vm_hugetlb_page(vma) || vma == get_gate_vma(current->mm)) 319 is_vm_hugetlb_page(vma) || vma == get_gate_vma(current->mm))
@@ -385,7 +385,7 @@ static int do_mlock(unsigned long start, size_t len, int on)
385 prev = vma; 385 prev = vma;
386 386
387 for (nstart = start ; ; ) { 387 for (nstart = start ; ; ) {
388 unsigned int newflags; 388 vm_flags_t newflags;
389 389
390 /* Here we know that vma->vm_start <= nstart < vma->vm_end. */ 390 /* Here we know that vma->vm_start <= nstart < vma->vm_end. */
391 391
@@ -524,7 +524,7 @@ static int do_mlockall(int flags)
524 goto out; 524 goto out;
525 525
526 for (vma = current->mm->mmap; vma ; vma = prev->vm_next) { 526 for (vma = current->mm->mmap; vma ; vma = prev->vm_next) {
527 unsigned int newflags; 527 vm_flags_t newflags;
528 528
529 newflags = vma->vm_flags | VM_LOCKED; 529 newflags = vma->vm_flags | VM_LOCKED;
530 if (!(flags & MCL_CURRENT)) 530 if (!(flags & MCL_CURRENT))
diff --git a/mm/mmap.c b/mm/mmap.c
index ac2631b7477f..bbdc9af5e117 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -960,7 +960,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
960{ 960{
961 struct mm_struct * mm = current->mm; 961 struct mm_struct * mm = current->mm;
962 struct inode *inode; 962 struct inode *inode;
963 unsigned int vm_flags; 963 vm_flags_t vm_flags;
964 int error; 964 int error;
965 unsigned long reqprot = prot; 965 unsigned long reqprot = prot;
966 966
@@ -1165,7 +1165,7 @@ SYSCALL_DEFINE1(old_mmap, struct mmap_arg_struct __user *, arg)
1165 */ 1165 */
1166int vma_wants_writenotify(struct vm_area_struct *vma) 1166int vma_wants_writenotify(struct vm_area_struct *vma)
1167{ 1167{
1168 unsigned int vm_flags = vma->vm_flags; 1168 vm_flags_t vm_flags = vma->vm_flags;
1169 1169
1170 /* If it was private or non-writable, the write bit is already clear */ 1170 /* If it was private or non-writable, the write bit is already clear */
1171 if ((vm_flags & (VM_WRITE|VM_SHARED)) != ((VM_WRITE|VM_SHARED))) 1171 if ((vm_flags & (VM_WRITE|VM_SHARED)) != ((VM_WRITE|VM_SHARED)))
@@ -1193,7 +1193,7 @@ int vma_wants_writenotify(struct vm_area_struct *vma)
1193 * We account for memory if it's a private writeable mapping, 1193 * We account for memory if it's a private writeable mapping,
1194 * not hugepages and VM_NORESERVE wasn't set. 1194 * not hugepages and VM_NORESERVE wasn't set.
1195 */ 1195 */
1196static inline int accountable_mapping(struct file *file, unsigned int vm_flags) 1196static inline int accountable_mapping(struct file *file, vm_flags_t vm_flags)
1197{ 1197{
1198 /* 1198 /*
1199 * hugetlb has its own accounting separate from the core VM 1199 * hugetlb has its own accounting separate from the core VM
@@ -1207,7 +1207,7 @@ static inline int accountable_mapping(struct file *file, unsigned int vm_flags)
1207 1207
1208unsigned long mmap_region(struct file *file, unsigned long addr, 1208unsigned long mmap_region(struct file *file, unsigned long addr,
1209 unsigned long len, unsigned long flags, 1209 unsigned long len, unsigned long flags,
1210 unsigned int vm_flags, unsigned long pgoff) 1210 vm_flags_t vm_flags, unsigned long pgoff)
1211{ 1211{
1212 struct mm_struct *mm = current->mm; 1212 struct mm_struct *mm = current->mm;
1213 struct vm_area_struct *vma, *prev; 1213 struct vm_area_struct *vma, *prev;