Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm

Pull ARM fixes from Russell King:
"A small set of ARM fixes for -rc3, most of them not far off
one-liners, with the exception of fixing the V7 cache invalidation for
incoming SMP processors which was causing problems for SoCFPGA
devices"

* 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
ARM: fix __virt_to_idmap build error on !MMU
ARM: invalidate L1 before enabling coherency
ARM: 8404/1: dma-mapping: fix off-by-one error in bitmap size check
ARM: 8402/1: perf: Don't use of_node after putting it
ARM: 8400/1: use virt_to_idmap to get phys_reset address

+14 -9
+1 -1
arch/arm/include/asm/memory.h
··· 286 286 */ 287 287 static inline phys_addr_t __virt_to_idmap(unsigned long x) 288 288 { 289 - if (arch_virt_to_idmap) 289 + if (IS_ENABLED(CONFIG_MMU) && arch_virt_to_idmap) 290 290 return arch_virt_to_idmap(x); 291 291 else 292 292 return __virt_to_phys(x);
+2 -1
arch/arm/kernel/perf_event.c
··· 818 818 if (arch_find_n_match_cpu_physical_id(dn, cpu, NULL)) 819 819 break; 820 820 821 - of_node_put(dn); 822 821 if (cpu >= nr_cpu_ids) { 823 822 pr_warn("Failed to find logical CPU for %s\n", 824 823 dn->name); 824 + of_node_put(dn); 825 825 break; 826 826 } 827 + of_node_put(dn); 827 828 828 829 irqs[i] = cpu; 829 830 cpumask_set_cpu(cpu, &pmu->supported_cpus);
+1 -1
arch/arm/kernel/reboot.c
··· 50 50 flush_cache_all(); 51 51 52 52 /* Switch to the identity mapping. */ 53 - phys_reset = (phys_reset_t)(unsigned long)virt_to_phys(cpu_reset); 53 + phys_reset = (phys_reset_t)(unsigned long)virt_to_idmap(cpu_reset); 54 54 phys_reset((unsigned long)addr); 55 55 56 56 /* Should never get here. */
+1 -1
arch/arm/mm/dma-mapping.c
··· 1971 1971 { 1972 1972 int next_bitmap; 1973 1973 1974 - if (mapping->nr_bitmaps > mapping->extensions) 1974 + if (mapping->nr_bitmaps >= mapping->extensions) 1975 1975 return -EINVAL; 1976 1976 1977 1977 next_bitmap = mapping->nr_bitmaps;
+9 -5
arch/arm/mm/proc-v7.S
··· 274 274 __v7_b15mp_setup: 275 275 __v7_ca17mp_setup: 276 276 mov r10, #0 277 - 1: 277 + 1: adr r12, __v7_setup_stack @ the local stack 278 + stmia r12, {r0-r5, lr} @ v7_invalidate_l1 touches r0-r6 279 + bl v7_invalidate_l1 280 + ldmia r12, {r0-r5, lr} 278 281 #ifdef CONFIG_SMP 279 282 ALT_SMP(mrc p15, 0, r0, c1, c0, 1) 280 283 ALT_UP(mov r0, #(1 << 6)) @ fake it for UP ··· 286 283 orreq r0, r0, r10 @ Enable CPU-specific SMP bits 287 284 mcreq p15, 0, r0, c1, c0, 1 288 285 #endif 289 - b __v7_setup 286 + b __v7_setup_cont 290 287 291 288 /* 292 289 * Errata: ··· 416 413 417 414 __v7_setup: 418 415 adr r12, __v7_setup_stack @ the local stack 419 - stmia r12, {r0-r5, r7, r9, r11, lr} 416 + stmia r12, {r0-r5, lr} @ v7_invalidate_l1 touches r0-r6 420 417 bl v7_invalidate_l1 421 - ldmia r12, {r0-r5, r7, r9, r11, lr} 418 + ldmia r12, {r0-r5, lr} 422 419 420 + __v7_setup_cont: 423 421 and r0, r9, #0xff000000 @ ARM? 424 422 teq r0, #0x41000000 425 423 bne __errata_finish ··· 484 480 485 481 .align 2 486 482 __v7_setup_stack: 487 - .space 4 * 11 @ 11 registers 483 + .space 4 * 7 @ 12 registers 488 484 489 485 __INITDATA 490 486