aboutsummaryrefslogtreecommitdiffstats
path: root/arch/microblaze/include/asm
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2011-07-01 23:04:40 -0400
committerMichal Simek <monstr@monstr.eu>2011-07-25 03:07:45 -0400
commita2f526994e92ea54be181efccda261c4b1a6ae8d (patch)
treee8bae84b519b91983d9b03dc627d910e97083370 /arch/microblaze/include/asm
parent02f8c6aee8df3cdc935e9bdd4f2d020306035dbe (diff)
microblaze/irqs: Do not trace arch_local_{*,irq_*} functions
Do not trace arch_local_save_flags(), arch_local_irq_*() and friends. Although they are marked inline, gcc may still make a function out of them and add it to the pool of functions that are traced by the function tracer. This can cause undesirable results (kernel panic, triple faults, etc). Add the notrace notation to prevent them from ever being traced. Cc: Michal Simek <monstr@monstr.eu> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'arch/microblaze/include/asm')
-rw-r--r--arch/microblaze/include/asm/irqflags.h20
1 files changed, 10 insertions, 10 deletions
diff --git a/arch/microblaze/include/asm/irqflags.h b/arch/microblaze/include/asm/irqflags.h
index c4532f032b3b..c9a6262832c4 100644
--- a/arch/microblaze/include/asm/irqflags.h
+++ b/arch/microblaze/include/asm/irqflags.h
@@ -14,7 +14,7 @@
14 14
15#if CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR 15#if CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR
16 16
17static inline unsigned long arch_local_irq_save(void) 17static inline notrace unsigned long arch_local_irq_save(void)
18{ 18{
19 unsigned long flags; 19 unsigned long flags;
20 asm volatile(" msrclr %0, %1 \n" 20 asm volatile(" msrclr %0, %1 \n"
@@ -25,7 +25,7 @@ static inline unsigned long arch_local_irq_save(void)
25 return flags; 25 return flags;
26} 26}
27 27
28static inline void arch_local_irq_disable(void) 28static inline notrace void arch_local_irq_disable(void)
29{ 29{
30 /* this uses r0 without declaring it - is that correct? */ 30 /* this uses r0 without declaring it - is that correct? */
31 asm volatile(" msrclr r0, %0 \n" 31 asm volatile(" msrclr r0, %0 \n"
@@ -35,7 +35,7 @@ static inline void arch_local_irq_disable(void)
35 : "memory"); 35 : "memory");
36} 36}
37 37
38static inline void arch_local_irq_enable(void) 38static inline notrace void arch_local_irq_enable(void)
39{ 39{
40 /* this uses r0 without declaring it - is that correct? */ 40 /* this uses r0 without declaring it - is that correct? */
41 asm volatile(" msrset r0, %0 \n" 41 asm volatile(" msrset r0, %0 \n"
@@ -47,7 +47,7 @@ static inline void arch_local_irq_enable(void)
47 47
48#else /* !CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR */ 48#else /* !CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR */
49 49
50static inline unsigned long arch_local_irq_save(void) 50static inline notrace unsigned long arch_local_irq_save(void)
51{ 51{
52 unsigned long flags, tmp; 52 unsigned long flags, tmp;
53 asm volatile (" mfs %0, rmsr \n" 53 asm volatile (" mfs %0, rmsr \n"
@@ -61,7 +61,7 @@ static inline unsigned long arch_local_irq_save(void)
61 return flags; 61 return flags;
62} 62}
63 63
64static inline void arch_local_irq_disable(void) 64static inline notrace void arch_local_irq_disable(void)
65{ 65{
66 unsigned long tmp; 66 unsigned long tmp;
67 asm volatile(" mfs %0, rmsr \n" 67 asm volatile(" mfs %0, rmsr \n"
@@ -74,7 +74,7 @@ static inline void arch_local_irq_disable(void)
74 : "memory"); 74 : "memory");
75} 75}
76 76
77static inline void arch_local_irq_enable(void) 77static inline notrace void arch_local_irq_enable(void)
78{ 78{
79 unsigned long tmp; 79 unsigned long tmp;
80 asm volatile(" mfs %0, rmsr \n" 80 asm volatile(" mfs %0, rmsr \n"
@@ -89,7 +89,7 @@ static inline void arch_local_irq_enable(void)
89 89
90#endif /* CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR */ 90#endif /* CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR */
91 91
92static inline unsigned long arch_local_save_flags(void) 92static inline notrace unsigned long arch_local_save_flags(void)
93{ 93{
94 unsigned long flags; 94 unsigned long flags;
95 asm volatile(" mfs %0, rmsr \n" 95 asm volatile(" mfs %0, rmsr \n"
@@ -100,7 +100,7 @@ static inline unsigned long arch_local_save_flags(void)
100 return flags; 100 return flags;
101} 101}
102 102
103static inline void arch_local_irq_restore(unsigned long flags) 103static inline notrace void arch_local_irq_restore(unsigned long flags)
104{ 104{
105 asm volatile(" mts rmsr, %0 \n" 105 asm volatile(" mts rmsr, %0 \n"
106 " nop \n" 106 " nop \n"
@@ -109,12 +109,12 @@ static inline void arch_local_irq_restore(unsigned long flags)
109 : "memory"); 109 : "memory");
110} 110}
111 111
112static inline bool arch_irqs_disabled_flags(unsigned long flags) 112static inline notrace bool arch_irqs_disabled_flags(unsigned long flags)
113{ 113{
114 return (flags & MSR_IE) == 0; 114 return (flags & MSR_IE) == 0;
115} 115}
116 116
117static inline bool arch_irqs_disabled(void) 117static inline notrace bool arch_irqs_disabled(void)
118{ 118{
119 return arch_irqs_disabled_flags(arch_local_save_flags()); 119 return arch_irqs_disabled_flags(arch_local_save_flags());
120} 120}