Module Name: src
Committed By: rmind
Date: Mon Oct 5 23:59:31 UTC 2009
Modified Files:
src/sys/arch/amd64/amd64: machdep.c
src/sys/arch/i386/i386: machdep.c
src/sys/arch/x86/conf: files.x86
src/sys/arch/x86/include: cpu_msr.h intrdefs.h
src/sys/arch/x86/x86: est.c iclockmod.c ipi.c powernow_k8.c
x86_machdep.c
src/sys/arch/xen/conf: files.xen
Removed Files:
src/sys/arch/x86/x86: msr_ipifuncs.c
Log Message:
Remove X86_IPI_WRITE_MSR (and msr_ipifuncs.c), replace all uses in drivers
with xc_broadcast(). AMD K8 PowerNow driver tested by <jakllsch>, thanks!
Closes PR/37665.
To generate a diff of this commit:
cvs rdiff -u -r1.132 -r1.133 src/sys/arch/amd64/amd64/machdep.c
cvs rdiff -u -r1.671 -r1.672 src/sys/arch/i386/i386/machdep.c
cvs rdiff -u -r1.53 -r1.54 src/sys/arch/x86/conf/files.x86
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/x86/include/cpu_msr.h
cvs rdiff -u -r1.14 -r1.15 src/sys/arch/x86/include/intrdefs.h
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/x86/x86/est.c \
src/sys/arch/x86/x86/iclockmod.c
cvs rdiff -u -r1.15 -r1.16 src/sys/arch/x86/x86/ipi.c
cvs rdiff -u -r1.15 -r0 src/sys/arch/x86/x86/msr_ipifuncs.c
cvs rdiff -u -r1.25 -r1.26 src/sys/arch/x86/x86/powernow_k8.c
cvs rdiff -u -r1.33 -r1.34 src/sys/arch/x86/x86/x86_machdep.c
cvs rdiff -u -r1.104 -r1.105 src/sys/arch/xen/conf/files.xen
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/amd64/amd64/machdep.c
diff -u src/sys/arch/amd64/amd64/machdep.c:1.132 src/sys/arch/amd64/amd64/machdep.c:1.133
--- src/sys/arch/amd64/amd64/machdep.c:1.132 Tue Aug 18 16:41:02 2009
+++ src/sys/arch/amd64/amd64/machdep.c Mon Oct 5 23:59:30 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.132 2009/08/18 16:41:02 jmcneill Exp $ */
+/* $NetBSD: machdep.c,v 1.133 2009/10/05 23:59:30 rmind Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998, 2000, 2006, 2007, 2008
@@ -112,7 +112,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.132 2009/08/18 16:41:02 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.133 2009/10/05 23:59:30 rmind Exp $");
/* #define XENDEBUG_LOW */
@@ -180,7 +180,6 @@
#include <machine/mpbiosvar.h>
#include <x86/cputypes.h>
-#include <x86/cpu_msr.h>
#include <x86/cpuvar.h>
#include <x86/machdep.h>
@@ -1535,8 +1534,6 @@
splraise(IPL_HIGH);
x86_enable_intr();
- x86_init();
-
#ifdef DDB
if (boothowto & RB_KDB)
Debugger();
Index: src/sys/arch/i386/i386/machdep.c
diff -u src/sys/arch/i386/i386/machdep.c:1.671 src/sys/arch/i386/i386/machdep.c:1.672
--- src/sys/arch/i386/i386/machdep.c:1.671 Tue Aug 18 16:41:02 2009
+++ src/sys/arch/i386/i386/machdep.c Mon Oct 5 23:59:30 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.671 2009/08/18 16:41:02 jmcneill Exp $ */
+/* $NetBSD: machdep.c,v 1.672 2009/10/05 23:59:30 rmind Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998, 2000, 2004, 2006, 2008, 2009
@@ -67,7 +67,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.671 2009/08/18 16:41:02 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.672 2009/10/05 23:59:30 rmind Exp $");
#include "opt_beep.h"
#include "opt_compat_ibcs2.h"
@@ -131,8 +131,6 @@
#include <sys/sysctl.h>
-#include <x86/cpu_msr.h>
-
#include <machine/cpu.h>
#include <machine/cpufunc.h>
#include <machine/cpuvar.h>
@@ -516,8 +514,6 @@
cpu_init_tss(&cpu_info_primary);
ltr(cpu_info_primary.ci_tss_sel);
#endif
-
- x86_init();
}
/*
Index: src/sys/arch/x86/conf/files.x86
diff -u src/sys/arch/x86/conf/files.x86:1.53 src/sys/arch/x86/conf/files.x86:1.54
--- src/sys/arch/x86/conf/files.x86:1.53 Fri Oct 2 18:50:03 2009
+++ src/sys/arch/x86/conf/files.x86 Mon Oct 5 23:59:31 2009
@@ -1,4 +1,4 @@
-# $NetBSD: files.x86,v 1.53 2009/10/02 18:50:03 jmcneill Exp $
+# $NetBSD: files.x86,v 1.54 2009/10/05 23:59:31 rmind Exp $
# options for MP configuration through the MP spec
defflag opt_mpbios.h MPBIOS MPVERBOSE MPDEBUG MPBIOS_SCANPCI
@@ -61,7 +61,6 @@
file arch/x86/x86/nmi.c
file arch/x86/x86/idt.c
file arch/x86/x86/ipi.c
-file arch/x86/x86/msr_ipifuncs.c
file arch/x86/x86/mtrr_i686.c mtrr
file arch/x86/x86/patch.c
file arch/x86/x86/platform.c
Index: src/sys/arch/x86/include/cpu_msr.h
diff -u src/sys/arch/x86/include/cpu_msr.h:1.6 src/sys/arch/x86/include/cpu_msr.h:1.7
--- src/sys/arch/x86/include/cpu_msr.h:1.6 Wed Oct 17 19:58:14 2007
+++ src/sys/arch/x86/include/cpu_msr.h Mon Oct 5 23:59:31 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu_msr.h,v 1.6 2007/10/17 19:58:14 garbled Exp $ */
+/* $NetBSD: cpu_msr.h,v 1.7 2009/10/05 23:59:31 rmind Exp $ */
/*-
* Copyright (c) 2007 Juan Romero Pardines.
@@ -29,22 +29,36 @@
#define _X86_CPU_MSR_H
#include <sys/param.h>
-#include <machine/cpu.h>
+#include <sys/types.h>
#ifdef _KERNEL
-struct msr_cpu_broadcast {
- int msr_read;
- int msr_type;
- uint64_t msr_value;
- uint64_t msr_mask;
+struct msr_rw_info {
+ int msr_read;
+ int msr_type;
+ uint64_t msr_value;
+ uint64_t msr_mask;
};
-void x86_init(void);
-void msr_write_ipi(struct cpu_info *);
-void msr_cpu_broadcast_initmtx(void);
-void msr_cpu_broadcast(struct msr_cpu_broadcast *);
+static inline void
+x86_msr_xcall(void *arg1, void *arg2)
+{
+ struct msr_rw_info *msrdat = arg1;
+ uint64_t msr = 0;
+
+ KASSERT(msrdat->msr_type != 0);
+
+ /* Read the MSR requested and apply the mask if defined. */
+ if (msrdat->msr_read) {
+ msr = rdmsr(msrdat->msr_type);
+ if (msrdat->msr_mask) {
+ msr &= ~msrdat->msr_mask;
+ }
+ }
+ /* Assign (or extract, on read) the value and perform the write. */
+ msr |= msrdat->msr_value;
+ wrmsr(msrdat->msr_type, msr);
+}
#endif /* ! _KERNEL */
-
#endif /* ! _X86_CPU_MSR_H */
Index: src/sys/arch/x86/include/intrdefs.h
diff -u src/sys/arch/x86/include/intrdefs.h:1.14 src/sys/arch/x86/include/intrdefs.h:1.15
--- src/sys/arch/x86/include/intrdefs.h:1.14 Tue Nov 11 13:45:10 2008
+++ src/sys/arch/x86/include/intrdefs.h Mon Oct 5 23:59:31 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: intrdefs.h,v 1.14 2008/11/11 13:45:10 ad Exp $ */
+/* $NetBSD: intrdefs.h,v 1.15 2009/10/05 23:59:31 rmind Exp $ */
#ifndef _X86_INTRDEFS_H_
#define _X86_INTRDEFS_H_
@@ -58,11 +58,11 @@
#define X86_IPI_HALT 0x00000001
#define X86_IPI_MICROSET 0x00000002
-#define X86_IPI__UNUSED 0x00000004
+#define X86_IPI__UNUSED1 0x00000004
#define X86_IPI_SYNCH_FPU 0x00000008
#define X86_IPI_MTRR 0x00000010
#define X86_IPI_GDT 0x00000020
-#define X86_IPI_WRITE_MSR 0x00000040
+#define X86_IPI__UNUSED2 0x00000040
#define X86_IPI_ACPI_CPU_SLEEP 0x00000080
#define X86_IPI_KPREEMPT 0x00000100
@@ -70,7 +70,7 @@
#define X86_IPI_NAMES { "halt IPI", "timeset IPI", "unused", \
"FPU synch IPI", "MTRR update IPI", \
- "GDT update IPI", "MSR write IPI", \
+ "GDT update IPI", "unused", \
"ACPI CPU sleep IPI", "kpreempt IPI" }
#define IREENT_MAGIC 0x18041969
Index: src/sys/arch/x86/x86/est.c
diff -u src/sys/arch/x86/x86/est.c:1.12 src/sys/arch/x86/x86/est.c:1.13
--- src/sys/arch/x86/x86/est.c:1.12 Fri Oct 2 15:05:42 2009
+++ src/sys/arch/x86/x86/est.c Mon Oct 5 23:59:31 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: est.c,v 1.12 2009/10/02 15:05:42 jmcneill Exp $ */
+/* $NetBSD: est.c,v 1.13 2009/10/05 23:59:31 rmind Exp $ */
/*
* Copyright (c) 2003 Michael Eriksson.
* All rights reserved.
@@ -81,7 +81,7 @@
/* #define EST_DEBUG */
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: est.c,v 1.12 2009/10/02 15:05:42 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: est.c,v 1.13 2009/10/05 23:59:31 rmind Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -89,6 +89,7 @@
#include <sys/malloc.h>
#include <sys/sysctl.h>
#include <sys/once.h>
+#include <sys/xcall.h>
#include <x86/cpuvar.h>
#include <x86/cputypes.h>
@@ -1009,7 +1010,6 @@
static int
est_sysctl_helper(SYSCTLFN_ARGS)
{
- struct msr_cpu_broadcast mcb;
struct sysctlnode node;
int fq, oldfq, error;
@@ -1033,17 +1033,22 @@
/* support writing to ...frequency.target */
if (rnode->sysctl_num == est_node_target && fq != oldfq) {
- int i;
+ struct msr_rw_info msr;
+ uint64_t where;
+ int i;
for (i = est_fqlist->n - 1; i > 0; i--)
if (MSR2MHZ(est_fqlist->table[i], bus_clock) >= fq)
break;
fq = MSR2MHZ(est_fqlist->table[i], bus_clock);
- mcb.msr_read = true;
- mcb.msr_type = MSR_PERF_CTL;
- mcb.msr_mask = 0xffffULL;
- mcb.msr_value = est_fqlist->table[i];
- msr_cpu_broadcast(&mcb);
+
+ msr.msr_read = true;
+ msr.msr_type = MSR_PERF_CTL;
+ msr.msr_mask = 0xffffULL;
+ msr.msr_value = est_fqlist->table[i];
+
+ where = xc_broadcast(0, (xcfunc_t)x86_msr_xcall, &msr, NULL);
+ xc_wait(where);
}
return 0;
Index: src/sys/arch/x86/x86/iclockmod.c
diff -u src/sys/arch/x86/x86/iclockmod.c:1.12 src/sys/arch/x86/x86/iclockmod.c:1.13
--- src/sys/arch/x86/x86/iclockmod.c:1.12 Sun May 11 14:44:54 2008
+++ src/sys/arch/x86/x86/iclockmod.c Mon Oct 5 23:59:31 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: iclockmod.c,v 1.12 2008/05/11 14:44:54 ad Exp $ */
+/* $NetBSD: iclockmod.c,v 1.13 2009/10/05 23:59:31 rmind Exp $ */
/* $OpenBSD: p4tcc.c,v 1.13 2006/12/20 17:50:40 gwk Exp $ */
/*
@@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: iclockmod.c,v 1.12 2008/05/11 14:44:54 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: iclockmod.c,v 1.13 2009/10/05 23:59:31 rmind Exp $");
#include "opt_intel_odcm.h"
@@ -49,6 +49,7 @@
#include <sys/malloc.h>
#include <sys/sysctl.h>
#include <sys/once.h>
+#include <sys/xcall.h>
#include <machine/cpu.h>
#include <machine/cpuvar.h>
@@ -60,7 +61,6 @@
#define ODCM_REGOFFSET 1
#define ODCM_MAXSTATES 8
-static struct msr_cpu_broadcast mcb;
static int clockmod_level;
static int clockmod_state_target;
static int clockmod_state_current;
@@ -111,6 +111,8 @@
static void
clockmod_setstate(int level)
{
+ struct msr_rw_info msr;
+ uint64_t where;
int i;
for (i = 0; i < __arraycount(state); i++) {
@@ -119,16 +121,17 @@
}
KASSERT(i != __arraycount(state));
- mcb.msr_read = true;
- mcb.msr_type = MSR_THERM_CONTROL;
- mcb.msr_mask = 0x1e;
+ msr.msr_read = true;
+ msr.msr_type = MSR_THERM_CONTROL;
+ msr.msr_mask = 0x1e;
if (state[i].reg != 0) /* bit 0 reserved */
- mcb.msr_value = (state[i].reg << ODCM_REGOFFSET) | ODCM_ENABLE;
+ msr.msr_value = (state[i].reg << ODCM_REGOFFSET) | ODCM_ENABLE;
else
- mcb.msr_value = 0; /* max state */
+ msr.msr_value = 0; /* max state */
- msr_cpu_broadcast(&mcb);
+ where = xc_broadcast(0, (xcfunc_t)x86_msr_xcall, &msr, NULL);
+ xc_wait(where);
}
static int
Index: src/sys/arch/x86/x86/ipi.c
diff -u src/sys/arch/x86/x86/ipi.c:1.15 src/sys/arch/x86/x86/ipi.c:1.16
--- src/sys/arch/x86/x86/ipi.c:1.15 Tue Aug 18 16:41:03 2009
+++ src/sys/arch/x86/x86/ipi.c Mon Oct 5 23:59:31 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: ipi.c,v 1.15 2009/08/18 16:41:03 jmcneill Exp $ */
+/* $NetBSD: ipi.c,v 1.16 2009/10/05 23:59:31 rmind Exp $ */
/*-
* Copyright (c) 2000, 2008, 2009 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ipi.c,v 1.15 2009/08/18 16:41:03 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ipi.c,v 1.16 2009/10/05 23:59:31 rmind Exp $");
#include "opt_mtrr.h"
@@ -53,8 +53,6 @@
#include <machine/mtrr.h>
#include <machine/gdt.h>
-#include <x86/cpu_msr.h>
-
#include "acpica.h"
#ifdef __x86_64__
@@ -94,7 +92,7 @@
x86_ipi_synch_fpu,
x86_ipi_reload_mtrr,
gdt_reload_cpu,
- msr_write_ipi,
+ NULL,
acpi_cpu_sleep,
x86_ipi_kpreempt
};
Index: src/sys/arch/x86/x86/powernow_k8.c
diff -u src/sys/arch/x86/x86/powernow_k8.c:1.25 src/sys/arch/x86/x86/powernow_k8.c:1.26
--- src/sys/arch/x86/x86/powernow_k8.c:1.25 Sun Aug 23 16:02:50 2009
+++ src/sys/arch/x86/x86/powernow_k8.c Mon Oct 5 23:59:31 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: powernow_k8.c,v 1.25 2009/08/23 16:02:50 ahoka Exp $ */
+/* $NetBSD: powernow_k8.c,v 1.26 2009/10/05 23:59:31 rmind Exp $ */
/* $OpenBSD: powernow-k8.c,v 1.8 2006/06/16 05:58:50 gwk Exp $ */
/*-
@@ -59,7 +59,7 @@
/* AMD POWERNOW K8 driver */
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: powernow_k8.c,v 1.25 2009/08/23 16:02:50 ahoka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: powernow_k8.c,v 1.26 2009/10/05 23:59:31 rmind Exp $");
#include <sys/types.h>
#include <sys/param.h>
@@ -67,6 +67,7 @@
#include <sys/malloc.h>
#include <sys/sysctl.h>
#include <sys/once.h>
+#include <sys/xcall.h>
#include <x86/cpu_msr.h>
#include <x86/powernow.h>
@@ -78,12 +79,6 @@
#include <machine/cpufunc.h>
#include <machine/bus.h>
-#define WRITE_FIDVID(fid, vid, ctrl) \
- mcb.msr_read = false; \
- mcb.msr_value = (((ctrl) << 32) | (1ULL << 16) | ((vid) << 8) | (fid)); \
- mcb.msr_type = MSR_AMDK7_FIDVID_CTL; \
- msr_cpu_broadcast(&mcb);
-
#ifdef _MODULE
static struct sysctllog *sysctllog;
#define SYSCTLLOG &sysctllog
@@ -91,11 +86,6 @@
#define SYSCTLLOG NULL
#endif
-#define READ_PENDING_WAIT(status) \
- do { \
- (status) = rdmsr(MSR_AMDK7_FIDVID_STATUS); \
- } while (PN8_STA_PENDING(status))
-
static struct powernow_cpu_state *k8pnow_current_state;
static unsigned int cur_freq;
static int powernow_node_target, powernow_node_current;
@@ -110,6 +100,26 @@
static int k8_powernow_init_once(void);
static void k8_powernow_init_main(void);
+static uint64_t
+k8pnow_wr_fidvid(u_int fid, uint64_t vid, uint64_t ctrl)
+{
+ struct msr_rw_info msr;
+ uint64_t where, status;
+
+ msr.msr_read = false;
+ msr.msr_value = (ctrl << 32) | (1ULL << 16) | (vid << 8) | fid;
+ msr.msr_type = MSR_AMDK7_FIDVID_CTL;
+
+ where = xc_broadcast(0, (xcfunc_t)x86_msr_xcall, &msr, NULL);
+ xc_wait(where);
+
+ do {
+ status = rdmsr(MSR_AMDK7_FIDVID_STATUS);
+ } while (PN8_STA_PENDING(status));
+
+ return status;
+}
+
static int
k8pnow_sysctl_helper(SYSCTLFN_ARGS)
{
@@ -151,7 +161,6 @@
int cfid, cvid, fid = 0, vid = 0;
int rvo;
struct powernow_cpu_state *cstate;
- struct msr_cpu_broadcast mcb;
/*
* We dont do a k8pnow_read_pending_wait here, need to ensure that the
@@ -186,8 +195,7 @@
*/
while (cvid > vid) {
val = cvid - (1 << cstate->mvs);
- WRITE_FIDVID(cfid, (val > 0) ? val : 0, 1ULL);
- READ_PENDING_WAIT(status);
+ status = k8pnow_wr_fidvid(cfid, (val > 0) ? val : 0, 1ULL);
cvid = PN8_STA_CVID(status);
COUNT_OFF_VST(cstate->vst);
}
@@ -197,8 +205,7 @@
/* XXX It's not clear from spec if we have to do that
* in 0.25 step or in MVS. Therefore do it as it's done
* under Linux */
- WRITE_FIDVID(cfid, cvid - 1, 1ULL);
- READ_PENDING_WAIT(status);
+ status = k8pnow_wr_fidvid(cfid, cvid - 1, 1ULL);
cvid = PN8_STA_CVID(status);
COUNT_OFF_VST(cstate->vst);
}
@@ -218,24 +225,23 @@
val = FID_TO_VCO_FID(cfid) + 2;
} else
val = cfid - 2;
- WRITE_FIDVID(val, cvid, (uint64_t)cstate->pll * 1000 / 5);
- READ_PENDING_WAIT(status);
+ status = k8pnow_wr_fidvid(val, cvid,
+ (uint64_t)cstate->pll * 1000 / 5);
cfid = PN8_STA_CFID(status);
COUNT_OFF_IRT(cstate->irt);
vco_cfid = FID_TO_VCO_FID(cfid);
}
- WRITE_FIDVID(fid, cvid, (uint64_t) cstate->pll * 1000 / 5);
- READ_PENDING_WAIT(status);
+ status = k8pnow_wr_fidvid(fid, cvid,
+ (uint64_t)cstate->pll * 1000 / 5);
cfid = PN8_STA_CFID(status);
COUNT_OFF_IRT(cstate->irt);
}
/* Phase 3: change to requested voltage */
if (cvid != vid) {
- WRITE_FIDVID(cfid, vid, 1ULL);
- READ_PENDING_WAIT(status);
+ status = k8pnow_wr_fidvid(cfid, vid, 1ULL);
cvid = PN8_STA_CVID(status);
COUNT_OFF_VST(cstate->vst);
}
Index: src/sys/arch/x86/x86/x86_machdep.c
diff -u src/sys/arch/x86/x86/x86_machdep.c:1.33 src/sys/arch/x86/x86/x86_machdep.c:1.34
--- src/sys/arch/x86/x86/x86_machdep.c:1.33 Wed Aug 5 20:15:36 2009
+++ src/sys/arch/x86/x86/x86_machdep.c Mon Oct 5 23:59:31 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: x86_machdep.c,v 1.33 2009/08/05 20:15:36 jym Exp $ */
+/* $NetBSD: x86_machdep.c,v 1.34 2009/10/05 23:59:31 rmind Exp $ */
/*-
* Copyright (c) 2002, 2006, 2007 YAMAMOTO Takashi,
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: x86_machdep.c,v 1.33 2009/08/05 20:15:36 jym Exp $");
+__KERNEL_RCSID(0, "$NetBSD: x86_machdep.c,v 1.34 2009/10/05 23:59:31 rmind Exp $");
#include "opt_modular.h"
@@ -49,7 +49,6 @@
#include <sys/sysctl.h>
#include <sys/extent.h>
-#include <x86/cpu_msr.h>
#include <x86/cpuvar.h>
#include <x86/cputypes.h>
#include <x86/machdep.h>
@@ -124,15 +123,6 @@
KAUTH_MACHDEP_UNMANAGEDMEM, NULL, NULL, NULL, NULL);
}
-/*
- * This function is to initialize the mutex used by x86/msr_ipifuncs.c.
- */
-void
-x86_init(void)
-{
- msr_cpu_broadcast_initmtx();
-}
-
#ifdef MODULAR
/*
* Push any modules loaded by the boot loader.
Index: src/sys/arch/xen/conf/files.xen
diff -u src/sys/arch/xen/conf/files.xen:1.104 src/sys/arch/xen/conf/files.xen:1.105
--- src/sys/arch/xen/conf/files.xen:1.104 Sun Aug 16 15:35:52 2009
+++ src/sys/arch/xen/conf/files.xen Mon Oct 5 23:59:31 2009
@@ -1,4 +1,4 @@
-# $NetBSD: files.xen,v 1.104 2009/08/16 15:35:52 manu Exp $
+# $NetBSD: files.xen,v 1.105 2009/10/05 23:59:31 rmind Exp $
# NetBSD: files.x86,v 1.10 2003/10/08 17:30:00 bouyer Exp
# NetBSD: files.i386,v 1.254 2004/03/25 23:32:10 jmc Exp
@@ -293,8 +293,6 @@
file arch/xen/x86/cpu.c cpu | vcpu
-file arch/x86/x86/msr_ipifuncs.c
-
#
# Compatibility modules
#