|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 1/5] xen: Fix event channel callback via INTX/GSI
On Wed, 2021-01-13 at 12:20 +0100, Jürgen Groß wrote:
>
> /home/gross/korg/src/drivers/xen/xenbus/xenbus_probe.c: In function
> 'xenbus_probe_initcall':
> /home/gross/korg/src/drivers/xen/xenbus/xenbus_probe.c:711:41:
> error:
> 'xen_have_vector_callback' undeclared (first use in this function);
> did
> you mean 'em_data_callback'?
> (!IS_ENABLED(CONFIG_XEN_PVHVM) || xen_have_vector_callback)))
>
Oops. I think this should fix it; will retest and post the series again
with this folded into the offending commit.
Thanks.
diff --git a/drivers/xen/xenbus/xenbus_probe.c
b/drivers/xen/xenbus/xenbus_probe.c
index b1b5b6fe9b52..f3ef23ebcd94 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -699,16 +699,30 @@ void xenbus_probe(void)
blocking_notifier_call_chain(&xenstore_chain, 0, NULL);
}
+/*
+ * Returns true when XenStore init must be deferred in order to
+ * allow the PCI platform device to be initialised, before we
+ * can actually have event channel interrupts working.
+ */
+static bool xs_hvm_defer_init_for_callback(void)
+{
+#ifdef CONFIG_XEN_PVHVM
+ return xen_store_domain_type == XS_HVM &&
+ !xen_have_vector_callback;
+#else
+ return false;
+#endif
+}
+
static int __init xenbus_probe_initcall(void)
{
/*
* Probe XenBus here in the XS_PV case, and also XS_HVM unless we
- * need to wait for the platform PCI device to come up, which is
- * the (XEN_PVPVM && !xen_have_vector_callback) case.
+ * need to wait for the platform PCI device to come up.
*/
if (xen_store_domain_type == XS_PV ||
- (xen_store_domain_type == XS_HVM &&
- (!IS_ENABLED(CONFIG_XEN_PVHVM) || xen_have_vector_callback)))
+ (xen_store_domain_type == XS_HVM &&
+ !xs_hvm_defer_init_for_callback())
xenbus_probe();
return 0;
@@ -732,8 +746,7 @@ int xen_set_callback_via(uint64_t via)
* If xenbus_probe_initcall() deferred the xenbus_probe()
* due to the callback not functioning yet, we can do it now.
*/
- if (!xenstored_ready && xen_store_domain_type == XS_HVM &&
- IS_ENABLED(CONFIG_XEN_PVHVM) && !xen_have_vector_callback)
+ if (!xenstored_ready && xs_hvm_defer_init_for_callback())
xenbus_probe();
return ret;
Attachment:
smime.p7s
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |