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>
This commit is contained in:

committed by
Linus Torvalds

parent
4db70f73e5
commit
ca16d140af
@@ -41,7 +41,7 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
|
||||
unsigned long address, unsigned int flags);
|
||||
int hugetlb_reserve_pages(struct inode *inode, long from, long to,
|
||||
struct vm_area_struct *vma,
|
||||
int acctflags);
|
||||
vm_flags_t vm_flags);
|
||||
void hugetlb_unreserve_pages(struct inode *inode, long offset, long freed);
|
||||
int dequeue_hwpoisoned_huge_page(struct page *page);
|
||||
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)
|
||||
|
||||
extern const struct file_operations hugetlbfs_file_operations;
|
||||
extern const struct vm_operations_struct hugetlb_vm_ops;
|
||||
struct file *hugetlb_file_setup(const char *name, size_t size, int acct,
|
||||
struct file *hugetlb_file_setup(const char *name, size_t size, vm_flags_t acct,
|
||||
struct user_struct **user, int creat_flags);
|
||||
int hugetlb_get_quota(struct address_space *mapping, long delta);
|
||||
void hugetlb_put_quota(struct address_space *mapping, long delta);
|
||||
@@ -192,7 +192,7 @@ static inline void set_file_hugepages(struct file *file)
|
||||
#define is_file_hugepages(file) 0
|
||||
#define set_file_hugepages(file) BUG()
|
||||
static inline struct file *hugetlb_file_setup(const char *name, size_t size,
|
||||
int acctflag, struct user_struct **user, int creat_flags)
|
||||
vm_flags_t acctflag, struct user_struct **user, int creat_flags)
|
||||
{
|
||||
return ERR_PTR(-ENOSYS);
|
||||
}
|
||||
|
@@ -7,7 +7,7 @@
|
||||
|
||||
static inline int is_vm_hugetlb_page(struct vm_area_struct *vma)
|
||||
{
|
||||
return vma->vm_flags & VM_HUGETLB;
|
||||
return !!(vma->vm_flags & VM_HUGETLB);
|
||||
}
|
||||
|
||||
#else
|
||||
|
@@ -165,12 +165,12 @@ extern pgprot_t protection_map[16];
|
||||
*/
|
||||
static inline int is_linear_pfn_mapping(struct vm_area_struct *vma)
|
||||
{
|
||||
return (vma->vm_flags & VM_PFN_AT_MMAP);
|
||||
return !!(vma->vm_flags & VM_PFN_AT_MMAP);
|
||||
}
|
||||
|
||||
static inline int is_pfn_mapping(struct vm_area_struct *vma)
|
||||
{
|
||||
return (vma->vm_flags & VM_PFNMAP);
|
||||
return !!(vma->vm_flags & VM_PFNMAP);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1432,7 +1432,7 @@ extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
|
||||
unsigned long flag, unsigned long pgoff);
|
||||
extern unsigned long mmap_region(struct file *file, unsigned long addr,
|
||||
unsigned long len, unsigned long flags,
|
||||
unsigned int vm_flags, unsigned long pgoff);
|
||||
vm_flags_t vm_flags, unsigned long pgoff);
|
||||
|
||||
static inline unsigned long do_mmap(struct file *file, unsigned long addr,
|
||||
unsigned long len, unsigned long prot,
|
||||
|
@@ -102,6 +102,8 @@ struct page {
|
||||
#endif
|
||||
};
|
||||
|
||||
typedef unsigned long __nocast vm_flags_t;
|
||||
|
||||
/*
|
||||
* A region containing a mapping of a non-memory backed file under NOMMU
|
||||
* conditions. These are held in a global tree and are pinned by the VMAs that
|
||||
@@ -109,7 +111,7 @@ struct page {
|
||||
*/
|
||||
struct vm_region {
|
||||
struct rb_node vm_rb; /* link in global region tree */
|
||||
unsigned long vm_flags; /* VMA vm_flags */
|
||||
vm_flags_t vm_flags; /* VMA vm_flags */
|
||||
unsigned long vm_start; /* start address of region */
|
||||
unsigned long vm_end; /* region initialised to here */
|
||||
unsigned long vm_top; /* region allocated to here */
|
||||
|
Reference in New Issue
Block a user