Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[S390] Move __cpu_logical_map to smp.c

Finally move it to the place where it belongs to and make get rid of
it for !CONFIG_SMP.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>

authored by

Heiko Carstens and committed by
Martin Schwidefsky
fb380aad 957a37ad

+18 -8
+13 -5
arch/s390/include/asm/sigp.h
··· 15 15 #ifndef __SIGP__ 16 16 #define __SIGP__ 17 17 18 - #include <asm/ptrace.h> 19 - #include <asm/atomic.h> 18 + #include <asm/system.h> 20 19 21 20 /* get real cpu address from logical cpu number */ 22 21 extern int __cpu_logical_map[]; 22 + 23 + static inline int cpu_logical_map(int cpu) 24 + { 25 + #ifdef CONFIG_SMP 26 + return __cpu_logical_map[cpu]; 27 + #else 28 + return stap(); 29 + #endif 30 + } 23 31 24 32 typedef enum 25 33 { ··· 87 79 " ipm %0\n" 88 80 " srl %0,28\n" 89 81 : "=d" (ccode) 90 - : "d" (reg1), "d" (__cpu_logical_map[cpu_addr]), 82 + : "d" (reg1), "d" (cpu_logical_map(cpu_addr)), 91 83 "a" (order_code) : "cc" , "memory"); 92 84 return ccode; 93 85 } ··· 106 98 " ipm %0\n" 107 99 " srl %0,28\n" 108 100 : "=d" (ccode) 109 - : "d" (reg1), "d" (__cpu_logical_map[cpu_addr]), 101 + : "d" (reg1), "d" (cpu_logical_map(cpu_addr)), 110 102 "a" (order_code) : "cc" , "memory"); 111 103 return ccode; 112 104 } ··· 126 118 " ipm %0\n" 127 119 " srl %0,28\n" 128 120 : "=d" (ccode), "+d" (reg1) 129 - : "d" (__cpu_logical_map[cpu_addr]), "a" (order_code) 121 + : "d" (cpu_logical_map(cpu_addr)), "a" (order_code) 130 122 : "cc" , "memory"); 131 123 *statusptr = reg1; 132 124 return ccode;
-1
arch/s390/kernel/setup.c
··· 87 87 char elf_platform[ELF_PLATFORM_SIZE]; 88 88 89 89 struct mem_chunk __initdata memory_chunk[MEMORY_CHUNKS]; 90 - int __cpu_logical_map[NR_CPUS]; /* logical cpu to cpu address */ 91 90 92 91 int __initdata memory_end_set; 93 92 unsigned long __initdata memory_end;
+3
arch/s390/kernel/smp.c
··· 52 52 #include <asm/cpu.h> 53 53 #include "entry.h" 54 54 55 + /* logical cpu to cpu address */ 56 + int __cpu_logical_map[NR_CPUS]; 57 + 55 58 static struct task_struct *current_set[NR_CPUS]; 56 59 57 60 static u8 smp_cpu_type;
+1 -1
arch/s390/kernel/topology.c
··· 114 114 115 115 rcpu = CPU_BITS - 1 - cpu + tl_cpu->origin; 116 116 for_each_present_cpu(lcpu) { 117 - if (__cpu_logical_map[lcpu] == rcpu) { 117 + if (cpu_logical_map(lcpu) == rcpu) { 118 118 cpu_set(lcpu, core->mask); 119 119 smp_cpu_polarization[lcpu] = tl_cpu->pp; 120 120 }
+1 -1
arch/s390/lib/spinlock.c
··· 34 34 { 35 35 if (MACHINE_HAS_DIAG9C) 36 36 asm volatile("diag %0,0,0x9c" 37 - : : "d" (__cpu_logical_map[cpu])); 37 + : : "d" (cpu_logical_map(cpu))); 38 38 else 39 39 _raw_yield(); 40 40 }