aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2011-01-11 14:52:31 -0500
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2011-01-20 22:08:38 -0500
commitfbe754ca3a7579131ecec47c4fa10c40994b3804 (patch)
treed64715112343204f8d360c0222f2919af88e454e /arch/powerpc
parent7f32c9c60089bfdb5eeeaae6e9f59046db998234 (diff)
powerpc: machine_check_generic is wrong on 64bit
Decoding machine checks is CPU specific and so machine_check_generic doesn't do the right thing on 64bit chips. Luckily we never call into this code because we call ppc_md.machine_check_exception instead if available. Since we check cur_cpu_spec->machine_check before calling it, we may as well remove machine_check_generic from 64bit archs. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/kernel/cputable.c23
1 files changed, 0 insertions, 23 deletions
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
index be5ab18b03b5..8d74a24c5502 100644
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
@@ -116,7 +116,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
116 .pmc_type = PPC_PMC_IBM, 116 .pmc_type = PPC_PMC_IBM,
117 .oprofile_cpu_type = "ppc64/power3", 117 .oprofile_cpu_type = "ppc64/power3",
118 .oprofile_type = PPC_OPROFILE_RS64, 118 .oprofile_type = PPC_OPROFILE_RS64,
119 .machine_check = machine_check_generic,
120 .platform = "power3", 119 .platform = "power3",
121 }, 120 },
122 { /* Power3+ */ 121 { /* Power3+ */
@@ -132,7 +131,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
132 .pmc_type = PPC_PMC_IBM, 131 .pmc_type = PPC_PMC_IBM,
133 .oprofile_cpu_type = "ppc64/power3", 132 .oprofile_cpu_type = "ppc64/power3",
134 .oprofile_type = PPC_OPROFILE_RS64, 133 .oprofile_type = PPC_OPROFILE_RS64,
135 .machine_check = machine_check_generic,
136 .platform = "power3", 134 .platform = "power3",
137 }, 135 },
138 { /* Northstar */ 136 { /* Northstar */
@@ -148,7 +146,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
148 .pmc_type = PPC_PMC_IBM, 146 .pmc_type = PPC_PMC_IBM,
149 .oprofile_cpu_type = "ppc64/rs64", 147 .oprofile_cpu_type = "ppc64/rs64",
150 .oprofile_type = PPC_OPROFILE_RS64, 148 .oprofile_type = PPC_OPROFILE_RS64,
151 .machine_check = machine_check_generic,
152 .platform = "rs64", 149 .platform = "rs64",
153 }, 150 },
154 { /* Pulsar */ 151 { /* Pulsar */
@@ -164,7 +161,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
164 .pmc_type = PPC_PMC_IBM, 161 .pmc_type = PPC_PMC_IBM,
165 .oprofile_cpu_type = "ppc64/rs64", 162 .oprofile_cpu_type = "ppc64/rs64",
166 .oprofile_type = PPC_OPROFILE_RS64, 163 .oprofile_type = PPC_OPROFILE_RS64,
167 .machine_check = machine_check_generic,
168 .platform = "rs64", 164 .platform = "rs64",
169 }, 165 },
170 { /* I-star */ 166 { /* I-star */
@@ -180,7 +176,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
180 .pmc_type = PPC_PMC_IBM, 176 .pmc_type = PPC_PMC_IBM,
181 .oprofile_cpu_type = "ppc64/rs64", 177 .oprofile_cpu_type = "ppc64/rs64",
182 .oprofile_type = PPC_OPROFILE_RS64, 178 .oprofile_type = PPC_OPROFILE_RS64,
183 .machine_check = machine_check_generic,
184 .platform = "rs64", 179 .platform = "rs64",
185 }, 180 },
186 { /* S-star */ 181 { /* S-star */
@@ -196,7 +191,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
196 .pmc_type = PPC_PMC_IBM, 191 .pmc_type = PPC_PMC_IBM,
197 .oprofile_cpu_type = "ppc64/rs64", 192 .oprofile_cpu_type = "ppc64/rs64",
198 .oprofile_type = PPC_OPROFILE_RS64, 193 .oprofile_type = PPC_OPROFILE_RS64,
199 .machine_check = machine_check_generic,
200 .platform = "rs64", 194 .platform = "rs64",
201 }, 195 },
202 { /* Power4 */ 196 { /* Power4 */
@@ -212,7 +206,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
212 .pmc_type = PPC_PMC_IBM, 206 .pmc_type = PPC_PMC_IBM,
213 .oprofile_cpu_type = "ppc64/power4", 207 .oprofile_cpu_type = "ppc64/power4",
214 .oprofile_type = PPC_OPROFILE_POWER4, 208 .oprofile_type = PPC_OPROFILE_POWER4,
215 .machine_check = machine_check_generic,
216 .platform = "power4", 209 .platform = "power4",
217 }, 210 },
218 { /* Power4+ */ 211 { /* Power4+ */
@@ -228,7 +221,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
228 .pmc_type = PPC_PMC_IBM, 221 .pmc_type = PPC_PMC_IBM,
229 .oprofile_cpu_type = "ppc64/power4", 222 .oprofile_cpu_type = "ppc64/power4",
230 .oprofile_type = PPC_OPROFILE_POWER4, 223 .oprofile_type = PPC_OPROFILE_POWER4,
231 .machine_check = machine_check_generic,
232 .platform = "power4", 224 .platform = "power4",
233 }, 225 },
234 { /* PPC970 */ 226 { /* PPC970 */
@@ -247,7 +239,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
247 .cpu_restore = __restore_cpu_ppc970, 239 .cpu_restore = __restore_cpu_ppc970,
248 .oprofile_cpu_type = "ppc64/970", 240 .oprofile_cpu_type = "ppc64/970",
249 .oprofile_type = PPC_OPROFILE_POWER4, 241 .oprofile_type = PPC_OPROFILE_POWER4,
250 .machine_check = machine_check_generic,
251 .platform = "ppc970", 242 .platform = "ppc970",
252 }, 243 },
253 { /* PPC970FX */ 244 { /* PPC970FX */
@@ -266,7 +257,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
266 .cpu_restore = __restore_cpu_ppc970, 257 .cpu_restore = __restore_cpu_ppc970,
267 .oprofile_cpu_type = "ppc64/970", 258 .oprofile_cpu_type = "ppc64/970",
268 .oprofile_type = PPC_OPROFILE_POWER4, 259 .oprofile_type = PPC_OPROFILE_POWER4,
269 .machine_check = machine_check_generic,
270 .platform = "ppc970", 260 .platform = "ppc970",
271 }, 261 },
272 { /* PPC970MP DD1.0 - no DEEPNAP, use regular 970 init */ 262 { /* PPC970MP DD1.0 - no DEEPNAP, use regular 970 init */
@@ -285,7 +275,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
285 .cpu_restore = __restore_cpu_ppc970, 275 .cpu_restore = __restore_cpu_ppc970,
286 .oprofile_cpu_type = "ppc64/970MP", 276 .oprofile_cpu_type = "ppc64/970MP",
287 .oprofile_type = PPC_OPROFILE_POWER4, 277 .oprofile_type = PPC_OPROFILE_POWER4,
288 .machine_check = machine_check_generic,
289 .platform = "ppc970", 278 .platform = "ppc970",
290 }, 279 },
291 { /* PPC970MP */ 280 { /* PPC970MP */
@@ -304,7 +293,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
304 .cpu_restore = __restore_cpu_ppc970, 293 .cpu_restore = __restore_cpu_ppc970,
305 .oprofile_cpu_type = "ppc64/970MP", 294 .oprofile_cpu_type = "ppc64/970MP",
306 .oprofile_type = PPC_OPROFILE_POWER4, 295 .oprofile_type = PPC_OPROFILE_POWER4,
307 .machine_check = machine_check_generic,
308 .platform = "ppc970", 296 .platform = "ppc970",
309 }, 297 },
310 { /* PPC970GX */ 298 { /* PPC970GX */
@@ -322,7 +310,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
322 .cpu_setup = __setup_cpu_ppc970, 310 .cpu_setup = __setup_cpu_ppc970,
323 .oprofile_cpu_type = "ppc64/970", 311 .oprofile_cpu_type = "ppc64/970",
324 .oprofile_type = PPC_OPROFILE_POWER4, 312 .oprofile_type = PPC_OPROFILE_POWER4,
325 .machine_check = machine_check_generic,
326 .platform = "ppc970", 313 .platform = "ppc970",
327 }, 314 },
328 { /* Power5 GR */ 315 { /* Power5 GR */
@@ -343,7 +330,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
343 */ 330 */
344 .oprofile_mmcra_sihv = MMCRA_SIHV, 331 .oprofile_mmcra_sihv = MMCRA_SIHV,
345 .oprofile_mmcra_sipr = MMCRA_SIPR, 332 .oprofile_mmcra_sipr = MMCRA_SIPR,
346 .machine_check = machine_check_generic,
347 .platform = "power5", 333 .platform = "power5",
348 }, 334 },
349 { /* Power5++ */ 335 { /* Power5++ */
@@ -360,7 +346,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
360 .oprofile_type = PPC_OPROFILE_POWER4, 346 .oprofile_type = PPC_OPROFILE_POWER4,
361 .oprofile_mmcra_sihv = MMCRA_SIHV, 347 .oprofile_mmcra_sihv = MMCRA_SIHV,
362 .oprofile_mmcra_sipr = MMCRA_SIPR, 348 .oprofile_mmcra_sipr = MMCRA_SIPR,
363 .machine_check = machine_check_generic,
364 .platform = "power5+", 349 .platform = "power5+",
365 }, 350 },
366 { /* Power5 GS */ 351 { /* Power5 GS */
@@ -378,7 +363,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
378 .oprofile_type = PPC_OPROFILE_POWER4, 363 .oprofile_type = PPC_OPROFILE_POWER4,
379 .oprofile_mmcra_sihv = MMCRA_SIHV, 364 .oprofile_mmcra_sihv = MMCRA_SIHV,
380 .oprofile_mmcra_sipr = MMCRA_SIPR, 365 .oprofile_mmcra_sipr = MMCRA_SIPR,
381 .machine_check = machine_check_generic,
382 .platform = "power5+", 366 .platform = "power5+",
383 }, 367 },
384 { /* POWER6 in P5+ mode; 2.04-compliant processor */ 368 { /* POWER6 in P5+ mode; 2.04-compliant processor */
@@ -390,7 +374,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
390 .mmu_features = MMU_FTR_HPTE_TABLE, 374 .mmu_features = MMU_FTR_HPTE_TABLE,
391 .icache_bsize = 128, 375 .icache_bsize = 128,
392 .dcache_bsize = 128, 376 .dcache_bsize = 128,
393 .machine_check = machine_check_generic,
394 .oprofile_cpu_type = "ppc64/ibm-compat-v1", 377 .oprofile_cpu_type = "ppc64/ibm-compat-v1",
395 .oprofile_type = PPC_OPROFILE_POWER4, 378 .oprofile_type = PPC_OPROFILE_POWER4,
396 .platform = "power5+", 379 .platform = "power5+",
@@ -413,7 +396,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
413 .oprofile_mmcra_sipr = POWER6_MMCRA_SIPR, 396 .oprofile_mmcra_sipr = POWER6_MMCRA_SIPR,
414 .oprofile_mmcra_clear = POWER6_MMCRA_THRM | 397 .oprofile_mmcra_clear = POWER6_MMCRA_THRM |
415 POWER6_MMCRA_OTHER, 398 POWER6_MMCRA_OTHER,
416 .machine_check = machine_check_generic,
417 .platform = "power6x", 399 .platform = "power6x",
418 }, 400 },
419 { /* 2.05-compliant processor, i.e. Power6 "architected" mode */ 401 { /* 2.05-compliant processor, i.e. Power6 "architected" mode */
@@ -425,7 +407,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
425 .mmu_features = MMU_FTR_HPTE_TABLE, 407 .mmu_features = MMU_FTR_HPTE_TABLE,
426 .icache_bsize = 128, 408 .icache_bsize = 128,
427 .dcache_bsize = 128, 409 .dcache_bsize = 128,
428 .machine_check = machine_check_generic,
429 .oprofile_cpu_type = "ppc64/ibm-compat-v1", 410 .oprofile_cpu_type = "ppc64/ibm-compat-v1",
430 .oprofile_type = PPC_OPROFILE_POWER4, 411 .oprofile_type = PPC_OPROFILE_POWER4,
431 .platform = "power6", 412 .platform = "power6",
@@ -440,7 +421,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
440 MMU_FTR_TLBIE_206, 421 MMU_FTR_TLBIE_206,
441 .icache_bsize = 128, 422 .icache_bsize = 128,
442 .dcache_bsize = 128, 423 .dcache_bsize = 128,
443 .machine_check = machine_check_generic,
444 .oprofile_type = PPC_OPROFILE_POWER4, 424 .oprofile_type = PPC_OPROFILE_POWER4,
445 .oprofile_cpu_type = "ppc64/ibm-compat-v1", 425 .oprofile_cpu_type = "ppc64/ibm-compat-v1",
446 .platform = "power7", 426 .platform = "power7",
@@ -492,7 +472,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
492 .pmc_type = PPC_PMC_IBM, 472 .pmc_type = PPC_PMC_IBM,
493 .oprofile_cpu_type = "ppc64/cell-be", 473 .oprofile_cpu_type = "ppc64/cell-be",
494 .oprofile_type = PPC_OPROFILE_CELL, 474 .oprofile_type = PPC_OPROFILE_CELL,
495 .machine_check = machine_check_generic,
496 .platform = "ppc-cell-be", 475 .platform = "ppc-cell-be",
497 }, 476 },
498 { /* PA Semi PA6T */ 477 { /* PA Semi PA6T */
@@ -510,7 +489,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
510 .cpu_restore = __restore_cpu_pa6t, 489 .cpu_restore = __restore_cpu_pa6t,
511 .oprofile_cpu_type = "ppc64/pa6t", 490 .oprofile_cpu_type = "ppc64/pa6t",
512 .oprofile_type = PPC_OPROFILE_PA6T, 491 .oprofile_type = PPC_OPROFILE_PA6T,
513 .machine_check = machine_check_generic,
514 .platform = "pa6t", 492 .platform = "pa6t",
515 }, 493 },
516 { /* default match */ 494 { /* default match */
@@ -524,7 +502,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
524 .dcache_bsize = 128, 502 .dcache_bsize = 128,
525 .num_pmcs = 6, 503 .num_pmcs = 6,
526 .pmc_type = PPC_PMC_IBM, 504 .pmc_type = PPC_PMC_IBM,
527 .machine_check = machine_check_generic,
528 .platform = "power4", 505 .platform = "power4",
529 } 506 }
530#endif /* CONFIG_PPC_BOOK3S_64 */ 507#endif /* CONFIG_PPC_BOOK3S_64 */