aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/kernel/cplb-nompu
diff options
context:
space:
mode:
authorYi Li <yi.li@analog.com>2009-08-20 00:17:47 -0400
committerMike Frysinger <vapier@gentoo.org>2009-09-16 22:10:32 -0400
commitb6dbde27dd95cc0397d9722ad8365fa93a07b0d3 (patch)
tree1743551be50d891228e8b2ea5d9ac0811d01355c /arch/blackfin/kernel/cplb-nompu
parent00dd66d012f944817a7d0cdcb0c8cb174e46937a (diff)
Blackfin: use raw_smp_processor_id() in exception code
When preempt debugging is enabled, smp_processor_id() may utilize the "current" structure. This may not be safe to access under all exceptions due to it being in dynamically allocated memory. So in exception code, make sure we use raw_smp_processor_id() instead to get at the real value directly. Signed-off-by: Yi Li <yi.li@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/kernel/cplb-nompu')
-rw-r--r--arch/blackfin/kernel/cplb-nompu/cplbmgr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/blackfin/kernel/cplb-nompu/cplbmgr.c b/arch/blackfin/kernel/cplb-nompu/cplbmgr.c
index aabbb42c42c4..d9ea46c6e41a 100644
--- a/arch/blackfin/kernel/cplb-nompu/cplbmgr.c
+++ b/arch/blackfin/kernel/cplb-nompu/cplbmgr.c
@@ -202,7 +202,7 @@ MGR_ATTR static int dcplb_miss(int cpu)
202MGR_ATTR int cplb_hdr(int seqstat, struct pt_regs *regs) 202MGR_ATTR int cplb_hdr(int seqstat, struct pt_regs *regs)
203{ 203{
204 int cause = seqstat & 0x3f; 204 int cause = seqstat & 0x3f;
205 unsigned int cpu = smp_processor_id(); 205 unsigned int cpu = raw_smp_processor_id();
206 switch (cause) { 206 switch (cause) {
207 case VEC_CPLB_I_M: 207 case VEC_CPLB_I_M:
208 return icplb_miss(cpu); 208 return icplb_miss(cpu);