diff options
Diffstat (limited to 'arch/s390/kernel')
-rw-r--r-- | arch/s390/kernel/cache.c | 9 | ||||
-rw-r--r-- | arch/s390/kernel/head_kdump.S | 10 | ||||
-rw-r--r-- | arch/s390/kernel/perf_cpum_cf.c | 6 | ||||
-rw-r--r-- | arch/s390/kernel/vmlinux.lds.S | 2 |
4 files changed, 14 insertions, 13 deletions
diff --git a/arch/s390/kernel/cache.c b/arch/s390/kernel/cache.c index 8df8d8a19c98..64b24650e4f8 100644 --- a/arch/s390/kernel/cache.c +++ b/arch/s390/kernel/cache.c | |||
@@ -59,8 +59,8 @@ enum { | |||
59 | 59 | ||
60 | enum { | 60 | enum { |
61 | CACHE_TI_UNIFIED = 0, | 61 | CACHE_TI_UNIFIED = 0, |
62 | CACHE_TI_INSTRUCTION = 0, | 62 | CACHE_TI_DATA = 0, |
63 | CACHE_TI_DATA, | 63 | CACHE_TI_INSTRUCTION, |
64 | }; | 64 | }; |
65 | 65 | ||
66 | struct cache_info { | 66 | struct cache_info { |
@@ -121,7 +121,10 @@ static int __init cache_add(int level, int private, int type) | |||
121 | cache = kzalloc(sizeof(*cache), GFP_KERNEL); | 121 | cache = kzalloc(sizeof(*cache), GFP_KERNEL); |
122 | if (!cache) | 122 | if (!cache) |
123 | return -ENOMEM; | 123 | return -ENOMEM; |
124 | ti = type == CACHE_TYPE_DATA ? CACHE_TI_DATA : CACHE_TI_UNIFIED; | 124 | if (type == CACHE_TYPE_INSTRUCTION) |
125 | ti = CACHE_TI_INSTRUCTION; | ||
126 | else | ||
127 | ti = CACHE_TI_UNIFIED; | ||
125 | cache->size = ecag(EXTRACT_SIZE, level, ti); | 128 | cache->size = ecag(EXTRACT_SIZE, level, ti); |
126 | cache->line_size = ecag(EXTRACT_LINE_SIZE, level, ti); | 129 | cache->line_size = ecag(EXTRACT_LINE_SIZE, level, ti); |
127 | cache->associativity = ecag(EXTRACT_ASSOCIATIVITY, level, ti); | 130 | cache->associativity = ecag(EXTRACT_ASSOCIATIVITY, level, ti); |
diff --git a/arch/s390/kernel/head_kdump.S b/arch/s390/kernel/head_kdump.S index acaaaf4b7055..085a95eb315f 100644 --- a/arch/s390/kernel/head_kdump.S +++ b/arch/s390/kernel/head_kdump.S | |||
@@ -85,16 +85,10 @@ | |||
85 | .align 2 | 85 | .align 2 |
86 | startup_kdump_relocated: | 86 | startup_kdump_relocated: |
87 | basr %r13,0 | 87 | basr %r13,0 |
88 | 0: | 88 | 0: lpswe .Lrestart_psw-0b(%r13) # Start new kernel... |
89 | mvc 0(8,%r0),.Lrestart_psw-0b(%r13) # Setup restart PSW | ||
90 | sam31 # Switch to 31 bit addr mode | ||
91 | sr %r1,%r1 # Erase register r1 | ||
92 | sr %r2,%r2 # Erase register r2 | ||
93 | sigp %r1,%r2,SIGP_SET_ARCHITECTURE # Switch to 31 bit arch mode | ||
94 | lpsw 0 # Start new kernel... | ||
95 | .align 8 | 89 | .align 8 |
96 | .Lrestart_psw: | 90 | .Lrestart_psw: |
97 | .long 0x00080000,0x80000000 + startup | 91 | .quad 0x0000000080000000,0x0000000000000000 + startup |
98 | #else | 92 | #else |
99 | .align 2 | 93 | .align 2 |
100 | .Lep_startup_kdump: | 94 | .Lep_startup_kdump: |
diff --git a/arch/s390/kernel/perf_cpum_cf.c b/arch/s390/kernel/perf_cpum_cf.c index 9871b1971ed7..c4e7269d4a09 100644 --- a/arch/s390/kernel/perf_cpum_cf.c +++ b/arch/s390/kernel/perf_cpum_cf.c | |||
@@ -94,7 +94,7 @@ static int get_counter_set(u64 event) | |||
94 | set = CPUMF_CTR_SET_USER; | 94 | set = CPUMF_CTR_SET_USER; |
95 | else if (event < 128) | 95 | else if (event < 128) |
96 | set = CPUMF_CTR_SET_CRYPTO; | 96 | set = CPUMF_CTR_SET_CRYPTO; |
97 | else if (event < 160) | 97 | else if (event < 256) |
98 | set = CPUMF_CTR_SET_EXT; | 98 | set = CPUMF_CTR_SET_EXT; |
99 | 99 | ||
100 | return set; | 100 | return set; |
@@ -138,6 +138,10 @@ static int validate_ctr_version(const struct hw_perf_event *hwc) | |||
138 | case CPUMF_CTR_SET_EXT: | 138 | case CPUMF_CTR_SET_EXT: |
139 | if (cpuhw->info.csvn < 1) | 139 | if (cpuhw->info.csvn < 1) |
140 | err = -EOPNOTSUPP; | 140 | err = -EOPNOTSUPP; |
141 | if ((cpuhw->info.csvn == 1 && hwc->config > 159) || | ||
142 | (cpuhw->info.csvn == 2 && hwc->config > 175) || | ||
143 | (cpuhw->info.csvn > 2 && hwc->config > 255)) | ||
144 | err = -EOPNOTSUPP; | ||
141 | break; | 145 | break; |
142 | } | 146 | } |
143 | 147 | ||
diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S index de8fa9bbd35e..79cb51adc741 100644 --- a/arch/s390/kernel/vmlinux.lds.S +++ b/arch/s390/kernel/vmlinux.lds.S | |||
@@ -8,7 +8,7 @@ | |||
8 | 8 | ||
9 | #ifndef CONFIG_64BIT | 9 | #ifndef CONFIG_64BIT |
10 | OUTPUT_FORMAT("elf32-s390", "elf32-s390", "elf32-s390") | 10 | OUTPUT_FORMAT("elf32-s390", "elf32-s390", "elf32-s390") |
11 | OUTPUT_ARCH(s390) | 11 | OUTPUT_ARCH(s390:31-bit) |
12 | ENTRY(startup) | 12 | ENTRY(startup) |
13 | jiffies = jiffies_64 + 4; | 13 | jiffies = jiffies_64 + 4; |
14 | #else | 14 | #else |