diff options
Diffstat (limited to 'arch/arm/include/asm/assembler.h')
| -rw-r--r-- | arch/arm/include/asm/assembler.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h index 29035e86a59d..62f8095d46de 100644 --- a/arch/arm/include/asm/assembler.h +++ b/arch/arm/include/asm/assembler.h | |||
| @@ -187,6 +187,17 @@ | |||
| 187 | #endif | 187 | #endif |
| 188 | 188 | ||
| 189 | /* | 189 | /* |
| 190 | * Instruction barrier | ||
| 191 | */ | ||
| 192 | .macro instr_sync | ||
| 193 | #if __LINUX_ARM_ARCH__ >= 7 | ||
| 194 | isb | ||
| 195 | #elif __LINUX_ARM_ARCH__ == 6 | ||
| 196 | mcr p15, 0, r0, c7, c5, 4 | ||
| 197 | #endif | ||
| 198 | .endm | ||
| 199 | |||
| 200 | /* | ||
| 190 | * SMP data memory barrier | 201 | * SMP data memory barrier |
| 191 | */ | 202 | */ |
| 192 | .macro smp_dmb mode | 203 | .macro smp_dmb mode |
| @@ -226,7 +237,7 @@ | |||
| 226 | */ | 237 | */ |
| 227 | #ifdef CONFIG_THUMB2_KERNEL | 238 | #ifdef CONFIG_THUMB2_KERNEL |
| 228 | 239 | ||
| 229 | .macro usraccoff, instr, reg, ptr, inc, off, cond, abort, t=T() | 240 | .macro usraccoff, instr, reg, ptr, inc, off, cond, abort, t=TUSER() |
| 230 | 9999: | 241 | 9999: |
| 231 | .if \inc == 1 | 242 | .if \inc == 1 |
| 232 | \instr\cond\()b\()\t\().w \reg, [\ptr, #\off] | 243 | \instr\cond\()b\()\t\().w \reg, [\ptr, #\off] |
| @@ -266,7 +277,7 @@ | |||
| 266 | 277 | ||
| 267 | #else /* !CONFIG_THUMB2_KERNEL */ | 278 | #else /* !CONFIG_THUMB2_KERNEL */ |
| 268 | 279 | ||
| 269 | .macro usracc, instr, reg, ptr, inc, cond, rept, abort, t=T() | 280 | .macro usracc, instr, reg, ptr, inc, cond, rept, abort, t=TUSER() |
| 270 | .rept \rept | 281 | .rept \rept |
| 271 | 9999: | 282 | 9999: |
| 272 | .if \inc == 1 | 283 | .if \inc == 1 |
