From: Amit Pundir Date: Tue, 14 Apr 2015 19:10:21 +0000 (+0530) Subject: proc: uid_cputime: create uids from kuids X-Git-Tag: firefly_0821_release~2958^2~150 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=6dca78528ee925f858fa197e237ae990f07a7db2;p=firefly-linux-kernel-4.4.55.git proc: uid_cputime: create uids from kuids Create uids from kuids using from_kuid_munged(), otherwise we run into following build error and warnings: -------------------- CC drivers/misc/uid_cputime.o drivers/misc/uid_cputime.c: In function ‘uid_stat_show’: drivers/misc/uid_cputime.c:90:36: error: incompatible type for argument 1 of ‘find_or_register_uid’ drivers/misc/uid_cputime.c:54:26: note: expected ‘uid_t’ but argument is of type ‘kuid_t’ drivers/misc/uid_cputime.c:94:4: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘kuid_t’ [-Wformat] drivers/misc/uid_cputime.c: In function ‘process_notifier’: drivers/misc/uid_cputime.c:194:6: error: incompatible types when assigning to type ‘uid_t’ from type ‘kuid_t’ make[2]: *** [drivers/misc/uid_cputime.o] Error 1 -------------------- Change-Id: Ifecb98001f7fe2fac74d1ef3e1abd03d43fc9059 Signed-off-by: Amit Pundir (cherry picked from commit b0f4decae627cf2d74e6f72c7ecb939c77d48625) --- diff --git a/drivers/misc/uid_cputime.c b/drivers/misc/uid_cputime.c index cb26e3c118b1..acd7046ce497 100644 --- a/drivers/misc/uid_cputime.c +++ b/drivers/misc/uid_cputime.c @@ -87,12 +87,14 @@ static int uid_stat_show(struct seq_file *m, void *v) read_lock(&tasklist_lock); for_each_process(task) { - uid_entry = find_or_register_uid(task_uid(task)); + uid_entry = find_or_register_uid(from_kuid_munged( + current_user_ns(), task_uid(task))); if (!uid_entry) { read_unlock(&tasklist_lock); mutex_unlock(&uid_lock); pr_err("%s: failed to find the uid_entry for uid %d\n", - __func__, task_uid(task)); + __func__, from_kuid_munged(current_user_ns(), + task_uid(task))); return -ENOMEM; } task_cputime_adjusted(task, &utime, &stime); @@ -191,7 +193,7 @@ static int process_notifier(struct notifier_block *self, return NOTIFY_OK; mutex_lock(&uid_lock); - uid = task_uid(task); + uid = from_kuid_munged(current_user_ns(), task_uid(task)); uid_entry = find_or_register_uid(uid); if (!uid_entry) { pr_err("%s: failed to find uid %d\n", __func__, uid);