lkml.org 
[lkml]   [2018]   [Jun]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCHv3 01/17] mm: Do no merge VMAs with different encryption KeyIDs
    Date
    VMAs with different KeyID do not mix together. Only VMAs with the same
    KeyID are compatible.

    Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    ---
    include/linux/mm.h | 7 +++++++
    mm/mmap.c | 3 ++-
    2 files changed, 9 insertions(+), 1 deletion(-)

    diff --git a/include/linux/mm.h b/include/linux/mm.h
    index 02a616e2f17d..1c3c15f37ed6 100644
    --- a/include/linux/mm.h
    +++ b/include/linux/mm.h
    @@ -1492,6 +1492,13 @@ static inline bool vma_is_anonymous(struct vm_area_struct *vma)
    return !vma->vm_ops;
    }

    +#ifndef vma_keyid
    +static inline int vma_keyid(struct vm_area_struct *vma)
    +{
    + return 0;
    +}
    +#endif
    +
    #ifdef CONFIG_SHMEM
    /*
    * The vma_is_shmem is not inline because it is used only by slow
    diff --git a/mm/mmap.c b/mm/mmap.c
    index d817764a9974..3ff89fc1752b 100644
    --- a/mm/mmap.c
    +++ b/mm/mmap.c
    @@ -1217,7 +1217,8 @@ static int anon_vma_compatible(struct vm_area_struct *a, struct vm_area_struct *
    mpol_equal(vma_policy(a), vma_policy(b)) &&
    a->vm_file == b->vm_file &&
    !((a->vm_flags ^ b->vm_flags) & ~(VM_READ|VM_WRITE|VM_EXEC|VM_SOFTDIRTY)) &&
    - b->vm_pgoff == a->vm_pgoff + ((b->vm_start - a->vm_start) >> PAGE_SHIFT);
    + b->vm_pgoff == a->vm_pgoff + ((b->vm_start - a->vm_start) >> PAGE_SHIFT) &&
    + vma_keyid(a) == vma_keyid(b);
    }

    /*
    --
    2.17.1
    \
     
     \ /
      Last update: 2018-06-12 16:39    [W:4.119 / U:0.336 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site