]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - mm/ksm.c
rcu: Fix soft lockup for rcu_nocb_kthread
[karo-tx-linux.git] / mm / ksm.c
index 4786b4150f62108438f5aabaf77d339280eb51dc..73d43bafd9fbc41ad322b9d26e80e548481a23b4 100644 (file)
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -376,9 +376,8 @@ static int break_ksm(struct vm_area_struct *vma, unsigned long addr)
                if (IS_ERR_OR_NULL(page))
                        break;
                if (PageKsm(page))
-                       ret = handle_mm_fault(vma->vm_mm, vma, addr,
-                                                       FAULT_FLAG_WRITE |
-                                                       FAULT_FLAG_REMOTE);
+                       ret = handle_mm_fault(vma, addr,
+                                       FAULT_FLAG_WRITE | FAULT_FLAG_REMOTE);
                else
                        ret = VM_FAULT_WRITE;
                put_page(page);
@@ -532,8 +531,8 @@ static struct page *get_ksm_page(struct stable_node *stable_node, bool lock_it)
        void *expected_mapping;
        unsigned long kpfn;
 
-       expected_mapping = (void *)stable_node +
-                               (PAGE_MAPPING_ANON | PAGE_MAPPING_KSM);
+       expected_mapping = (void *)((unsigned long)stable_node |
+                                       PAGE_MAPPING_KSM);
 again:
        kpfn = READ_ONCE(stable_node->kpfn);
        page = pfn_to_page(kpfn);