Commit fbe754ca authored by Anton Blanchard's avatar Anton Blanchard Committed by Benjamin Herrenschmidt

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: default avatarAnton Blanchard <anton@samba.org>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 7f32c9c6
...@@ -116,7 +116,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -116,7 +116,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.pmc_type = PPC_PMC_IBM, .pmc_type = PPC_PMC_IBM,
.oprofile_cpu_type = "ppc64/power3", .oprofile_cpu_type = "ppc64/power3",
.oprofile_type = PPC_OPROFILE_RS64, .oprofile_type = PPC_OPROFILE_RS64,
.machine_check = machine_check_generic,
.platform = "power3", .platform = "power3",
}, },
{ /* Power3+ */ { /* Power3+ */
...@@ -132,7 +131,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -132,7 +131,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.pmc_type = PPC_PMC_IBM, .pmc_type = PPC_PMC_IBM,
.oprofile_cpu_type = "ppc64/power3", .oprofile_cpu_type = "ppc64/power3",
.oprofile_type = PPC_OPROFILE_RS64, .oprofile_type = PPC_OPROFILE_RS64,
.machine_check = machine_check_generic,
.platform = "power3", .platform = "power3",
}, },
{ /* Northstar */ { /* Northstar */
...@@ -148,7 +146,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -148,7 +146,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.pmc_type = PPC_PMC_IBM, .pmc_type = PPC_PMC_IBM,
.oprofile_cpu_type = "ppc64/rs64", .oprofile_cpu_type = "ppc64/rs64",
.oprofile_type = PPC_OPROFILE_RS64, .oprofile_type = PPC_OPROFILE_RS64,
.machine_check = machine_check_generic,
.platform = "rs64", .platform = "rs64",
}, },
{ /* Pulsar */ { /* Pulsar */
...@@ -164,7 +161,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -164,7 +161,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.pmc_type = PPC_PMC_IBM, .pmc_type = PPC_PMC_IBM,
.oprofile_cpu_type = "ppc64/rs64", .oprofile_cpu_type = "ppc64/rs64",
.oprofile_type = PPC_OPROFILE_RS64, .oprofile_type = PPC_OPROFILE_RS64,
.machine_check = machine_check_generic,
.platform = "rs64", .platform = "rs64",
}, },
{ /* I-star */ { /* I-star */
...@@ -180,7 +176,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -180,7 +176,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.pmc_type = PPC_PMC_IBM, .pmc_type = PPC_PMC_IBM,
.oprofile_cpu_type = "ppc64/rs64", .oprofile_cpu_type = "ppc64/rs64",
.oprofile_type = PPC_OPROFILE_RS64, .oprofile_type = PPC_OPROFILE_RS64,
.machine_check = machine_check_generic,
.platform = "rs64", .platform = "rs64",
}, },
{ /* S-star */ { /* S-star */
...@@ -196,7 +191,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -196,7 +191,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.pmc_type = PPC_PMC_IBM, .pmc_type = PPC_PMC_IBM,
.oprofile_cpu_type = "ppc64/rs64", .oprofile_cpu_type = "ppc64/rs64",
.oprofile_type = PPC_OPROFILE_RS64, .oprofile_type = PPC_OPROFILE_RS64,
.machine_check = machine_check_generic,
.platform = "rs64", .platform = "rs64",
}, },
{ /* Power4 */ { /* Power4 */
...@@ -212,7 +206,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -212,7 +206,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.pmc_type = PPC_PMC_IBM, .pmc_type = PPC_PMC_IBM,
.oprofile_cpu_type = "ppc64/power4", .oprofile_cpu_type = "ppc64/power4",
.oprofile_type = PPC_OPROFILE_POWER4, .oprofile_type = PPC_OPROFILE_POWER4,
.machine_check = machine_check_generic,
.platform = "power4", .platform = "power4",
}, },
{ /* Power4+ */ { /* Power4+ */
...@@ -228,7 +221,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -228,7 +221,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.pmc_type = PPC_PMC_IBM, .pmc_type = PPC_PMC_IBM,
.oprofile_cpu_type = "ppc64/power4", .oprofile_cpu_type = "ppc64/power4",
.oprofile_type = PPC_OPROFILE_POWER4, .oprofile_type = PPC_OPROFILE_POWER4,
.machine_check = machine_check_generic,
.platform = "power4", .platform = "power4",
}, },
{ /* PPC970 */ { /* PPC970 */
...@@ -247,7 +239,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -247,7 +239,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.cpu_restore = __restore_cpu_ppc970, .cpu_restore = __restore_cpu_ppc970,
.oprofile_cpu_type = "ppc64/970", .oprofile_cpu_type = "ppc64/970",
.oprofile_type = PPC_OPROFILE_POWER4, .oprofile_type = PPC_OPROFILE_POWER4,
.machine_check = machine_check_generic,
.platform = "ppc970", .platform = "ppc970",
}, },
{ /* PPC970FX */ { /* PPC970FX */
...@@ -266,7 +257,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -266,7 +257,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.cpu_restore = __restore_cpu_ppc970, .cpu_restore = __restore_cpu_ppc970,
.oprofile_cpu_type = "ppc64/970", .oprofile_cpu_type = "ppc64/970",
.oprofile_type = PPC_OPROFILE_POWER4, .oprofile_type = PPC_OPROFILE_POWER4,
.machine_check = machine_check_generic,
.platform = "ppc970", .platform = "ppc970",
}, },
{ /* PPC970MP DD1.0 - no DEEPNAP, use regular 970 init */ { /* PPC970MP DD1.0 - no DEEPNAP, use regular 970 init */
...@@ -285,7 +275,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -285,7 +275,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.cpu_restore = __restore_cpu_ppc970, .cpu_restore = __restore_cpu_ppc970,
.oprofile_cpu_type = "ppc64/970MP", .oprofile_cpu_type = "ppc64/970MP",
.oprofile_type = PPC_OPROFILE_POWER4, .oprofile_type = PPC_OPROFILE_POWER4,
.machine_check = machine_check_generic,
.platform = "ppc970", .platform = "ppc970",
}, },
{ /* PPC970MP */ { /* PPC970MP */
...@@ -304,7 +293,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -304,7 +293,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.cpu_restore = __restore_cpu_ppc970, .cpu_restore = __restore_cpu_ppc970,
.oprofile_cpu_type = "ppc64/970MP", .oprofile_cpu_type = "ppc64/970MP",
.oprofile_type = PPC_OPROFILE_POWER4, .oprofile_type = PPC_OPROFILE_POWER4,
.machine_check = machine_check_generic,
.platform = "ppc970", .platform = "ppc970",
}, },
{ /* PPC970GX */ { /* PPC970GX */
...@@ -322,7 +310,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -322,7 +310,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.cpu_setup = __setup_cpu_ppc970, .cpu_setup = __setup_cpu_ppc970,
.oprofile_cpu_type = "ppc64/970", .oprofile_cpu_type = "ppc64/970",
.oprofile_type = PPC_OPROFILE_POWER4, .oprofile_type = PPC_OPROFILE_POWER4,
.machine_check = machine_check_generic,
.platform = "ppc970", .platform = "ppc970",
}, },
{ /* Power5 GR */ { /* Power5 GR */
...@@ -343,7 +330,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -343,7 +330,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
*/ */
.oprofile_mmcra_sihv = MMCRA_SIHV, .oprofile_mmcra_sihv = MMCRA_SIHV,
.oprofile_mmcra_sipr = MMCRA_SIPR, .oprofile_mmcra_sipr = MMCRA_SIPR,
.machine_check = machine_check_generic,
.platform = "power5", .platform = "power5",
}, },
{ /* Power5++ */ { /* Power5++ */
...@@ -360,7 +346,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -360,7 +346,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.oprofile_type = PPC_OPROFILE_POWER4, .oprofile_type = PPC_OPROFILE_POWER4,
.oprofile_mmcra_sihv = MMCRA_SIHV, .oprofile_mmcra_sihv = MMCRA_SIHV,
.oprofile_mmcra_sipr = MMCRA_SIPR, .oprofile_mmcra_sipr = MMCRA_SIPR,
.machine_check = machine_check_generic,
.platform = "power5+", .platform = "power5+",
}, },
{ /* Power5 GS */ { /* Power5 GS */
...@@ -378,7 +363,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -378,7 +363,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.oprofile_type = PPC_OPROFILE_POWER4, .oprofile_type = PPC_OPROFILE_POWER4,
.oprofile_mmcra_sihv = MMCRA_SIHV, .oprofile_mmcra_sihv = MMCRA_SIHV,
.oprofile_mmcra_sipr = MMCRA_SIPR, .oprofile_mmcra_sipr = MMCRA_SIPR,
.machine_check = machine_check_generic,
.platform = "power5+", .platform = "power5+",
}, },
{ /* POWER6 in P5+ mode; 2.04-compliant processor */ { /* POWER6 in P5+ mode; 2.04-compliant processor */
...@@ -390,7 +374,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -390,7 +374,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.mmu_features = MMU_FTR_HPTE_TABLE, .mmu_features = MMU_FTR_HPTE_TABLE,
.icache_bsize = 128, .icache_bsize = 128,
.dcache_bsize = 128, .dcache_bsize = 128,
.machine_check = machine_check_generic,
.oprofile_cpu_type = "ppc64/ibm-compat-v1", .oprofile_cpu_type = "ppc64/ibm-compat-v1",
.oprofile_type = PPC_OPROFILE_POWER4, .oprofile_type = PPC_OPROFILE_POWER4,
.platform = "power5+", .platform = "power5+",
...@@ -413,7 +396,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -413,7 +396,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.oprofile_mmcra_sipr = POWER6_MMCRA_SIPR, .oprofile_mmcra_sipr = POWER6_MMCRA_SIPR,
.oprofile_mmcra_clear = POWER6_MMCRA_THRM | .oprofile_mmcra_clear = POWER6_MMCRA_THRM |
POWER6_MMCRA_OTHER, POWER6_MMCRA_OTHER,
.machine_check = machine_check_generic,
.platform = "power6x", .platform = "power6x",
}, },
{ /* 2.05-compliant processor, i.e. Power6 "architected" mode */ { /* 2.05-compliant processor, i.e. Power6 "architected" mode */
...@@ -425,7 +407,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -425,7 +407,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.mmu_features = MMU_FTR_HPTE_TABLE, .mmu_features = MMU_FTR_HPTE_TABLE,
.icache_bsize = 128, .icache_bsize = 128,
.dcache_bsize = 128, .dcache_bsize = 128,
.machine_check = machine_check_generic,
.oprofile_cpu_type = "ppc64/ibm-compat-v1", .oprofile_cpu_type = "ppc64/ibm-compat-v1",
.oprofile_type = PPC_OPROFILE_POWER4, .oprofile_type = PPC_OPROFILE_POWER4,
.platform = "power6", .platform = "power6",
...@@ -440,7 +421,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -440,7 +421,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
MMU_FTR_TLBIE_206, MMU_FTR_TLBIE_206,
.icache_bsize = 128, .icache_bsize = 128,
.dcache_bsize = 128, .dcache_bsize = 128,
.machine_check = machine_check_generic,
.oprofile_type = PPC_OPROFILE_POWER4, .oprofile_type = PPC_OPROFILE_POWER4,
.oprofile_cpu_type = "ppc64/ibm-compat-v1", .oprofile_cpu_type = "ppc64/ibm-compat-v1",
.platform = "power7", .platform = "power7",
...@@ -492,7 +472,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -492,7 +472,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.pmc_type = PPC_PMC_IBM, .pmc_type = PPC_PMC_IBM,
.oprofile_cpu_type = "ppc64/cell-be", .oprofile_cpu_type = "ppc64/cell-be",
.oprofile_type = PPC_OPROFILE_CELL, .oprofile_type = PPC_OPROFILE_CELL,
.machine_check = machine_check_generic,
.platform = "ppc-cell-be", .platform = "ppc-cell-be",
}, },
{ /* PA Semi PA6T */ { /* PA Semi PA6T */
...@@ -510,7 +489,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -510,7 +489,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.cpu_restore = __restore_cpu_pa6t, .cpu_restore = __restore_cpu_pa6t,
.oprofile_cpu_type = "ppc64/pa6t", .oprofile_cpu_type = "ppc64/pa6t",
.oprofile_type = PPC_OPROFILE_PA6T, .oprofile_type = PPC_OPROFILE_PA6T,
.machine_check = machine_check_generic,
.platform = "pa6t", .platform = "pa6t",
}, },
{ /* default match */ { /* default match */
...@@ -524,7 +502,6 @@ static struct cpu_spec __initdata cpu_specs[] = { ...@@ -524,7 +502,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
.dcache_bsize = 128, .dcache_bsize = 128,
.num_pmcs = 6, .num_pmcs = 6,
.pmc_type = PPC_PMC_IBM, .pmc_type = PPC_PMC_IBM,
.machine_check = machine_check_generic,
.platform = "power4", .platform = "power4",
} }
#endif /* CONFIG_PPC_BOOK3S_64 */ #endif /* CONFIG_PPC_BOOK3S_64 */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment