|
@@ -388,14 +388,17 @@ static int proc_pid_wchan(struct seq_file *m, struct pid_namespace *ns,
|
|
|
unsigned long wchan;
|
|
|
char symname[KSYM_NAME_LEN];
|
|
|
|
|
|
- wchan = get_wchan(task);
|
|
|
+ if (!ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS))
|
|
|
+ goto print0;
|
|
|
|
|
|
- if (wchan && ptrace_may_access(task, PTRACE_MODE_READ_FSCREDS)
|
|
|
- && !lookup_symbol_name(wchan, symname))
|
|
|
+ wchan = get_wchan(task);
|
|
|
+ if (wchan && !lookup_symbol_name(wchan, symname)) {
|
|
|
seq_printf(m, "%s", symname);
|
|
|
- else
|
|
|
- seq_putc(m, '0');
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
|
|
|
+print0:
|
|
|
+ seq_putc(m, '0');
|
|
|
return 0;
|
|
|
}
|
|
|
#endif /* CONFIG_KALLSYMS */
|