Xiao Guangrong
2010-May-07 08:51 UTC
[Xen-devel] [PATCH 1/2] x86: get the offset at compile time instead of raw value
Get the offset form the struct instead of raw value Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com> diff -r 632487ba7f63 -r 5ca49b1a6077 xen/arch/x86/boot/cmdline.S --- a/xen/arch/x86/boot/cmdline.S Fri May 07 22:48:33 2010 +0800 +++ b/xen/arch/x86/boot/cmdline.S Fri May 07 23:56:27 2010 +0800 @@ -147,10 +147,6 @@ 3: pop %ebx ret -/* multiboot_info structure offsets. */ -#define MB_flags 0 -#define MB_cmdline 16 - cmdline_parse_early: pusha diff -r 632487ba7f63 -r 5ca49b1a6077 xen/arch/x86/x86_32/asm-offsets.c --- a/xen/arch/x86/x86_32/asm-offsets.c Fri May 07 22:48:33 2010 +0800 +++ b/xen/arch/x86/x86_32/asm-offsets.c Fri May 07 23:56:27 2010 +0800 @@ -9,6 +9,7 @@ #include <xen/sched.h> #include <asm/fixmap.h> #include <asm/hardirq.h> +#include <xen/multiboot.h> #define DEFINE(_sym, _val) \ __asm__ __volatile__ ( "\n->" #_sym " %0 " #_val : : "i" (_val) ) @@ -127,4 +128,8 @@ BLANK(); OFFSET(CPUINFO_ext_features, struct cpuinfo_x86, x86_capability[1]); + BLANK(); + + OFFSET(MB_flags, multiboot_info_t, flags); + OFFSET(MB_cmdline, multiboot_info_t, cmdline); } diff -r 632487ba7f63 -r 5ca49b1a6077 xen/arch/x86/x86_64/asm-offsets.c --- a/xen/arch/x86/x86_64/asm-offsets.c Fri May 07 22:48:33 2010 +0800 +++ b/xen/arch/x86/x86_64/asm-offsets.c Fri May 07 23:56:27 2010 +0800 @@ -10,6 +10,7 @@ #include <compat/xen.h> #include <asm/fixmap.h> #include <asm/hardirq.h> +#include <xen/multiboot.h> #define DEFINE(_sym, _val) \ __asm__ __volatile__ ( "\n->" #_sym " %0 " #_val : : "i" (_val) ) @@ -151,4 +152,8 @@ BLANK(); OFFSET(CPUINFO_ext_features, struct cpuinfo_x86, x86_capability[1]); + BLANK(); + + OFFSET(MB_flags, multiboot_info_t, flags); + OFFSET(MB_cmdline, multiboot_info_t, cmdline); } _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Xiao Guangrong
2010-May-07 08:52 UTC
[Xen-devel] [PATCH 2/2] small cleanup for domain_create()
''struct domain'' is always set to zero when it allocated, the only exception is not defined ''CONFIG_IA64_PICKLE_DOMAIN'' in ia64 architecture, so we set it to zero in this case instead of in domain_create() function. Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com> diff -r ccae861f52f7 -r 632487ba7f63 xen/arch/ia64/xen/domain.c --- a/xen/arch/ia64/xen/domain.c Thu May 06 11:59:55 2010 +0100 +++ b/xen/arch/ia64/xen/domain.c Fri May 07 22:48:33 2010 +0800 @@ -407,20 +407,21 @@ struct domain *alloc_domain_struct(void) { + struct domain *d; #ifdef CONFIG_IA64_PICKLE_DOMAIN - struct domain *d; /* * We pack the MFN of the domain structure into a 32-bit field within * the page_info structure. Hence the MEMF_bits() restriction. */ d = alloc_xenheap_pages(get_order_from_bytes(sizeof(*d)), MEMF_bits(32 + PAGE_SHIFT)); +#else + d = xmalloc(struct domain); +#endif + if ( d != NULL ) memset(d, 0, sizeof(*d)); return d; -#else - return xmalloc(struct domain); -#endif } void free_domain_struct(struct domain *d) diff -r ccae861f52f7 -r 632487ba7f63 xen/common/domain.c --- a/xen/common/domain.c Thu May 06 11:59:55 2010 +0100 +++ b/xen/common/domain.c Fri May 07 22:48:33 2010 +0800 @@ -223,7 +223,6 @@ if ( (d = alloc_domain_struct()) == NULL ) return NULL; - memset(d, 0, sizeof(*d)); d->domain_id = domid; lock_profile_register_struct(LOCKPROF_TYPE_PERDOM, d, domid, "Domain"); _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel