diff options
-rw-r--r-- | include/asm-arm/system.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/include/asm-arm/system.h b/include/asm-arm/system.h index f60faccf01fa..e160aeb0138d 100644 --- a/include/asm-arm/system.h +++ b/include/asm-arm/system.h | |||
@@ -173,6 +173,26 @@ static inline void set_copro_access(unsigned int val) | |||
173 | extern unsigned long cr_no_alignment; /* defined in entry-armv.S */ | 173 | extern unsigned long cr_no_alignment; /* defined in entry-armv.S */ |
174 | extern unsigned long cr_alignment; /* defined in entry-armv.S */ | 174 | extern unsigned long cr_alignment; /* defined in entry-armv.S */ |
175 | 175 | ||
176 | #ifndef CONFIG_SMP | ||
177 | static inline void adjust_cr(unsigned long mask, unsigned long set) | ||
178 | { | ||
179 | unsigned long flags, cr; | ||
180 | |||
181 | mask &= ~CR_A; | ||
182 | |||
183 | set &= mask; | ||
184 | |||
185 | local_irq_save(flags); | ||
186 | |||
187 | cr_no_alignment = (cr_no_alignment & ~mask) | set; | ||
188 | cr_alignment = (cr_alignment & ~mask) | set; | ||
189 | |||
190 | set_cr((get_cr() & ~mask) | set); | ||
191 | |||
192 | local_irq_restore(flags); | ||
193 | } | ||
194 | #endif | ||
195 | |||
176 | #define UDBG_UNDEFINED (1 << 0) | 196 | #define UDBG_UNDEFINED (1 << 0) |
177 | #define UDBG_SYSCALL (1 << 1) | 197 | #define UDBG_SYSCALL (1 << 1) |
178 | #define UDBG_BADABORT (1 << 2) | 198 | #define UDBG_BADABORT (1 << 2) |