diff --git a/lmkd.cpp b/lmkd.cpp index 06ae9ce..845b20e 100644 --- a/lmkd.cpp +++ b/lmkd.cpp @@ -1219,15 +1219,12 @@ static void register_oom_adj_proc(const struct lmk_procprio& proc, struct ucred* } } -static void cmd_procprio(LMKD_CTRL_PACKET packet, int field_count, struct ucred* cred) { +static void apply_proc_prio(const struct lmk_procprio& params, struct ucred* cred) { char path[PROCFS_PATH_MAX]; char val[20]; - struct lmk_procprio params; int64_t tgid; char buf[pagesize]; - lmkd_pack_get_procprio(packet, field_count, ¶ms); - if (params.oomadj < OOM_SCORE_ADJ_MIN || params.oomadj > OOM_SCORE_ADJ_MAX) { ALOGE("Invalid PROCPRIO oomadj argument %d", params.oomadj); return; @@ -1268,6 +1265,13 @@ static void cmd_procprio(LMKD_CTRL_PACKET packet, int field_count, struct ucred* register_oom_adj_proc(params, cred); } +static void cmd_procprio(LMKD_CTRL_PACKET packet, int field_count, struct ucred* cred) { + struct lmk_procprio proc_prio; + + lmkd_pack_get_procprio(packet, field_count, &proc_prio); + apply_proc_prio(proc_prio, cred); +} + static void cmd_procremove(LMKD_CTRL_PACKET packet, struct ucred *cred) { struct lmk_procremove params; struct proc *procp;