From 338b601936bed064e73968dbe81fe471761c94bf Mon Sep 17 00:00:00 2001 From: Pavankumar Kondeti Date: Fri, 20 Mar 2020 13:36:54 +0530 Subject: [PATCH] sched: Improve the scheduler This change is for general scheduler improvements. Change-Id: I3842c589378ce5bcc54e4c35ebcbfbdfa1f88a8f Signed-off-by: Pavankumar Kondeti --- kernel/sched/core.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index c9c1181f13ee..cbcb56397907 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -5627,9 +5627,10 @@ unsigned int sched_lib_mask_force; bool is_sched_lib_based_app(pid_t pid) { const char *name = NULL; - char *lib_list, *libname; + char *libname, *lib_list; struct vm_area_struct *vma; char path_buf[LIB_PATH_LENGTH]; + char tmp_lib_name[LIB_PATH_LENGTH]; bool found = false; struct task_struct *p; struct mm_struct *mm; @@ -5637,14 +5638,11 @@ bool is_sched_lib_based_app(pid_t pid) if (strnlen(sched_lib_name, LIB_PATH_LENGTH) == 0) return false; - lib_list = kstrdup(sched_lib_name, GFP_KERNEL); - rcu_read_lock(); p = find_process_by_pid(pid); if (!p) { rcu_read_unlock(); - kfree(lib_list); return false; } @@ -5664,11 +5662,14 @@ bool is_sched_lib_based_app(pid_t pid) if (IS_ERR(name)) goto release_sem; + strlcpy(tmp_lib_name, sched_lib_name, LIB_PATH_LENGTH); + lib_list = tmp_lib_name; while ((libname = strsep(&lib_list, ","))) { + libname = skip_spaces(libname); if (strnstr(name, libname, strnlen(name, LIB_PATH_LENGTH))) { found = true; - break; + goto release_sem; } } } @@ -5679,7 +5680,6 @@ release_sem: mmput(mm); put_task_struct: put_task_struct(p); - kfree(lib_list); return found; }