diff options
author | Yi Li <yi.li@analog.com> | 2009-08-20 00:17:47 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2009-09-16 22:10:32 -0400 |
commit | b6dbde27dd95cc0397d9722ad8365fa93a07b0d3 (patch) | |
tree | 1743551be50d891228e8b2ea5d9ac0811d01355c /arch/blackfin/kernel/cplb-nompu | |
parent | 00dd66d012f944817a7d0cdcb0c8cb174e46937a (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.c | 2 |
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) | |||
202 | MGR_ATTR int cplb_hdr(int seqstat, struct pt_regs *regs) | 202 | MGR_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); |