cpuctl_do_cpuid: explicitly use ecx=0 for cpuid call

... instead of whatever random value may happen to be in the register.
ecx is important to some cpuid leaves.

To do: extend cpuctl interface to provide for ecx value parameter.

MFC after:	5 days
This commit is contained in:
avg 2012-11-04 13:46:28 +00:00
parent 58ab2ca2eb
commit bf1c7077b5

View File

@ -204,7 +204,7 @@ cpuctl_do_cpuid(int cpu, cpuctl_cpuid_args_t *data, struct thread *td)
oldcpu = td->td_oncpu;
is_bound = cpu_sched_is_bound(td);
set_cpu(cpu, td);
do_cpuid(data->level, data->data);
cpuid_count(data->level, 0, data->data);
restore_cpu(oldcpu, is_bound, td);
return (0);
}