diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-07-03 15:17:19 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-07-03 15:17:19 -0700 |
commit | 058e88d37f872a9bc9fac7e49fdad43cdc9ba25d (patch) | |
tree | fe01b79b24958e38b8b07c91e4745054e4bf7cd8 /arch/microblaze/mm/highmem.c | |
parent | 241e5e6f0497769d37240215047b9473ae3ae3f0 (diff) | |
parent | 14ef905bb2eecb02f7ce31b8fbedd4a75ddf0f57 (diff) | |
download | linux-058e88d37f872a9bc9fac7e49fdad43cdc9ba25d.tar.bz2 |
Merge tag 'microblaze-4.13-rc1' of git://git.monstr.eu/linux-2.6-microblaze
Pull microblaze updates from Michal Simek:
- timer fix
- use simplified macro in dma.c
- wire-up new syscall
- remove asp-generic wrappers
- fix MMU table handling
- defconfig updates
- low-level entry.S changes
* tag 'microblaze-4.13-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
microblaze: Fix MSR flags when returning from exception
microblaze: Separate GP registers from MSR handling
microblaze: Enabling CONFIG_BRIDGE in mmu_defconfig
microblaze: Enabling CONFIGS related to MTD
microblaze: Update defconfigs
microblaze: mm: Flush TLB to ensure correct mapping when higmem ON
microblaze: remove asm-generic wrapper headers
microblaze: wire up statx syscall
microblaze: Set ->min_delta_ticks and ->max_delta_ticks for timer
microblaze: use sg_phys()
Diffstat (limited to 'arch/microblaze/mm/highmem.c')
-rw-r--r-- | arch/microblaze/mm/highmem.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/arch/microblaze/mm/highmem.c b/arch/microblaze/mm/highmem.c index 2fcc5a52d84d..ed4454c5ce35 100644 --- a/arch/microblaze/mm/highmem.c +++ b/arch/microblaze/mm/highmem.c @@ -60,6 +60,7 @@ void __kunmap_atomic(void *kvaddr) { unsigned long vaddr = (unsigned long) kvaddr & PAGE_MASK; int type; + unsigned int idx; if (vaddr < __fix_to_virt(FIX_KMAP_END)) { pagefault_enable(); @@ -68,21 +69,18 @@ void __kunmap_atomic(void *kvaddr) } type = kmap_atomic_idx(); -#ifdef CONFIG_DEBUG_HIGHMEM - { - unsigned int idx; - - idx = type + KM_TYPE_NR * smp_processor_id(); - BUG_ON(vaddr != __fix_to_virt(FIX_KMAP_BEGIN + idx)); - /* - * force other mappings to Oops if they'll try to access - * this pte without first remap it - */ - pte_clear(&init_mm, vaddr, kmap_pte-idx); - local_flush_tlb_page(NULL, vaddr); - } + idx = type + KM_TYPE_NR * smp_processor_id(); +#ifdef CONFIG_DEBUG_HIGHMEM + BUG_ON(vaddr != __fix_to_virt(FIX_KMAP_BEGIN + idx)); #endif + /* + * force other mappings to Oops if they'll try to access + * this pte without first remap it + */ + pte_clear(&init_mm, vaddr, kmap_pte-idx); + local_flush_tlb_page(NULL, vaddr); + kmap_atomic_idx_pop(); pagefault_enable(); preempt_enable(); |