diff mbox

[2/2] DSPBRIDGE: introduce VMA checking for cache operation

Message ID 20090729.123033.98891522.Hiroshi.DOYU@nokia.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Hiroshi DOYU July 29, 2009, 9:30 a.m. UTC
None
diff mbox

Patch

diff --git a/drivers/dsp/bridge/rmgr/proc.c b/drivers/dsp/bridge/rmgr/proc.c
index fe9dabf..f567329 100644
--- a/drivers/dsp/bridge/rmgr/proc.c
+++ b/drivers/dsp/bridge/rmgr/proc.c
@@ -742,6 +742,7 @@  static int memory_check_vma(unsigned long start, u32 len)
        unsigned long end;
        struct vm_area_struct *vma;
 
+       start &= PAGE_MASK;
        len = PAGE_ALIGN(len);
        end = start + len;
        if (end <= start)
@@ -750,8 +751,9 @@  static int memory_check_vma(unsigned long start, u32 len)
        down_read(&current->mm->mmap_sem);
 
        vma = find_vma(current->mm, start);
-       if (!vma || start < vma->vm_start) {
-               pr_err("%s: no vma for %08lx %08lx\n", __func__, start, end);
+       if (!vma || start < vma->vm_start || end > vma->vm_end) {
+               pr_err("%s: no vma for %08lx-%08lx (%08lx-%08lx)\n", __func__,
+                      start, end, vma->vm_start, vma->vm_end);
                err = -EINVAL;
        }