Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/sys/arch/i386/i386
On 25/07/2007, at 15:41, Juan Romero Pardines wrote:
Module Name: src
Committed By: xtraeme
Date: Wed Jul 25 13:41:54 UTC 2007
Modified Files:
src/sys/arch/i386/i386: identcpu.c
Log Message:
There's no need to check for cpu_vendor before calling est_init(),
just
pass cpu_vendor to it.
Are you sure that is correct? The original code was only calling
est_init when the cpu_vendor was one of CPUVENDOR_INTEL or
CPUVENDOR_IDT. Now it calls est_init with any vendor. According to
the est_init code, I see:
if (CPUID2FAMILY(curcpu()->ci_signature) == 15)
bus_clock = p4_get_bus_clock(curcpu());
else if (CPUID2FAMILY(curcpu()->ci_signature) == 6) {
if (vendor == CPUVENDOR_IDT)
bus_clock = via_get_bus_clock(curcpu());
else
bus_clock = p3_get_bus_clock(curcpu());
}
So when cpu_vendor != CPUVENDOR_IDT, it calls p3_get_bus_clock. And
that function only seems to recognize Intel CPUs. So with your
change, this function will get called with any kind of CPU and return
invalid values.
(It seems that the error paths are graceful and that there won't be
serious problems, but this feels wrong. Furthermore the user will
likely get extra error messages during boot.)
--
Julio M. Merino Vidal <jmmv84%gmail.com@localhost>
Home |
Main Index |
Thread Index |
Old Index