Commit 34984f54b7e8cb29632e921fb2f47b403c0e617a
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
Showing 2 changed files Side-by-side Diff
arch/x86/xen/time.c
... | ... | @@ -489,8 +489,9 @@ |
489 | 489 | __init void xen_hvm_init_time_ops(void) |
490 | 490 | { |
491 | 491 | /* vector callback is needed otherwise we cannot receive interrupts |
492 | - * on cpu > 0 */ | |
493 | - if (!xen_have_vector_callback && num_present_cpus() > 1) | |
492 | + * on cpu > 0 and at this point we don't know how many cpus are | |
493 | + * available */ | |
494 | + if (!xen_have_vector_callback) | |
494 | 495 | return; |
495 | 496 | if (!xen_feature(XENFEAT_hvm_safe_pvclock)) { |
496 | 497 | printk(KERN_INFO "Xen doesn't support pvclock on HVM," |
drivers/xen/xenbus/xenbus_probe.c
... | ... | @@ -755,7 +755,10 @@ |
755 | 755 | { |
756 | 756 | int ret = 0; |
757 | 757 | |
758 | - blocking_notifier_chain_register(&xenstore_chain, nb); | |
758 | + if (xenstored_ready > 0) | |
759 | + ret = nb->notifier_call(nb, 0, NULL); | |
760 | + else | |
761 | + blocking_notifier_chain_register(&xenstore_chain, nb); | |
759 | 762 | |
760 | 763 | return ret; |
761 | 764 | } |
... | ... | @@ -769,7 +772,7 @@ |
769 | 772 | |
770 | 773 | void xenbus_probe(struct work_struct *unused) |
771 | 774 | { |
772 | - BUG_ON((xenstored_ready <= 0)); | |
775 | + xenstored_ready = 1; | |
773 | 776 | |
774 | 777 | /* Enumerate devices in xenstore and watch for changes. */ |
775 | 778 | xenbus_probe_devices(&xenbus_frontend); |
776 | 779 | |
... | ... | @@ -835,8 +838,8 @@ |
835 | 838 | xen_store_evtchn = xen_start_info->store_evtchn; |
836 | 839 | xen_store_mfn = xen_start_info->store_mfn; |
837 | 840 | xen_store_interface = mfn_to_virt(xen_store_mfn); |
841 | + xenstored_ready = 1; | |
838 | 842 | } |
839 | - xenstored_ready = 1; | |
840 | 843 | } |
841 | 844 | |
842 | 845 | /* Initialize the interface to xenstore. */ |