The initial msr read is pointless now, quit passing it around. I don't use the value in k1x_acpi_states().
My bad. But I guess it could be left in as an early detection of a newer CPU that doesn't support K10 style msr's (..vs as soon as someone fiddles with a sysctl or enables apmd). -Bryan. Index: amd64/amd64/k1x-pstate.c =================================================================== RCS file: /cvs/src/sys/arch/amd64/amd64/k1x-pstate.c,v retrieving revision 1.3 diff -u -p -u -r1.3 k1x-pstate.c --- arch/amd64/amd64/k1x-pstate.c 7 Jan 2012 05:55:08 -0000 1.3 +++ arch/amd64/amd64/k1x-pstate.c 28 Jan 2012 02:58:15 -0000 @@ -76,8 +76,7 @@ void k1x_transition(struct k1x_cpu_state #if NACPICPU > 0 void k1x_acpi_init(struct k1x_cpu_state *); -void k1x_acpi_states(struct k1x_cpu_state *, struct acpicpu_pss *, int, - u_int64_t); +void k1x_acpi_states(struct k1x_cpu_state *, struct acpicpu_pss *, int); #endif void @@ -131,7 +130,7 @@ k1x_transition(struct k1x_cpu_state *cst void k1x_acpi_states(struct k1x_cpu_state *cstate, struct acpicpu_pss *pss, - int nstates, u_int64_t msr) + int nstates) { struct k1x_state state; int j, n; @@ -157,15 +156,12 @@ void k1x_acpi_init(struct k1x_cpu_state *cstate) { struct acpicpu_pss *pss; - u_int64_t msr; cstate->n_states = acpicpu_fetch_pss(&pss); if (cstate->n_states == 0) return; - msr = rdmsr(MSR_K1X_STATUS); - - k1x_acpi_states(cstate, pss, cstate->n_states, msr); + k1x_acpi_states(cstate, pss, cstate->n_states); return; } Index: i386/i386/k1x-pstate.c =================================================================== RCS file: /cvs/src/sys/arch/i386/i386/k1x-pstate.c,v retrieving revision 1.3 diff -u -p -u -r1.3 k1x-pstate.c --- arch/i386/i386/k1x-pstate.c 7 Jan 2012 05:55:08 -0000 1.3 +++ arch/i386/i386/k1x-pstate.c 28 Jan 2012 02:58:16 -0000 @@ -76,8 +76,7 @@ void k1x_transition(struct k1x_cpu_state #if NACPICPU > 0 void k1x_acpi_init(struct k1x_cpu_state *); -void k1x_acpi_states(struct k1x_cpu_state *, struct acpicpu_pss *, int, - u_int64_t); +void k1x_acpi_states(struct k1x_cpu_state *, struct acpicpu_pss *, int); #endif void @@ -131,7 +130,7 @@ k1x_transition(struct k1x_cpu_state *cst void k1x_acpi_states(struct k1x_cpu_state *cstate, struct acpicpu_pss *pss, - int nstates, u_int64_t msr) + int nstates) { struct k1x_state state; int j, n; @@ -157,15 +156,12 @@ void k1x_acpi_init(struct k1x_cpu_state *cstate) { struct acpicpu_pss *pss; - u_int64_t msr; cstate->n_states = acpicpu_fetch_pss(&pss); if (cstate->n_states == 0) return; - msr = rdmsr(MSR_K1X_STATUS); - - k1x_acpi_states(cstate, pss, cstate->n_states, msr); + k1x_acpi_states(cstate, pss, cstate->n_states); return; }