Merge branch 'v2.6.36-rc6-urgent-fixes' of git://xenbits.xen.org/people/sstabellini/linux-pvhvm
* 'v2.6.36-rc6-urgent-fixes' of git://xenbits.xen.org/people/sstabellini/linux-pvhvm: xen: do not initialize PV timers on HVM if !xen_have_vector_callback xen: do not set xenstored_ready before xenbus_probe on hvm
This commit is contained in:
commit
34984f54b7
|
@ -489,8 +489,9 @@ static void xen_hvm_setup_cpu_clockevents(void)
|
||||||
__init void xen_hvm_init_time_ops(void)
|
__init void xen_hvm_init_time_ops(void)
|
||||||
{
|
{
|
||||||
/* vector callback is needed otherwise we cannot receive interrupts
|
/* vector callback is needed otherwise we cannot receive interrupts
|
||||||
* on cpu > 0 */
|
* on cpu > 0 and at this point we don't know how many cpus are
|
||||||
if (!xen_have_vector_callback && num_present_cpus() > 1)
|
* available */
|
||||||
|
if (!xen_have_vector_callback)
|
||||||
return;
|
return;
|
||||||
if (!xen_feature(XENFEAT_hvm_safe_pvclock)) {
|
if (!xen_feature(XENFEAT_hvm_safe_pvclock)) {
|
||||||
printk(KERN_INFO "Xen doesn't support pvclock on HVM,"
|
printk(KERN_INFO "Xen doesn't support pvclock on HVM,"
|
||||||
|
|
|
@ -755,7 +755,10 @@ int register_xenstore_notifier(struct notifier_block *nb)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
blocking_notifier_chain_register(&xenstore_chain, nb);
|
if (xenstored_ready > 0)
|
||||||
|
ret = nb->notifier_call(nb, 0, NULL);
|
||||||
|
else
|
||||||
|
blocking_notifier_chain_register(&xenstore_chain, nb);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -769,7 +772,7 @@ EXPORT_SYMBOL_GPL(unregister_xenstore_notifier);
|
||||||
|
|
||||||
void xenbus_probe(struct work_struct *unused)
|
void xenbus_probe(struct work_struct *unused)
|
||||||
{
|
{
|
||||||
BUG_ON((xenstored_ready <= 0));
|
xenstored_ready = 1;
|
||||||
|
|
||||||
/* Enumerate devices in xenstore and watch for changes. */
|
/* Enumerate devices in xenstore and watch for changes. */
|
||||||
xenbus_probe_devices(&xenbus_frontend);
|
xenbus_probe_devices(&xenbus_frontend);
|
||||||
|
@ -835,8 +838,8 @@ static int __init xenbus_init(void)
|
||||||
xen_store_evtchn = xen_start_info->store_evtchn;
|
xen_store_evtchn = xen_start_info->store_evtchn;
|
||||||
xen_store_mfn = xen_start_info->store_mfn;
|
xen_store_mfn = xen_start_info->store_mfn;
|
||||||
xen_store_interface = mfn_to_virt(xen_store_mfn);
|
xen_store_interface = mfn_to_virt(xen_store_mfn);
|
||||||
|
xenstored_ready = 1;
|
||||||
}
|
}
|
||||||
xenstored_ready = 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialize the interface to xenstore. */
|
/* Initialize the interface to xenstore. */
|
||||||
|
|
Loading…
Reference in New Issue