summaryrefslogtreecommitdiffstats
path: root/arch/sh/kernel/process_64.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2007-11-21 09:07:46 +0100
committerPaul Mundt <lethal@linux-sh.org>2008-01-28 05:18:53 +0100
commitdf0fb2562806e853e53de43af04f013c3e45427b (patch)
treed1f6212a5dd5d4e5a249ae3ac8f2dc9f0c3b7476 /arch/sh/kernel/process_64.c
parentsh: Move over SH-5 TLB and cache support code. (diff)
downloadlinux-df0fb2562806e853e53de43af04f013c3e45427b.tar.xz
linux-df0fb2562806e853e53de43af04f013c3e45427b.zip
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/process_64.c')
-rw-r--r--arch/sh/kernel/process_64.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/arch/sh/kernel/process_64.c b/arch/sh/kernel/process_64.c
index 92d01465eb87..2dd97eecb44c 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;