sparc64: fix readout of cpu/fpu type
Meelis reported that on his box /proc/cpuinfo started to reported "Unknow CPU" and the same did the boot messages. It was a stupid bug I introduced when merging cpu.c for 32 and 64 bit. The code did an array reference where it had to search for the right index. Reported-by: Meelis Roos <mroos@linux.ee> Tested-by: Meelis Roos <mroos@linux.ee> Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
f3b8436ad9
commit
c275ce4492
@@ -239,14 +239,26 @@ unsigned int fsr_storage;
|
|||||||
|
|
||||||
static void set_cpu_and_fpu(int psr_impl, int psr_vers, int fpu_vers)
|
static void set_cpu_and_fpu(int psr_impl, int psr_vers, int fpu_vers)
|
||||||
{
|
{
|
||||||
|
const struct manufacturer_info *manuf;
|
||||||
|
int i;
|
||||||
|
|
||||||
sparc_cpu_type = NULL;
|
sparc_cpu_type = NULL;
|
||||||
sparc_fpu_type = NULL;
|
sparc_fpu_type = NULL;
|
||||||
if (psr_impl < ARRAY_SIZE(manufacturer_info))
|
manuf = NULL;
|
||||||
|
|
||||||
|
for (i = 0; i < ARRAY_SIZE(manufacturer_info); i++)
|
||||||
|
{
|
||||||
|
if (psr_impl == manufacturer_info[i].psr_impl) {
|
||||||
|
manuf = &manufacturer_info[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (manuf != NULL)
|
||||||
{
|
{
|
||||||
const struct cpu_info *cpu;
|
const struct cpu_info *cpu;
|
||||||
const struct fpu_info *fpu;
|
const struct fpu_info *fpu;
|
||||||
|
|
||||||
cpu = &manufacturer_info[psr_impl].cpu_info[0];
|
cpu = &manuf->cpu_info[0];
|
||||||
while (cpu->psr_vers != -1)
|
while (cpu->psr_vers != -1)
|
||||||
{
|
{
|
||||||
if (cpu->psr_vers == psr_vers) {
|
if (cpu->psr_vers == psr_vers) {
|
||||||
@@ -256,7 +268,7 @@ static void set_cpu_and_fpu(int psr_impl, int psr_vers, int fpu_vers)
|
|||||||
}
|
}
|
||||||
cpu++;
|
cpu++;
|
||||||
}
|
}
|
||||||
fpu = &manufacturer_info[psr_impl].fpu_info[0];
|
fpu = &manuf->fpu_info[0];
|
||||||
while (fpu->fp_vers != -1)
|
while (fpu->fp_vers != -1)
|
||||||
{
|
{
|
||||||
if (fpu->fp_vers == fpu_vers) {
|
if (fpu->fp_vers == fpu_vers) {
|
||||||
|
Reference in New Issue
Block a user