aboutsummaryrefslogtreecommitdiffstats
path: root/mm/userfaultfd.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/userfaultfd.c')
-rw-r--r--mm/userfaultfd.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/mm/userfaultfd.c b/mm/userfaultfd.c
index f8d31b82acebe6..46771362550fee 100644
--- a/mm/userfaultfd.c
+++ b/mm/userfaultfd.c
@@ -713,17 +713,25 @@ ssize_t mcopy_continue(struct mm_struct *dst_mm, unsigned long start,
void uffd_wp_range(struct mm_struct *dst_mm, struct vm_area_struct *dst_vma,
unsigned long start, unsigned long len, bool enable_wp)
{
+ unsigned int mm_cp_flags;
struct mmu_gather tlb;
- pgprot_t newprot;
if (enable_wp)
- newprot = vm_get_page_prot(dst_vma->vm_flags & ~(VM_WRITE));
+ mm_cp_flags = MM_CP_UFFD_WP;
else
- newprot = vm_get_page_prot(dst_vma->vm_flags);
+ mm_cp_flags = MM_CP_UFFD_WP_RESOLVE;
+ /*
+ * vma->vm_page_prot already reflects that uffd-wp is enabled for this
+ * VMA (see userfaultfd_set_vm_flags()) and that all PTEs are supposed
+ * to be write-protected as default whenever protection changes.
+ * Try upgrading write permissions manually.
+ */
+ if (!enable_wp && vma_wants_manual_pte_write_upgrade(dst_vma))
+ mm_cp_flags |= MM_CP_TRY_CHANGE_WRITABLE;
tlb_gather_mmu(&tlb, dst_mm);
- change_protection(&tlb, dst_vma, start, start + len, newprot,
- enable_wp ? MM_CP_UFFD_WP : MM_CP_UFFD_WP_RESOLVE);
+ change_protection(&tlb, dst_vma, start, start + len, vma->vm_page_prot,
+ mm_cp_flags);
tlb_finish_mmu(&tlb);
}
ase/core40-56'>chromeos-4.14__release/core40-56 Intel wireless group's fork of linux.gitIntel wireless group
aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorTomasz Figa <t.figa@samsung.com>2013-04-23 17:46:22 +0200
committerChromeBot <chrome-bot@google.com>2013-08-08 13:51:11 -0700
commit0e0bbfbef579537d94d6d38a8f53e5a69086d850 (patch)
tree3b29c3b22ef7e2d490ab14f72cf92428f824ee18 /Documentation
parent3082f87c737c08b39e5b4f2387e23b7ab54022bf (diff)
downloadchromeos-0e0bbfbef579537d94d6d38a8f53e5a69086d850.tar.gz
UPSTREAM: Documentation: Add device tree bindings for Samsung PWM timers
This patch adds missing documentation describing Device Tree bindings for Samsung PWM timers. Signed-off-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Kukjin Kim <kgene.kim@samsung.com> Signed-off-by: Olof Johansson <olof@lixom.net> (cherry picked from commit 5b5ff97d2c46c52d2a86208509633230c9a486ec) BUG=chrome-os-partner:19401 TEST=None Change-Id: Ibf8195ed124d7493fa0e21535ccf51b598c699a2 Signed-off-by: Andrew Bresticker <abrestic@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/65080 Reviewed-by: Olof Johansson <olofj@chromium.org>