powerpc/virtex5: Fix Virtex5 machine check handling

The 440x5 core in the Virtex5 uses the 440A type machine check
(ie, they have MCSRR0/MCSRR1). They thus need to call the
appropriate fixup function to hook the right variant of the
exception.

Without this, all machine checks become fatal due to loss
of context when entering the exception handler.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>

authored by

Grant Likely and committed by
Josh Boyer
640d17d6 feaf3848

+4
+1
arch/powerpc/kernel/cpu_setup_44x.S
··· 40 40 mtlr r4 41 41 blr 42 42 43 + _GLOBAL(__setup_cpu_440x5) 43 44 _GLOBAL(__setup_cpu_440gx) 44 45 _GLOBAL(__setup_cpu_440spe) 45 46 b __fixup_440A_mcheck
+3
arch/powerpc/kernel/cputable.c
··· 39 39 extern void __setup_cpu_440gx(unsigned long offset, struct cpu_spec* spec); 40 40 extern void __setup_cpu_440grx(unsigned long offset, struct cpu_spec* spec); 41 41 extern void __setup_cpu_440spe(unsigned long offset, struct cpu_spec* spec); 42 + extern void __setup_cpu_440x5(unsigned long offset, struct cpu_spec* spec); 42 43 extern void __setup_cpu_460ex(unsigned long offset, struct cpu_spec* spec); 43 44 extern void __setup_cpu_460gt(unsigned long offset, struct cpu_spec* spec); 44 45 extern void __setup_cpu_603(unsigned long offset, struct cpu_spec* spec); ··· 1501 1500 .cpu_user_features = COMMON_USER_BOOKE, 1502 1501 .icache_bsize = 32, 1503 1502 .dcache_bsize = 32, 1503 + .cpu_setup = __setup_cpu_440x5, 1504 + .machine_check = machine_check_440A, 1504 1505 .platform = "ppc440", 1505 1506 }, 1506 1507 { /* 460EX */