[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/2] x86/tboot: invalidate FIX_TBOOT_MAP_ADDRESS mapping after use
On Feb 18, 2015 17:03, Jan Beulich wrote: > In order for commit cbeeaa7d ("x86/nmi: fix shootdown of pcpus > running in VMX non-root mode")'s re-use of that fixmap entry to not > cause undesirable (in crash context) cross-CPU TLB flushes, invalidate > the fixmap entry right after use. > > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> > > --- a/xen/arch/x86/tboot.c > +++ b/xen/arch/x86/tboot.c > @@ -138,6 +138,7 @@ void __init tboot_probe(void) > TXT_PUB_CONFIG_REGS_BASE + TXTCR_SINIT_BASE); > tboot_copy_memory((unsigned char *)&sinit_size, > sizeof(sinit_size), TXT_PUB_CONFIG_REGS_BASE + > TXTCR_SINIT_SIZE); > + __set_fixmap(FIX_TBOOT_MAP_ADDRESS, 0, 0); > } > > /* definitions from xen/drivers/passthrough/vtd/iommu.h > @@ -476,6 +477,8 @@ int __init tboot_parse_dmar_table(acpi_t > dmar_table_raw = xmalloc_array(unsigned char, dmar_table_length); > tboot_copy_memory(dmar_table_raw, dmar_table_length, pa); > dmar_table = (struct acpi_table_header *)dmar_table_raw; > + __set_fixmap(FIX_TBOOT_MAP_ADDRESS, 0, 0); > + > rc = dmar_handler(dmar_table); > xfree(dmar_table_raw); > > It might be better to move the fixmap invalidations into tboot_copy_memory like below. diff -r 37706d651593 xen/arch/x86/tboot.c --- a/xen/arch/x86/tboot.c Wed Mar 04 10:03:48 2015 +0100 +++ b/xen/arch/x86/tboot.c Thu Mar 05 12:40:25 2015 +0800 @@ -88,6 +88,8 @@ static void __init tboot_copy_memory(uns } va[i] = map_addr[pa + i - (map_base << PAGE_SHIFT)]; } + + __set_fixmap(FIX_TBOOT_MAP_ADDRESS, 0, 0); } void __init tboot_probe(void) Thanks Jimmy _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |