From 856291f071c84c48e98fee5cb070ac2ea038818c Mon Sep 17 00:00:00 2001 From: Richard Neill Date: Tue, 2 Mar 2021 09:55:44 +0000 Subject: [PATCH] arm-autonomy/linux-arm-autonomy: Drop XenStore initialisation patch With the linux-yocto version upgrade, the xenstore initialisation patch is no longer necessary. Signed-off-by: Richard Neill Change-Id: I38d81172d5da97a87d41a76f26fe81d5c3b3f83e Signed-off-by: Jon Mason --- ...XenStore-initialisation-for-XS_LOCAL.patch | 98 ------------------- .../linux/linux-arm-autonomy.inc | 6 -- 2 files changed, 104 deletions(-) delete mode 100644 meta-arm-autonomy/recipes-kernel/linux/files/0001-xen-Fix-XenStore-initialisation-for-XS_LOCAL.patch diff --git a/meta-arm-autonomy/recipes-kernel/linux/files/0001-xen-Fix-XenStore-initialisation-for-XS_LOCAL.patch b/meta-arm-autonomy/recipes-kernel/linux/files/0001-xen-Fix-XenStore-initialisation-for-XS_LOCAL.patch deleted file mode 100644 index 5bf9b745..00000000 --- a/meta-arm-autonomy/recipes-kernel/linux/files/0001-xen-Fix-XenStore-initialisation-for-XS_LOCAL.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 5f3d54c00f1f2682cee9c590c22655b0330ffd18 Mon Sep 17 00:00:00 2001 -Message-Id: <5f3d54c00f1f2682cee9c590c22655b0330ffd18.1612780458.git.diego.sueiro@arm.com> -From: David Woodhouse -Date: Tue, 26 Jan 2021 17:01:49 +0000 -Subject: [PATCH] xen: Fix XenStore initialisation for XS_LOCAL - -commit 5f46400f7a6a4fad635d5a79e2aa5a04a30ffea1 upstream. - -In commit 3499ba8198ca ("xen: Fix event channel callback via INTX/GSI") -I reworked the triggering of xenbus_probe(). - -I tried to simplify things by taking out the workqueue based startup -triggered from wake_waiting(); the somewhat poorly named xenbus IRQ -handler. - -I missed the fact that in the XS_LOCAL case (Dom0 starting its own -xenstored or xenstore-stubdom, which happens after the kernel is booted -completely), that IRQ-based trigger is still actually needed. - -So... put it back, except more cleanly. By just spawning a xenbus_probe -thread which waits on xb_waitq and runs the probe the first time it -gets woken, just as the workqueue-based hack did. - -This is actually a nicer approach for *all* the back ends with different -interrupt methods, and we can switch them all over to that without the -complex conditions for when to trigger it. But not in -rc6. This is -the minimal fix for the regression, although it's a step in the right -direction instead of doing a partial revert and actually putting the -workqueue back. It's also simpler than the workqueue. - -Fixes: 3499ba8198ca ("xen: Fix event channel callback via INTX/GSI") -Reported-by: Juergen Gross -Signed-off-by: David Woodhouse -Reviewed-by: Juergen Gross -Link: https://lore.kernel.org/r/4c9af052a6e0f6485d1de43f2c38b1461996db99.camel@infradead.org -Signed-off-by: Juergen Gross -Cc: Salvatore Bonaccorso -Cc: Jason Andryuk -Signed-off-by: Greg Kroah-Hartman - -Upstream-Status: Backport -Signed-off-by: Diego Sueiro ---- - drivers/xen/xenbus/xenbus_probe.c | 31 +++++++++++++++++++++++++++++++ - 1 file changed, 31 insertions(+) - -diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c -index c8f0282bb649..18ffd0551b54 100644 ---- a/drivers/xen/xenbus/xenbus_probe.c -+++ b/drivers/xen/xenbus/xenbus_probe.c -@@ -714,6 +714,23 @@ static bool xs_hvm_defer_init_for_callback(void) - #endif - } - -+static int xenbus_probe_thread(void *unused) -+{ -+ DEFINE_WAIT(w); -+ -+ /* -+ * We actually just want to wait for *any* trigger of xb_waitq, -+ * and run xenbus_probe() the moment it occurs. -+ */ -+ prepare_to_wait(&xb_waitq, &w, TASK_INTERRUPTIBLE); -+ schedule(); -+ finish_wait(&xb_waitq, &w); -+ -+ DPRINTK("probing"); -+ xenbus_probe(); -+ return 0; -+} -+ - static int __init xenbus_probe_initcall(void) - { - /* -@@ -725,6 +742,20 @@ static int __init xenbus_probe_initcall(void) - !xs_hvm_defer_init_for_callback())) - xenbus_probe(); - -+ /* -+ * For XS_LOCAL, spawn a thread which will wait for xenstored -+ * or a xenstore-stubdom to be started, then probe. It will be -+ * triggered when communication starts happening, by waiting -+ * on xb_waitq. -+ */ -+ if (xen_store_domain_type == XS_LOCAL) { -+ struct task_struct *probe_task; -+ -+ probe_task = kthread_run(xenbus_probe_thread, NULL, -+ "xenbus_probe"); -+ if (IS_ERR(probe_task)) -+ return PTR_ERR(probe_task); -+ } - return 0; - } - device_initcall(xenbus_probe_initcall); --- -2.17.1 - diff --git a/meta-arm-autonomy/recipes-kernel/linux/linux-arm-autonomy.inc b/meta-arm-autonomy/recipes-kernel/linux/linux-arm-autonomy.inc index 644f5639..978daf3b 100644 --- a/meta-arm-autonomy/recipes-kernel/linux/linux-arm-autonomy.inc +++ b/meta-arm-autonomy/recipes-kernel/linux/linux-arm-autonomy.inc @@ -44,12 +44,6 @@ python() { if oe.utils.any_distro_features(d, "arm-autonomy-host arm-autonomy-guest"): d.appendVar('SRC_URI', ' file://files/0001-xen-arm-do-not-setup-the-runstate-info-page-if-kpti-.patch' ) - if kernelVersion and LooseVersion(kernelVersion) < '5.10.13' \ - and pn != 'linux-libc-headers' \ - and not pn.startswith('linux-linaro-arm') \ - and oe.utils.any_distro_features(d, "arm-autonomy-host"): - d.appendVar('SRC_URI', ' file://files/0001-xen-Fix-XenStore-initialisation-for-XS_LOCAL.patch' ) - if kernelVersion and LooseVersion(kernelVersion) < '5.10.17' \ and pn != 'linux-libc-headers' \ and oe.utils.any_distro_features(d, "arm-autonomy-guest"):