uxen-guest-tools: fix build against kernels 5.15+

This is a compile only fix to update the uxen kernel modules to
work against newer kernels.

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
This commit is contained in:
Martin Jansa 2021-12-01 17:41:26 +01:00 committed by Bruce Ashfield
parent e4aeeb6241
commit da4100748d
3 changed files with 81 additions and 1 deletions

View File

@ -0,0 +1,46 @@
From f8a33a209498b32b0fc06d80baa071f0902b9a85 Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Tue, 30 Nov 2021 06:45:34 -0800
Subject: [PATCH] vm-support: fix build for kernel's > 5.15
* remove callback was changed to return void instead of int in:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fc7a6209d5710618eb4f72a77cd81b8d694ecf89
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
uxenplatform/platform.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/uxenplatform/platform.c b/uxenplatform/platform.c
index 99fc76a..5225a00 100644
--- a/uxenplatform/platform.c
+++ b/uxenplatform/platform.c
@@ -4,6 +4,7 @@
#include <linux/random.h>
#include <linux/kthread.h>
#include <linux/delay.h>
+#include <linux/version.h>
#include <uxen-hypercall.h>
#include <uxen-platform.h>
@@ -32,14 +33,20 @@ static int bus_probe(struct device *_dev)
return drv && drv->probe ? drv->probe(dev) : -ENODEV;
}
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0))
static int bus_remove(struct device *_dev)
+#else
+static void bus_remove(struct device *_dev)
+#endif
{
struct uxen_device *dev = dev_to_uxen(_dev);
struct uxen_driver *drv = drv_to_uxen(_dev->driver);
if (dev && drv && drv->remove)
drv->remove(dev);
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0))
return 0;
+#endif
}
static int bus_suspend(struct device *_dev, pm_message_t state)

View File

@ -0,0 +1,32 @@
From 59986e91d807591f05dfbd57b459ba71670874f9 Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Tue, 30 Nov 2021 15:04:31 +0000
Subject: [PATCH] vm-support: fix build for kernel's > 5.14
* remove set_driver_byte call
* not sure if it's still necessary here, but set_driver_byte as well as DRIVER_SENSE was killed in 5.14 with:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=464a00c9e0ad45e3f42ff6ea705491a356df818e
in some cases it was replaced with set_status_byte(sc, SAM_STAT_CHECK_CONDITION), but I didn't
read the implementation carefully enough to decide if this is still needed, I was only interested
in fixing the build failure (and I don't use this at all to test it in runtime)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
uxenstor/stor.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/uxenstor/stor.c b/uxenstor/stor.c
index e07b08e..6bf2184 100644
--- a/uxenstor/stor.c
+++ b/uxenstor/stor.c
@@ -109,7 +109,9 @@ static void uxenstor_softirq(unsigned long opaque)
sc->sense_buffer,
sizeof(hdr) + hdr.sense_size,
0, sizeof(hdr));
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,14,0))
set_driver_byte(sc, DRIVER_SENSE);
+#endif
}
set_host_byte(sc, DID_ERROR);

View File

@ -10,7 +10,9 @@ SRC_URI = " \
https://www.bromium.com/wp-content/uploads/2019/11/Bromium-4.1.8-Open-Source-Software.pdf;name=license \
file://fix-Makefile-for-OE-kernel-build.patch \
file://0001-vm-support-fix-build-for-kernel-s-5.4.patch \
"
file://0002-vm-support-fix-build-for-kernel-s-5.15.patch \
file://0003-vm-support-fix-build-for-kernel-s-5.14.patch \
"
SRC_URI[uxen.sha384sum] = "be2233bc6506a23350d76c03ac28ea7ea381e1dc6ed5ce996e8ac71e6a3316fcaa2ed070c622618bd226f43a4d6db5d4"
SRC_URI[license.sha384sum] = "92e48c614df3094cb52321d4c4e01f6df5526d46aee5c6fa36c43ee23d4c33f03baa1fc5f6f29efafff636b6d13bc92c"