Postpone vmm module initialization until after SMP is initialized - particularly
that 'smp_started != 0'. This is required because the VT-x initialization calls smp_rendezvous() to set the CR4_VMXE bit on all the cpus. With this change we can preload vmm.ko from the loader. Reported by: alfred@, sbruno@ Obtained from: NetApp
This commit is contained in:
parent
aa7091a3ab
commit
92a8d9884d
@ -249,11 +249,15 @@ static moduledata_t vmm_kmod = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Execute the module load handler after the pci passthru driver has had
|
* vmm initialization has the following dependencies:
|
||||||
* a chance to claim devices. We need this information at the time we do
|
*
|
||||||
* iommu initialization.
|
* - iommu initialization must happen after the pci passthru driver has had
|
||||||
|
* a chance to attach to any passthru devices (after SI_SUB_CONFIGURE).
|
||||||
|
*
|
||||||
|
* - VT-x initialization requires smp_rendezvous() and therefore must happen
|
||||||
|
* after SMP is fully functional (after SI_SUB_SMP).
|
||||||
*/
|
*/
|
||||||
DECLARE_MODULE(vmm, vmm_kmod, SI_SUB_CONFIGURE + 1, SI_ORDER_ANY);
|
DECLARE_MODULE(vmm, vmm_kmod, SI_SUB_SMP + 1, SI_ORDER_ANY);
|
||||||
MODULE_VERSION(vmm, 1);
|
MODULE_VERSION(vmm, 1);
|
||||||
|
|
||||||
SYSCTL_NODE(_hw, OID_AUTO, vmm, CTLFLAG_RW, NULL, NULL);
|
SYSCTL_NODE(_hw, OID_AUTO, vmm, CTLFLAG_RW, NULL, NULL);
|
||||||
|
Loading…
Reference in New Issue
Block a user