summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorGeorg Veichtlbauer <georg@vware.at>2023-05-05 22:54:31 +0200
committerDavide Garberi <dade.garberi@gmail.com>2023-05-22 19:29:39 +0200
commit7ef1b1f38a94bf54b215c4c56ea8d62ec607f73b (patch)
tree5ccd47727a21e268b014a44ce64d575ddbc03d5f /kernel
parentb4790673989b7d98dfeebf7f544104c4a0efd7b7 (diff)
Revert "kernel: Only expose su when daemon is running"lineage-19.1
This patch is no longer necessary because we no longer ship su add-ons, which is this patch initially designed for. Now it causes another issue which breaks custom root solution such as Magisk, as Magisk switches worker tmpfs dir to RO instead of RW for safety reasons and happens to satisfy MS_RDONLY check for su file, resulting in su file totally inaccessible. This reverts commit 08ff8a2e58eb226015fa68d577121137a7e0953f. Change-Id: If25a9ef7e64c79412948f4619e08faaedb18aa13
Diffstat (limited to 'kernel')
-rw-r--r--kernel/exit.c4
-rw-r--r--kernel/fork.c1
-rw-r--r--kernel/sched/core.c32
3 files changed, 0 insertions, 37 deletions
diff --git a/kernel/exit.c b/kernel/exit.c
index 4a8dbc4bf4f6..babbc3c0a181 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -719,10 +719,6 @@ void do_exit(long code)
sched_exit(tsk);
schedtune_exit_task(tsk);
- if (tsk->flags & PF_SU) {
- su_exit();
- }
-
if (unlikely(in_atomic())) {
pr_info("note: %s[%d] exited with preempt_count %d\n",
current->comm, task_pid_nr(current),
diff --git a/kernel/fork.c b/kernel/fork.c
index dcdbb9f7216f..92a0df862115 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -360,7 +360,6 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node)
if (err)
goto free_stack;
- tsk->flags &= ~PF_SU;
tsk->stack = stack;
err = kaiser_map_thread_stack(tsk->stack);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index d199741b4e7f..40a44876c74c 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -98,38 +98,6 @@
#define CREATE_TRACE_POINTS
#include <trace/events/sched.h>
-static atomic_t __su_instances;
-
-int su_instances(void)
-{
- return atomic_read(&__su_instances);
-}
-
-bool su_running(void)
-{
- return su_instances() > 0;
-}
-
-bool su_visible(void)
-{
- kuid_t uid = current_uid();
- if (su_running())
- return true;
- if (uid_eq(uid, GLOBAL_ROOT_UID) || uid_eq(uid, GLOBAL_SYSTEM_UID))
- return true;
- return false;
-}
-
-void su_exec(void)
-{
- atomic_inc(&__su_instances);
-}
-
-void su_exit(void)
-{
- atomic_dec(&__su_instances);
-}
-
ATOMIC_NOTIFIER_HEAD(load_alert_notifier_head);
DEFINE_MUTEX(sched_domains_mutex);