From d25607c79db9fca7f1c8696b792e376b42fb2ecb Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 5 May 2018 11:22:23 +0300 Subject: [PATCH] Fix pci_get_bus_and_slot removed in kernel 4.17 --- .../virtualization/virtualbox/default.nix | 4 +--- .../virtualization/virtualbox/kernpcidev.patch | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 pkgs/applications/virtualization/virtualbox/kernpcidev.patch diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix index ca0520f32a8f2f..d09a30f98a74a2 100644 --- a/pkgs/applications/virtualization/virtualbox/default.nix +++ b/pkgs/applications/virtualization/virtualbox/default.nix @@ -94,9 +94,7 @@ in stdenv.mkDerivation { patches = optional enableHardening ./hardened.patch - ++ [ ./qtx11extras.patch ]; - - + ++ [ ./qtx11extras.patch ./kernpcidev.patch ]; postPatch = '' sed -i -e 's|/sbin/ifconfig|${nettools}/bin/ifconfig|' \ diff --git a/pkgs/applications/virtualization/virtualbox/kernpcidev.patch b/pkgs/applications/virtualization/virtualbox/kernpcidev.patch new file mode 100644 index 00000000000000..5192227d7d012c --- /dev/null +++ b/pkgs/applications/virtualization/virtualbox/kernpcidev.patch @@ -0,0 +1,18 @@ +diff --git a/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c b/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c +index b8019f7..b7d2e39 100644 +--- a/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c ++++ b/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c +@@ -73,8 +73,11 @@ MODULE_LICENSE("GPL"); + MODULE_VERSION(VBOX_VERSION_STRING); + #endif + +- +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 20) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 17, 0) ++# define PCI_DEV_GET(v,d,p) pci_get_device(v,d,p) ++# define PCI_DEV_PUT(x) pci_dev_put(x) ++# define PCI_DEV_GET_SLOT(bus, devfn) pci_get_domain_bus_and_slot(0, bus, devfn) ++#elif 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) + # define PCI_DEV_GET_SLOT(bus, devfn) pci_get_bus_and_slot(bus, devfn)