summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author Matteo Bernardini2019-04-16 23:22:24 +0200
committer Matteo Bernardini2019-08-18 09:12:58 +0200
commitff3a794a9d3b127877e880238caeb41ccd1ad939 (patch)
tree571a781d044d6768bab3dffe96a9f16b710445a0
parent4232c4a6243ca011471eccaf5b40e404df2b192e (diff)
downloadslackbuilds-virtualbox-kernel.tar.gz
system/virtualbox-kernel: Patch for kernel >= 4.17.x.virtualbox-kernel
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
-rw-r--r--system/virtualbox-kernel/kernel_4.17.patch32
-rw-r--r--system/virtualbox-kernel/virtualbox-kernel.SlackBuild2
2 files changed, 34 insertions, 0 deletions
diff --git a/system/virtualbox-kernel/kernel_4.17.patch b/system/virtualbox-kernel/kernel_4.17.patch
new file mode 100644
index 0000000000..007bf737f2
--- /dev/null
+++ b/system/virtualbox-kernel/kernel_4.17.patch
@@ -0,0 +1,32 @@
+In kernel 4.17, pci_get_bus_and_slot() has been removed in favor of
+pci_get_domain_bus_and_slot(). It appears that VirtualBox only uses
+domain number 0, thus pci_get_domain_bus_and_slot(0, bus, devfn)
+is a suitable replacement for pci_get_bus_and_slot(bus, devfn).
+
+The resulting code compiles; however, I do not use PCI passthru, which
+I think means that I have not actually tested the code.
+
+This patch released under a combined MIT/GPLv2 license.
+
+Shamelessly copied by the patch from Larry Finger.
+
+Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
+
+diff -Naur virtualbox-kernel-5.2.8.orig/vboxpci/linux/VBoxPci-linux.c virtualbox-kernel-5.2.8/vboxpci/linux/VBoxPci-linux.c
+--- virtualbox-kernel-5.2.8.orig/vboxpci/linux/VBoxPci-linux.c 2018-03-14 20:33:31.000000000 +0100
++++ virtualbox-kernel-5.2.8/vboxpci/linux/VBoxPci-linux.c 2019-04-16 23:18:10.607698000 +0200
+@@ -89,7 +89,14 @@
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20)
+ # define PCI_DEV_GET(v,d,p) pci_get_device(v,d,p)
+ # define PCI_DEV_PUT(x) pci_dev_put(x)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 17, 0)
++/* assume the domain number to be zero - exactly the same assumption of
++* pci_get_bus_and_slot()
++*/
++# define PCI_DEV_GET_SLOT(bus, devfn) pci_get_domain_bus_and_slot(0, bus, devfn)
++#else
+ # define PCI_DEV_GET_SLOT(bus, devfn) pci_get_bus_and_slot(bus, devfn)
++#endif
+ #else
+ # define PCI_DEV_GET(v,d,p) pci_find_device(v,d,p)
+ # define PCI_DEV_PUT(x) do { } while (0)
diff --git a/system/virtualbox-kernel/virtualbox-kernel.SlackBuild b/system/virtualbox-kernel/virtualbox-kernel.SlackBuild
index 21b57d9a53..338da42bfc 100644
--- a/system/virtualbox-kernel/virtualbox-kernel.SlackBuild
+++ b/system/virtualbox-kernel/virtualbox-kernel.SlackBuild
@@ -84,6 +84,8 @@ if [ "$KERNEL_MINOR" = 4 -a "$KERNEL_PATCH" -ge 168 ]; then
sed -i "s|KERNEL_VERSION(4, 9, 0)|KERNEL_VERSION(4, 4, 168)|" vboxdrv/r0drv/linux/memobj-r0drv-linux.c
fi
+patch -p1 < $CWD/kernel_4.17.patch
+
make KERN_DIR=${KERNELPATH}
mkdir -p $PKG/lib/modules/$KERNEL/misc