svn commit: r259013 - in head: sys/x86/include usr.sbin/bhyve

John Baldwin jhb at FreeBSD.org
Thu Dec 5 21:51:55 UTC 2013


Author: jhb
Date: Thu Dec  5 21:51:54 2013
New Revision: 259013
URL: http://svnweb.freebsd.org/changeset/base/259013

Log:
  Fix the processor table entry structure to use a fixed-width type for
  32-bit fields so it is the correct size on amd64.  Remove a workaround
  for the broken structure from bhyve(8).
  
  MFC after:	1 week

Modified:
  head/sys/x86/include/mptable.h
  head/usr.sbin/bhyve/mptbl.c

Modified: head/sys/x86/include/mptable.h
==============================================================================
--- head/sys/x86/include/mptable.h	Thu Dec  5 21:51:53 2013	(r259012)
+++ head/sys/x86/include/mptable.h	Thu Dec  5 21:51:54 2013	(r259013)
@@ -85,10 +85,10 @@ typedef struct PROCENTRY {
 	u_char  apic_id;
 	u_char  apic_version;
 	u_char  cpu_flags;
-	u_long  cpu_signature;
-	u_long  feature_flags;
-	u_long  reserved1;
-	u_long  reserved2;
+	u_int32_t cpu_signature;
+	u_int32_t feature_flags;
+	u_int32_t reserved1;
+	u_int32_t reserved2;
 }      *proc_entry_ptr;
 
 #define PROCENTRY_FLAG_EN	0x01

Modified: head/usr.sbin/bhyve/mptbl.c
==============================================================================
--- head/usr.sbin/bhyve/mptbl.c	Thu Dec  5 21:51:53 2013	(r259012)
+++ head/usr.sbin/bhyve/mptbl.c	Thu Dec  5 21:51:54 2013	(r259013)
@@ -74,19 +74,6 @@ __FBSDID("$FreeBSD$");
 /* Number of i/o intr entries */
 #define	MPEII_MAX_IRQ		24
 
-/* Define processor entry struct since <x86/mptable.h> gets it wrong */
-typedef struct BPROCENTRY {
-	u_char		type;
-	u_char		apic_id;
-	u_char		apic_version;
-	u_char		cpu_flags;
-	uint32_t	cpu_signature;
-	uint32_t	feature_flags;
-	uint32_t	reserved1;
-	uint32_t	reserved2;
-}      *bproc_entry_ptr;
-CTASSERT(sizeof(struct BPROCENTRY) == 20);
-
 /* Bus entry defines */
 #define MPE_NUM_BUSES		2
 #define MPE_BUSNAME_LEN		6
@@ -134,7 +121,7 @@ mpt_build_mpch(mpcth_t mpch)
 }
 
 static void
-mpt_build_proc_entries(bproc_entry_ptr mpep, int ncpu)
+mpt_build_proc_entries(proc_entry_ptr mpep, int ncpu)
 {
 	int i;
 
@@ -247,7 +234,7 @@ mptable_build(struct vmctx *ctx, int ncp
 	mpcth_t			mpch;
 	bus_entry_ptr		mpeb;
 	io_apic_entry_ptr	mpei;
-	bproc_entry_ptr		mpep;
+	proc_entry_ptr		mpep;
 	mpfps_t			mpfp;
 	int_entry_ptr		mpie;
 	char 			*curraddr;
@@ -268,7 +255,7 @@ mptable_build(struct vmctx *ctx, int ncp
 	mpt_build_mpch(mpch);
 	curraddr += sizeof(*mpch);
 
-	mpep = (bproc_entry_ptr)curraddr;
+	mpep = (proc_entry_ptr)curraddr;
 	mpt_build_proc_entries(mpep, ncpu);
 	curraddr += sizeof(*mpep) * ncpu;
 	mpch->entry_count += ncpu;


More information about the svn-src-all mailing list