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:
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)
|
||||
{
|
||||
const struct manufacturer_info *manuf;
|
||||
int i;
|
||||
|
||||
sparc_cpu_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 fpu_info *fpu;
|
||||
|
||||
cpu = &manufacturer_info[psr_impl].cpu_info[0];
|
||||
cpu = &manuf->cpu_info[0];
|
||||
while (cpu->psr_vers != -1)
|
||||
{
|
||||
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++;
|
||||
}
|
||||
fpu = &manufacturer_info[psr_impl].fpu_info[0];
|
||||
fpu = &manuf->fpu_info[0];
|
||||
while (fpu->fp_vers != -1)
|
||||
{
|
||||
if (fpu->fp_vers == fpu_vers) {
|
||||
|
|
Loading…
Reference in New Issue