diff options
| author | KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> | 2011-05-26 06:16:19 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-26 12:20:31 -0400 |
| commit | ca16d140af91febe25daeb9e032bf8bd46b8c31f (patch) | |
| tree | a093c3f244a1bdfc2a50e271a7e6df3324df0f05 | |
| parent | 4db70f73e56961b9bcdfd0c36c62847a18b7dbb5 (diff) | |
mm: don't access vm_flags as 'int'
The type of vma->vm_flags is 'unsigned long'. Neither 'int' nor
'unsigned int'. This patch fixes such misuse.
Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
[ Changed to use a typedef - we'll extend it to cover more cases
later, since there has been discussion about making it a 64-bit
type.. - Linus ]
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| -rw-r--r-- | fs/hugetlbfs/inode.c | 3 | ||||
| -rw-r--r-- | fs/proc/task_mmu.c | 2 | ||||
| -rw-r--r-- | include/linux/hugetlb.h | 6 | ||||
| -rw-r--r-- | include/linux/hugetlb_inline.h | 2 | ||||
| -rw-r--r-- | include/linux/mm.h | 6 | ||||
| -rw-r--r-- | include/linux/mm_types.h | 4 | ||||
| -rw-r--r-- | ipc/shm.c | 2 | ||||
| -rw-r--r-- | mm/fremap.c | 2 | ||||
| -rw-r--r-- | mm/hugetlb.c | 4 | ||||
| -rw-r--r-- | mm/memory.c | 2 | ||||
| -rw-r--r-- | mm/mlock.c | 8 | ||||
| -rw-r--r-- | mm/mmap.c | 8 |
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 | ||
| 924 | struct file *hugetlb_file_setup(const char *name, size_t size, int acctflag, | 924 | struct 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); |
| 42 | int hugetlb_reserve_pages(struct inode *inode, long from, long to, | 42 | int 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); |
| 45 | void hugetlb_unreserve_pages(struct inode *inode, long offset, long freed); | 45 | void hugetlb_unreserve_pages(struct inode *inode, long offset, long freed); |
| 46 | int dequeue_hwpoisoned_huge_page(struct page *page); | 46 | int dequeue_hwpoisoned_huge_page(struct page *page); |
| 47 | void copy_huge_page(struct page *dst, struct page *src); | 47 | void 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 | ||
| 169 | extern const struct file_operations hugetlbfs_file_operations; | 169 | extern const struct file_operations hugetlbfs_file_operations; |
| 170 | extern const struct vm_operations_struct hugetlb_vm_ops; | 170 | extern const struct vm_operations_struct hugetlb_vm_ops; |
| 171 | struct file *hugetlb_file_setup(const char *name, size_t size, int acct, | 171 | struct 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); |
| 173 | int hugetlb_get_quota(struct address_space *mapping, long delta); | 173 | int hugetlb_get_quota(struct address_space *mapping, long delta); |
| 174 | void hugetlb_put_quota(struct address_space *mapping, long delta); | 174 | void 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() |
| 194 | static inline struct file *hugetlb_file_setup(const char *name, size_t size, | 194 | static 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 | ||
| 8 | static inline int is_vm_hugetlb_page(struct vm_area_struct *vma) | 8 | static 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 | */ |
| 166 | static inline int is_linear_pfn_mapping(struct vm_area_struct *vma) | 166 | static 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 | ||
| 171 | static inline int is_pfn_mapping(struct vm_area_struct *vma) | 171 | static 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); |
| 1433 | extern unsigned long mmap_region(struct file *file, unsigned long addr, | 1433 | extern 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 | ||
| 1437 | static inline unsigned long do_mmap(struct file *file, unsigned long addr, | 1437 | static 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 | ||
| 105 | typedef 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 | */ |
| 110 | struct vm_region { | 112 | struct 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 */ |
| @@ -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, | |||
| 2833 | int hugetlb_reserve_pages(struct inode *inode, | 2833 | int 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 | ||
| 733 | static inline int is_cow_mapping(unsigned int flags) | 733 | static 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 | */ |
| 309 | static int mlock_fixup(struct vm_area_struct *vma, struct vm_area_struct **prev, | 309 | static 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)) |
| @@ -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 | */ |
| 1166 | int vma_wants_writenotify(struct vm_area_struct *vma) | 1166 | int 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 | */ |
| 1196 | static inline int accountable_mapping(struct file *file, unsigned int vm_flags) | 1196 | static 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 | ||
| 1208 | unsigned long mmap_region(struct file *file, unsigned long addr, | 1208 | unsigned 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; |
