diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-04-25 08:19:14 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-04-25 08:19:14 +0100 |
commit | 5dd00021b3ae0b6ef0dd645c862b63e79b056ccc (patch) | |
tree | a6136e4511633dd5eeef9447cb9f1f8073fddd7a /xen/arch/x86/tboot.c | |
parent | 522b335995907366ff995a36a8098bc6b1e4cdf1 (diff) | |
download | xen-5dd00021b3ae0b6ef0dd645c862b63e79b056ccc.tar.gz xen-5dd00021b3ae0b6ef0dd645c862b63e79b056ccc.tar.bz2 xen-5dd00021b3ae0b6ef0dd645c862b63e79b056ccc.zip |
x86 vtd: Do not exclude freed percpu areas from dom0 vtd tables.
Signed-off-by: Qing He <qing.he@intel.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/arch/x86/tboot.c')
-rw-r--r-- | xen/arch/x86/tboot.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/xen/arch/x86/tboot.c b/xen/arch/x86/tboot.c index e259cd5da1..54075c21c5 100644 --- a/xen/arch/x86/tboot.c +++ b/xen/arch/x86/tboot.c @@ -46,7 +46,7 @@ static uint64_t sinit_base, sinit_size; #define TXTCR_HEAP_BASE 0x0300 #define TXTCR_HEAP_SIZE 0x0308 -extern char __init_begin[], __per_cpu_start[], __per_cpu_end[], __bss_start[]; +extern char __init_begin[], __per_cpu_start[], __bss_start[]; extern unsigned long allocator_bitmap_end; #define SHA1_SIZE 20 @@ -310,8 +310,9 @@ void tboot_shutdown(uint32_t shutdown_type) __pa(&_stext); /* per-cpu data */ g_tboot_shared->mac_regions[2].start = (uint64_t)__pa(&__per_cpu_start); - g_tboot_shared->mac_regions[2].size = __pa(&__per_cpu_end) - - __pa(&__per_cpu_start); + g_tboot_shared->mac_regions[2].size = + g_tboot_shared->mac_regions[2].start + + (((uint64_t)last_cpu(cpu_possible_map) + 1) << PERCPU_SHIFT); /* bss */ g_tboot_shared->mac_regions[3].start = (uint64_t)__pa(&__bss_start); g_tboot_shared->mac_regions[3].size = __pa(&_end) - __pa(&__bss_start); |