diff --git a/android/abi_gki_aarch64_db845c b/android/abi_gki_aarch64_db845c index 4318f338e6af..671c62ec75aa 100644 --- a/android/abi_gki_aarch64_db845c +++ b/android/abi_gki_aarch64_db845c @@ -750,12 +750,14 @@ match_token noop_llseek notify_change + override_creds pagecache_get_page path_get path_put __put_cred __put_page register_filesystem + revert_creds set_anon_super sget simple_getattr diff --git a/build.config.db845c b/build.config.db845c index e4e25e3d8f7e..04f6f875f69c 100644 --- a/build.config.db845c +++ b/build.config.db845c @@ -3,7 +3,8 @@ BUILD_INITRAMFS=1 DEFCONFIG=db845c_gki_defconfig -PRE_DEFCONFIG_CMDS="KCONFIG_CONFIG=${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG} ${ROOT_DIR}/${KERNEL_DIR}/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/gki_defconfig ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/db845c_gki.fragment" +FRAGMENT_CONFIG=${KERNEL_DIR}/arch/arm64/configs/db845c_gki.fragment +PRE_DEFCONFIG_CMDS="KCONFIG_CONFIG=${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG} ${ROOT_DIR}/${KERNEL_DIR}/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/gki_defconfig ${ROOT_DIR}/${FRAGMENT_CONFIG}" POST_DEFCONFIG_CMDS="rm ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG}" FILES=" diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index ed5b113273ad..fa3636d255ef 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -58,8 +58,8 @@ DECLARE_RESTRICTED_HOOK(android_rvh_rtmutex_prepare_setprio, TP_ARGS(p, pi_task), 1); DECLARE_RESTRICTED_HOOK(android_rvh_set_user_nice, - TP_PROTO(struct task_struct *p, long *nice), - TP_ARGS(p, nice), 1); + TP_PROTO(struct task_struct *p, long *nice, bool *allowed), + TP_ARGS(p, nice, allowed), 1); DECLARE_RESTRICTED_HOOK(android_rvh_setscheduler, TP_PROTO(struct task_struct *p), diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 6ceaddb81dc7..d76a7a95d4b6 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -4605,12 +4605,13 @@ static inline int rt_effective_prio(struct task_struct *p, int prio) void set_user_nice(struct task_struct *p, long nice) { - bool queued, running; + bool queued, running, allowed = false; int old_prio, delta; struct rq_flags rf; struct rq *rq; - if (task_nice(p) == nice || nice < MIN_NICE || nice > MAX_NICE) + trace_android_rvh_set_user_nice(p, &nice, &allowed); + if ((task_nice(p) == nice || nice < MIN_NICE || nice > MAX_NICE) && !allowed) return; /* * We have to be careful, if called from sys_setpriority(), @@ -4618,7 +4619,6 @@ void set_user_nice(struct task_struct *p, long nice) */ rq = task_rq_lock(p, &rf); update_rq_clock(rq); - trace_android_rvh_set_user_nice(p, &nice); /* * The RT priorities are set via sched_setscheduler(), but we still