summaryrefslogtreecommitdiffstats
path: root/system/virtualbox-kernel/kernel_4.17.patch
blob: 007bf737f2f5b692d604bc2a8520d4883aa0c83f (plain)
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)