diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2011-02-23 03:21:41 -0500 |
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2011-02-23 03:21:41 -0500 |
| commit | 7acdbb3f35f4d08c0c4f7cfa306bc7006b6ba902 (patch) | |
| tree | c76aeb5996fa8f39b838e9cc41f40f854db01912 /arch/microblaze/include | |
| parent | 695884fb8acd9857e0e7120ccb2150e30f4b8fef (diff) | |
| parent | f5412be599602124d2bdd49947b231dd77c0bf99 (diff) | |
Merge branch 'linus' into x86/platform
Reason: Import mainline device tree changes on which further patches
depend on or conflict.
Trivial conflict in: drivers/spi/pxa2xx_spi_pci.c
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/microblaze/include')
| -rw-r--r-- | arch/microblaze/include/asm/irqflags.h | 2 | ||||
| -rw-r--r-- | arch/microblaze/include/asm/pgtable.h | 27 |
2 files changed, 14 insertions, 15 deletions
diff --git a/arch/microblaze/include/asm/irqflags.h b/arch/microblaze/include/asm/irqflags.h index 5fd31905775d..c4532f032b3b 100644 --- a/arch/microblaze/include/asm/irqflags.h +++ b/arch/microblaze/include/asm/irqflags.h | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | #include <linux/types.h> | 12 | #include <linux/types.h> |
| 13 | #include <asm/registers.h> | 13 | #include <asm/registers.h> |
| 14 | 14 | ||
| 15 | #ifdef CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR | 15 | #if CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR |
| 16 | 16 | ||
| 17 | static inline unsigned long arch_local_irq_save(void) | 17 | static inline unsigned long arch_local_irq_save(void) |
| 18 | { | 18 | { |
diff --git a/arch/microblaze/include/asm/pgtable.h b/arch/microblaze/include/asm/pgtable.h index b23f68075879..885574a73f01 100644 --- a/arch/microblaze/include/asm/pgtable.h +++ b/arch/microblaze/include/asm/pgtable.h | |||
| @@ -411,20 +411,19 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) | |||
| 411 | static inline unsigned long pte_update(pte_t *p, unsigned long clr, | 411 | static inline unsigned long pte_update(pte_t *p, unsigned long clr, |
| 412 | unsigned long set) | 412 | unsigned long set) |
| 413 | { | 413 | { |
| 414 | unsigned long old, tmp, msr; | 414 | unsigned long flags, old, tmp; |
| 415 | 415 | ||
| 416 | __asm__ __volatile__("\ | 416 | raw_local_irq_save(flags); |
| 417 | msrclr %2, 0x2\n\ | 417 | |
| 418 | nop\n\ | 418 | __asm__ __volatile__( "lw %0, %2, r0 \n" |
| 419 | lw %0, %4, r0\n\ | 419 | "andn %1, %0, %3 \n" |
| 420 | andn %1, %0, %5\n\ | 420 | "or %1, %1, %4 \n" |
| 421 | or %1, %1, %6\n\ | 421 | "sw %1, %2, r0 \n" |
| 422 | sw %1, %4, r0\n\ | 422 | : "=&r" (old), "=&r" (tmp) |
| 423 | mts rmsr, %2\n\ | 423 | : "r" ((unsigned long)(p + 1) - 4), "r" (clr), "r" (set) |
| 424 | nop" | 424 | : "cc"); |
| 425 | : "=&r" (old), "=&r" (tmp), "=&r" (msr), "=m" (*p) | 425 | |
| 426 | : "r" ((unsigned long)(p + 1) - 4), "r" (clr), "r" (set), "m" (*p) | 426 | raw_local_irq_restore(flags); |
| 427 | : "cc"); | ||
| 428 | 427 | ||
| 429 | return old; | 428 | return old; |
| 430 | } | 429 | } |
