Re: [PATCH 04/16] mm/nommu: use vm_flags_t for vma flags

From: Konstantin Khlebnikov
Date: Wed Mar 21 2012 - 03:20:52 EST


Greg Ungerer wrote:

Hi Konstantin,

On 21/03/12 16:56, Konstantin Khlebnikov wrote:
Signed-off-by: Konstantin Khlebnikov<khlebnikov@xxxxxxxxxx>
Cc: David Howells<dhowells@xxxxxxxxxx>
Cc: Greg Ungerer<gerg@xxxxxxxxxxx>
---
fs/proc/nommu.c | 3 ++-
fs/proc/task_nommu.c | 14 ++++++++------
mm/nommu.c | 19 ++++++++++---------
3 files changed, 20 insertions(+), 16 deletions(-)

diff --git a/fs/proc/nommu.c b/fs/proc/nommu.c
index b1822dd..cadc798 100644
--- a/fs/proc/nommu.c
+++ b/fs/proc/nommu.c
@@ -39,7 +39,8 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region)
unsigned long ino = 0;
struct file *file;
dev_t dev = 0;
- int flags, len;
+ int len;
+ vm_flags_t vm_flags;

flags = region->vm_flags;
^^^^^
I think you want vm_flags here right?
There is other uses of "flags" in this function as well.

Right, I missed this.

Sorry for my cheating, I didn't check compiling for all possible targets =)


Regards
Greg


file = region->vm_file;
diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c
index 8aaba8c..9abbc66 100644
--- a/fs/proc/task_nommu.c
+++ b/fs/proc/task_nommu.c
@@ -142,10 +142,11 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma,
unsigned long ino = 0;
struct file *file;
dev_t dev = 0;
- int flags, len;
+ int len;
+ vm_flags_t vm_flags;
unsigned long long pgoff = 0;

- flags = vma->vm_flags;
+ vm_flags = vma->vm_flags;
file = vma->vm_file;

if (file) {
@@ -159,10 +160,11 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma,
"%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu %n",
vma->vm_start,
vma->vm_end,
- flags& VM_READ ? 'r' : '-',
- flags& VM_WRITE ? 'w' : '-',
- flags& VM_EXEC ? 'x' : '-',
- flags& VM_MAYSHARE ? flags& VM_SHARED ? 'S' : 's' : 'p',
+ vm_flags& VM_READ ? 'r' : '-',
+ vm_flags& VM_WRITE ? 'w' : '-',
+ vm_flags& VM_EXEC ? 'x' : '-',
+ vm_flags& VM_MAYSHARE ?
+ vm_flags& VM_SHARED ? 'S' : 's' : 'p',
pgoff,
MAJOR(dev), MINOR(dev), ino,&len);

diff --git a/mm/nommu.c b/mm/nommu.c
index f59e170..33d0ab7 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -130,7 +130,7 @@ int __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
int *retry)
{
struct vm_area_struct *vma;
- unsigned long vm_flags;
+ vm_flags_t vm_flags;
int i;

/* calculate required read or write permissions.
@@ -658,13 +658,13 @@ static void put_nommu_region(struct vm_region *region)
/*
* update protection on a vma
*/
-static void protect_vma(struct vm_area_struct *vma, unsigned long flags)
+static void protect_vma(struct vm_area_struct *vma, vm_flags_t vm_flags)
{
#ifdef CONFIG_MPU
struct mm_struct *mm = vma->vm_mm;
long start = vma->vm_start& PAGE_MASK;
while (start< vma->vm_end) {
- protect_page(mm, start, flags);
+ protect_page(mm, start, vm_flags);
start += PAGE_SIZE;
}
update_protections(mm);
@@ -1060,12 +1060,12 @@ static int validate_mmap_request(struct file *file,
* we've determined that we can make the mapping, now translate what we
* now know into VMA flags
*/
-static unsigned long determine_vm_flags(struct file *file,
- unsigned long prot,
- unsigned long flags,
- unsigned long capabilities)
+static vm_flags_t determine_vm_flags(struct file *file,
+ unsigned long prot,
+ unsigned long flags,
+ unsigned long capabilities)
{
- unsigned long vm_flags;
+ vm_flags_t vm_flags;

vm_flags = calc_vm_prot_bits(prot) | calc_vm_flag_bits(flags);
/* vm_flags |= mm->def_flags; */
@@ -1243,7 +1243,8 @@ unsigned long do_mmap_pgoff(struct file *file,
struct vm_area_struct *vma;
struct vm_region *region;
struct rb_node *rb;
- unsigned long capabilities, vm_flags, result;
+ unsigned long capabilities, result;
+ vm_flags_t vm_flags;
int ret;

kenter(",%lx,%lx,%lx,%lx,%lx", addr, len, prot, flags, pgoff);







--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/