diff options
author | Paul Mundt <lethal@linux-sh.org> | 2007-11-21 17:07:46 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2008-01-28 13:18:53 +0900 |
commit | df0fb2562806e853e53de43af04f013c3e45427b (patch) | |
tree | d1f6212a5dd5d4e5a249ae3ac8f2dc9f0c3b7476 /arch/sh/kernel | |
parent | 60b2249d45d44bd3494d55f5ea4bccd25c7f8281 (diff) |
sh: Fix up proc ASIDs for CPU-local ASID cache accessors.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel')
-rw-r--r-- | arch/sh/kernel/process_64.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/arch/sh/kernel/process_64.c b/arch/sh/kernel/process_64.c index 92d01465eb8..2dd97eecb44 100644 --- a/arch/sh/kernel/process_64.c +++ b/arch/sh/kernel/process_64.c @@ -27,6 +27,7 @@ #include <linux/io.h> #include <asm/uaccess.h> #include <asm/pgtable.h> +#include <asm/mmu_context.h> struct task_struct *last_task_used_math = NULL; @@ -674,17 +675,14 @@ asids_proc_info(char *buf, char **start, off_t fpos, int length, int *eof, void read_lock(&tasklist_lock); for_each_process(p) { int pid = p->pid; - struct mm_struct *mm; - if (!pid) continue; - mm = p->mm; - if (mm) { - unsigned long asid, context; - context = mm->context; - asid = (context & 0xff); - len += sprintf(buf+len, "%5d : %02lx\n", pid, asid); - } else { + + if (!pid) + continue; + if (p->mm) + len += sprintf(buf+len, "%5d : %02lx\n", pid, + asid_cache(smp_processor_id())); + else len += sprintf(buf+len, "%5d : (none)\n", pid); - } } read_unlock(&tasklist_lock); *eof = 1; |