diff options
author | David S. Miller <davem@davemloft.net> | 2017-12-05 10:44:19 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-12-05 10:44:19 -0500 |
commit | 7cda4cee1366fae236678a5a6b124bab86b14973 (patch) | |
tree | 180bcb2d09e3db27050658afc36d5bac88593ed5 /mm/frame_vector.c | |
parent | a3fde2addd5f0218b64102005a237ef727b0dc30 (diff) | |
parent | 2391f0b4808e3d5af348324d69f5f45c56a26836 (diff) | |
download | linux-7cda4cee1366fae236678a5a6b124bab86b14973.tar.gz |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Small overlapping change conflict ('net' changed a line,
'net-next' added a line right afterwards) in flexcan.c
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'mm/frame_vector.c')
-rw-r--r-- | mm/frame_vector.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/mm/frame_vector.c b/mm/frame_vector.c index 2f98df0d460e..297c7238f7d4 100644 --- a/mm/frame_vector.c +++ b/mm/frame_vector.c @@ -53,6 +53,18 @@ int get_vaddr_frames(unsigned long start, unsigned int nr_frames, ret = -EFAULT; goto out; } + + /* + * While get_vaddr_frames() could be used for transient (kernel + * controlled lifetime) pinning of memory pages all current + * users establish long term (userspace controlled lifetime) + * page pinning. Treat get_vaddr_frames() like + * get_user_pages_longterm() and disallow it for filesystem-dax + * mappings. + */ + if (vma_is_fsdax(vma)) + return -EOPNOTSUPP; + if (!(vma->vm_flags & (VM_IO | VM_PFNMAP))) { vec->got_ref = true; vec->is_pfns = false; |