From 95099d4622f8cb224d94e314c7a8e0df60b13f87 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Sat, 09 Dec 2023 08:38:01 +0000
Subject: [PATCH] enable docker ppp
---
kernel/drivers/misc/uid_sys_stats.c | 57 ++++++++++++++++++++++++++-------------------------------
1 files changed, 26 insertions(+), 31 deletions(-)
diff --git a/kernel/drivers/misc/uid_sys_stats.c b/kernel/drivers/misc/uid_sys_stats.c
index cb027ed..4733670 100644
--- a/kernel/drivers/misc/uid_sys_stats.c
+++ b/kernel/drivers/misc/uid_sys_stats.c
@@ -14,7 +14,6 @@
*/
#include <linux/atomic.h>
-#include <linux/cpufreq_times.h>
#include <linux/err.h>
#include <linux/hashtable.h>
#include <linux/init.h>
@@ -137,7 +136,7 @@
/* next the executable file name */
if (mm) {
- down_read(&mm->mmap_sem);
+ mmap_write_lock(mm);
if (mm->exe_file) {
char *pathname = d_path(&mm->exe_file->f_path, buf,
unused_len);
@@ -150,7 +149,7 @@
unused_len--;
}
}
- up_read(&mm->mmap_sem);
+ mmap_write_unlock(mm);
}
unused_len -= len;
@@ -385,11 +384,11 @@
return single_open(file, uid_cputime_show, PDE_DATA(inode));
}
-static const struct file_operations uid_cputime_fops = {
- .open = uid_cputime_open,
- .read = seq_read,
- .llseek = seq_lseek,
- .release = single_release,
+static const struct proc_ops uid_cputime_fops = {
+ .proc_open = uid_cputime_open,
+ .proc_read = seq_read,
+ .proc_lseek = seq_lseek,
+ .proc_release = single_release,
};
static int uid_remove_open(struct inode *inode, struct file *file)
@@ -404,8 +403,7 @@
struct hlist_node *tmp;
char uids[128];
char *start_uid, *end_uid = NULL;
- uid_t uid_start = 0, uid_end = 0;
- u64 uid;
+ long int uid_start = 0, uid_end = 0;
if (count >= sizeof(uids))
count = sizeof(uids) - 1;
@@ -420,20 +418,17 @@
if (!start_uid || !end_uid)
return -EINVAL;
- if (kstrtouint(start_uid, 10, &uid_start) != 0 ||
- kstrtouint(end_uid, 10, &uid_end) != 0) {
+ if (kstrtol(start_uid, 10, &uid_start) != 0 ||
+ kstrtol(end_uid, 10, &uid_end) != 0) {
return -EINVAL;
}
- /* Also remove uids from /proc/uid_time_in_state */
- cpufreq_task_times_remove_uids(uid_start, uid_end);
-
rt_mutex_lock(&uid_lock);
- for (uid = uid_start; uid <= uid_end; uid++) {
+ for (; uid_start <= uid_end; uid_start++) {
hash_for_each_possible_safe(hash_table, uid_entry, tmp,
- hash, uid) {
- if (uid == uid_entry->uid) {
+ hash, (uid_t)uid_start) {
+ if (uid_start == uid_entry->uid) {
remove_uid_tasks(uid_entry);
hash_del(&uid_entry->hash);
kfree(uid_entry);
@@ -445,10 +440,10 @@
return count;
}
-static const struct file_operations uid_remove_fops = {
- .open = uid_remove_open,
- .release = single_release,
- .write = uid_remove_write,
+static const struct proc_ops uid_remove_fops = {
+ .proc_open = uid_remove_open,
+ .proc_release = single_release,
+ .proc_write = uid_remove_write,
};
@@ -564,11 +559,11 @@
return single_open(file, uid_io_show, PDE_DATA(inode));
}
-static const struct file_operations uid_io_fops = {
- .open = uid_io_open,
- .read = seq_read,
- .llseek = seq_lseek,
- .release = single_release,
+static const struct proc_ops uid_io_fops = {
+ .proc_open = uid_io_open,
+ .proc_read = seq_read,
+ .proc_lseek = seq_lseek,
+ .proc_release = single_release,
};
static int uid_procstat_open(struct inode *inode, struct file *file)
@@ -621,10 +616,10 @@
return count;
}
-static const struct file_operations uid_procstat_fops = {
- .open = uid_procstat_open,
- .release = single_release,
- .write = uid_procstat_write,
+static const struct proc_ops uid_procstat_fops = {
+ .proc_open = uid_procstat_open,
+ .proc_release = single_release,
+ .proc_write = uid_procstat_write,
};
static int process_notifier(struct notifier_block *self,
--
Gitblit v1.6.2