mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-22 20:23:57 +08:00
x86, cpu: Fix regression in AMD errata checking code
A bug in the family-model-stepping matching code caused the presence of errata to go undetected when OSVW was not used. This causes hangs on some K8 systems because the E400 workaround is not enabled. Signed-off-by: Hans Rosenfeld <hans.rosenfeld@amd.com> LKML-Reference: <1282141190-930137-1-git-send-email-hans.rosenfeld@amd.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
parent
da5cabf80e
commit
07a7795ca2
@ -669,7 +669,7 @@ bool cpu_has_amd_erratum(const int *erratum)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* OSVW unavailable or ID unknown, match family-model-stepping range */
|
/* OSVW unavailable or ID unknown, match family-model-stepping range */
|
||||||
ms = (cpu->x86_model << 8) | cpu->x86_mask;
|
ms = (cpu->x86_model << 4) | cpu->x86_mask;
|
||||||
while ((range = *erratum++))
|
while ((range = *erratum++))
|
||||||
if ((cpu->x86 == AMD_MODEL_RANGE_FAMILY(range)) &&
|
if ((cpu->x86 == AMD_MODEL_RANGE_FAMILY(range)) &&
|
||||||
(ms >= AMD_MODEL_RANGE_START(range)) &&
|
(ms >= AMD_MODEL_RANGE_START(range)) &&
|
||||||
|
Loading…
Reference in New Issue
Block a user