]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - arch/arm/include/asm/processor.h
ARM: 6194/1: change definition of cpu_relax() for ARM11MPCore
[net-next-2.6.git] / arch / arm / include / asm / processor.h
index 1845892260e762fad61c6f093529bdd5ab7a920f..7bed3daf83b8f27547ac608d574ffb00de8d1871 100644 (file)
@@ -71,6 +71,7 @@ struct thread_struct {
                regs->ARM_cpsr = USR26_MODE;                            \
        if (elf_hwcap & HWCAP_THUMB && pc & 1)                          \
                regs->ARM_cpsr |= PSR_T_BIT;                            \
+       regs->ARM_cpsr |= PSR_ENDSTATE;                                 \
        regs->ARM_pc = pc & ~1;         /* pc */                        \
        regs->ARM_sp = sp;              /* sp */                        \
        regs->ARM_r2 = stack[2];        /* r2 (envp) */                 \
@@ -90,7 +91,11 @@ extern void release_thread(struct task_struct *);
 
 unsigned long get_wchan(struct task_struct *p);
 
+#if __LINUX_ARM_ARCH__ == 6
+#define cpu_relax()                    smp_mb()
+#else
 #define cpu_relax()                    barrier()
+#endif
 
 /*
  * Create a new kernel thread