projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
AppArmor: fix oops in apparmor_setprocattr
[firefly-linux-kernel-4.4.55.git]
/
mm
/
ksm.c
diff --git
a/mm/ksm.c
b/mm/ksm.c
index 942dfc73a2ff89c3c7c96b3f9b1838c99ec16d02..d708b3ef2260282a3d6e5784a60c1fb003339f8e 100644
(file)
--- a/
mm/ksm.c
+++ b/
mm/ksm.c
@@
-35,6
+35,7
@@
#include <linux/ksm.h>
#include <linux/hash.h>
#include <linux/freezer.h>
#include <linux/ksm.h>
#include <linux/hash.h>
#include <linux/freezer.h>
+#include <linux/oom.h>
#include <asm/tlbflush.h>
#include "internal.h"
#include <asm/tlbflush.h>
#include "internal.h"
@@
-1894,9
+1895,11
@@
static ssize_t run_store(struct kobject *kobj, struct kobj_attribute *attr,
if (ksm_run != flags) {
ksm_run = flags;
if (flags & KSM_RUN_UNMERGE) {
if (ksm_run != flags) {
ksm_run = flags;
if (flags & KSM_RUN_UNMERGE) {
- current->flags |= PF_OOM_ORIGIN;
+ int oom_score_adj;
+
+ oom_score_adj = test_set_oom_score_adj(OOM_SCORE_ADJ_MAX);
err = unmerge_and_remove_all_rmap_items();
err = unmerge_and_remove_all_rmap_items();
-
current->flags &= ~PF_OOM_ORIGIN
;
+
test_set_oom_score_adj(oom_score_adj)
;
if (err) {
ksm_run = KSM_RUN_STOP;
count = err;
if (err) {
ksm_run = KSM_RUN_STOP;
count = err;