mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
bitkeeper revision 1.1159.1.555 (42094892MsTPGiy_x_uFbwMVQuq4Qg)
Fix the synchronization issues between xend and the device model at startup time. Initialize the shared page in the hypervisor. Otherwise, the hypervisor might try to inject spurious interrupts into the guest due to uninitialized data. Signed-off-by: Xin B Li <xin.b.li@intel.com> Signed-off-by: Arun Sharma <arun.sharma@intel.com> Signed-off-by: ian@xensource.com
This commit is contained in:
1 parent
3f789c23ce
commit
3b66390a75
4 files changed
+6
-4
No files matched your search
@@ -1781,6 +1781,7 @@ int bxmain () {
|
||||
// wxWindows under win32.
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
daemon(0, 0);
|
||||
bx_startup_flags.argc = argc;
|
||||
bx_startup_flags.argv = argv;
|
||||
#if BX_WITH_SDL && defined(WIN32)
|
||||
|
||||
@@ -189,9 +189,6 @@ BX_MEM_C::init_memory(int memsize)
|
||||
shared_page = xc_map_foreign_range(xc_handle, domid, PAGE_SIZE,
|
||||
PROT_READ|PROT_WRITE,
|
||||
page_array[nr_pages - 1]);
|
||||
|
||||
/* Initialize shared page */
|
||||
memset(shared_page, 0, PAGE_SIZE);
|
||||
}
|
||||
#endif // #if BX_PROVIDE_CPU_MEMORY
|
||||
|
||||
|
||||
@@ -855,7 +855,7 @@ class XendDomainInfo:
|
||||
+ " -f %s" % device_config
|
||||
+ " -d %d" % self.dom
|
||||
+ " -p %d" % device_channel['port1']
|
||||
+ " -m %s &" % memory)
|
||||
+ " -m %s" % memory)
|
||||
return deferred
|
||||
|
||||
def device_create(self, dev_config):
|
||||
|
||||
@@ -142,6 +142,10 @@ int vmx_setup_platform(struct exec_domain *d, execution_context_t *context)
|
||||
mpfn = phys_to_machine_mapping(gpfn);
|
||||
p = map_domain_mem(mpfn << PAGE_SHIFT);
|
||||
ASSERT(p != NULL);
|
||||
|
||||
/* Initialise shared page */
|
||||
memset(p, 0, PAGE_SIZE);
|
||||
|
||||
d->arch.arch_vmx.vmx_platform.shared_page_va = (unsigned long) p;
|
||||
|
||||
return 0;
|
||||
|
||||