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