userfaultfd: add vm_userfaultfd_ctx to the vm_area_struct
This adds the vm_userfaultfd_ctx to the vm_area_struct. Signed-off-by: Andrea Arcangeli <aarcange@redhat.com> Acked-by: Pavel Emelyanov <xemul@parallels.com> Cc: Sanidhya Kashyap <sanidhya.gatech@gmail.com> Cc: zhang.zhanghailiang@huawei.com Cc: "Kirill A. Shutemov" <kirill@shutemov.name> Cc: Andres Lagar-Cavilla <andreslc@google.com> Cc: Dave Hansen <dave.hansen@intel.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Rik van Riel <riel@redhat.com> Cc: Mel Gorman <mgorman@suse.de> Cc: Andy Lutomirski <luto@amacapital.net> Cc: Hugh Dickins <hughd@google.com> Cc: Peter Feiner <pfeiner@google.com> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: "Huangpeng (Peter)" <peter.huangpeng@huawei.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
932b18e0ae
commit
745f234be1
2 changed files with 12 additions and 0 deletions
|
@ -256,6 +256,16 @@ struct vm_region {
|
||||||
* this region */
|
* this region */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef CONFIG_USERFAULTFD
|
||||||
|
#define NULL_VM_UFFD_CTX ((struct vm_userfaultfd_ctx) { NULL, })
|
||||||
|
struct vm_userfaultfd_ctx {
|
||||||
|
struct userfaultfd_ctx *ctx;
|
||||||
|
};
|
||||||
|
#else /* CONFIG_USERFAULTFD */
|
||||||
|
#define NULL_VM_UFFD_CTX ((struct vm_userfaultfd_ctx) {})
|
||||||
|
struct vm_userfaultfd_ctx {};
|
||||||
|
#endif /* CONFIG_USERFAULTFD */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This struct defines a memory VMM memory area. There is one of these
|
* This struct defines a memory VMM memory area. There is one of these
|
||||||
* per VM-area/task. A VM area is any part of the process virtual memory
|
* per VM-area/task. A VM area is any part of the process virtual memory
|
||||||
|
@ -322,6 +332,7 @@ struct vm_area_struct {
|
||||||
#ifdef CONFIG_NUMA
|
#ifdef CONFIG_NUMA
|
||||||
struct mempolicy *vm_policy; /* NUMA policy for the VMA */
|
struct mempolicy *vm_policy; /* NUMA policy for the VMA */
|
||||||
#endif
|
#endif
|
||||||
|
struct vm_userfaultfd_ctx vm_userfaultfd_ctx;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct core_thread {
|
struct core_thread {
|
||||||
|
|
|
@ -456,6 +456,7 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
|
||||||
goto fail_nomem_anon_vma_fork;
|
goto fail_nomem_anon_vma_fork;
|
||||||
tmp->vm_flags &= ~VM_LOCKED;
|
tmp->vm_flags &= ~VM_LOCKED;
|
||||||
tmp->vm_next = tmp->vm_prev = NULL;
|
tmp->vm_next = tmp->vm_prev = NULL;
|
||||||
|
tmp->vm_userfaultfd_ctx = NULL_VM_UFFD_CTX;
|
||||||
file = tmp->vm_file;
|
file = tmp->vm_file;
|
||||||
if (file) {
|
if (file) {
|
||||||
struct inode *inode = file_inode(file);
|
struct inode *inode = file_inode(file);
|
||||||
|
|
Loading…
Reference in a new issue