X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=mm%2Fksm.c;h=6741c9df5c80c0d544f7df4caacab7fadac2587c;hb=f098a0c6d8ae69c9c4f8788c7157ecbb55eafa26;hp=9a68b0cf0a1c4c8009ee25d2990530d7e2927132;hpb=6ac556daa7822fdda585e2c387739abb0646c6ef;p=pandora-kernel.git diff --git a/mm/ksm.c b/mm/ksm.c index 9a68b0cf0a1c..6741c9df5c80 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -342,7 +342,7 @@ static int break_ksm(struct vm_area_struct *vma, unsigned long addr) else ret = VM_FAULT_WRITE; put_page(page); - } while (!(ret & (VM_FAULT_WRITE | VM_FAULT_SIGBUS | VM_FAULT_OOM))); + } while (!(ret & (VM_FAULT_WRITE | VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV | VM_FAULT_OOM))); /* * We must loop because handle_mm_fault() may back out if there's * any difficulty e.g. if pte accessed bit gets updated concurrently. @@ -1905,7 +1905,8 @@ static ssize_t run_store(struct kobject *kobj, struct kobj_attribute *attr, oom_score_adj = test_set_oom_score_adj(OOM_SCORE_ADJ_MAX); err = unmerge_and_remove_all_rmap_items(); - test_set_oom_score_adj(oom_score_adj); + compare_swap_oom_score_adj(OOM_SCORE_ADJ_MAX, + oom_score_adj); if (err) { ksm_run = KSM_RUN_STOP; count = err;