From 53e2446620ec896afb9c8eb4365f8e5597de05ef Mon Sep 17 00:00:00 2001 From: Ralf Baechle Date: Thu, 14 Jul 2005 13:25:05 +0000 Subject: [PATCH] --- yaml --- r: 11164 b: refs/heads/master c: 86071b637db7baf599df26fdf820dce2fc55ca9f h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/include/asm-mips/hazards.h | 22 ++++++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index 03fe9a4d30eb..7a6c6656a917 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7e35952baa9d7424dfb95ca8aff7239a1f6ec011 +refs/heads/master: 86071b637db7baf599df26fdf820dce2fc55ca9f diff --git a/trunk/include/asm-mips/hazards.h b/trunk/include/asm-mips/hazards.h index f63d824e6e48..6bd265b34a4c 100644 --- a/trunk/include/asm-mips/hazards.h +++ b/trunk/include/asm-mips/hazards.h @@ -148,15 +148,13 @@ __asm__( #endif /* - * mtc0->mfc0 hazard - * The 24K has a 2 cycle mtc0/mfc0 execution hazard. - * It is a MIPS32R2 processor so ehb will clear the hazard. + * Interrupt enable/disable hazards + * Some processors have hazards when modifying + * the status register to change the interrupt state */ #ifdef CONFIG_CPU_MIPSR2 -/* - * Use a macro for ehb unless explicit support for MIPSR2 is enabled - */ + __asm__( " .macro\tirq_enable_hazard \n\t" " _ehb \n\t" @@ -164,19 +162,23 @@ __asm__( " \n\t" " .macro\tirq_disable_hazard \n\t" " _ehb \n\t" + " .endm \n\t" + " \n\t" + " .macro\tback_to_back_c0_hazard \n\t" + " _ehb \n\t" " .endm"); #define irq_enable_hazard() \ __asm__ __volatile__( \ - "_ehb\t\t\t\t# irq_enable_hazard") + "irq_enable_hazard") #define irq_disable_hazard() \ __asm__ __volatile__( \ - "_ehb\t\t\t\t# irq_disable_hazard") + "irq_disable_hazard") #define back_to_back_c0_hazard() \ __asm__ __volatile__( \ - "_ehb\t\t\t\t# back_to_back_c0_hazard") + "back_to_back_c0_hazard") #elif defined(CONFIG_CPU_R10000) || defined(CONFIG_CPU_RM9000) @@ -218,7 +220,7 @@ __asm__( #define irq_enable_hazard() do { } while (0) #define irq_disable_hazard() \ __asm__ __volatile__( \ - "_ssnop; _ssnop; _ssnop;\t\t# irq_disable_hazard") + "irq_disable_hazard") #define back_to_back_c0_hazard() \ __asm__ __volatile__( \