commit 97ebf86510af8fdb1a802614ac6946cb31fc3299
Author: Sérgio M. Basto <sergio(a)serjux.com>
Date: Sun Nov 19 23:02:19 2017 +0000
Add more fixes for kernel 4.14
VirtualBox-kmod.spec | 5 ++-
fixes_for_4.14.patch | 108 +++++++++++++++++++++++++++++++++++++++++++++++++--
2 files changed, 108 insertions(+), 5 deletions(-)
---
diff --git a/VirtualBox-kmod.spec b/VirtualBox-kmod.spec
index c0fa2f0..0832488 100644
--- a/VirtualBox-kmod.spec
+++ b/VirtualBox-kmod.spec
@@ -29,7 +29,7 @@
Name: VirtualBox-kmod
Version: 5.1.30
#Release: 1%%{?prerel:.%%{prerel}}%%{?dist}
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Kernel module for VirtualBox
Group: System Environment/Kernel
@@ -109,6 +109,9 @@ DIRS=$(ls %{name}-%{version} |wc -l)
%changelog
+* Sun Nov 19 2017 Sérgio Basto <sergio(a)serjux.com> - 5.1.30-3
+- Add more fixes for kernel 4.14
+
* Sun Nov 19 2017 Sérgio Basto <sergio(a)serjux.com> - 5.1.30-2
- Readd fixes for kernel 4.14
diff --git a/fixes_for_4.14.patch b/fixes_for_4.14.patch
index 7adf260..887411f 100644
--- a/fixes_for_4.14.patch
+++ b/fixes_for_4.14.patch
@@ -1,4 +1,19 @@
-Index: VirtualBox-5.1.28/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c
+Patch VirtualBox source for changes in the kernel API for 4.14.x
+
+The following issues are addressed:
+ vfs_write() is replaced by kernel_write()
+ symbol SKB_GSO_UDP is removed
+ removal of gamma_set and gamma_get from struct drm_fb_helper_funcs
+ removal of set_busid from struct drm_driver
+ replacement of drm_pci_init() with pci_register_driver()
+ replacement of drm_pci_exit() with pci_unregister_driver()
+ removal of load_lut from struct drm_crtc_helper_func
+
+This patch is licensed under the MIT license.
+
+Signed-off-by: Larry Finger <Larry.Finger(a)lwfinger.net>
+
+Index: VirtualBox-5.1.30/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c
===================================================================
--- ./VirtualBox-kmod-5.1.30/vboxpci/linux/VBoxPci-linux.c.orig
+++ ./VirtualBox-kmod-5.1.30/vboxpci/linux/VBoxPci-linux.c
@@ -20,9 +35,9 @@ Index:
VirtualBox-5.1.28/src/VBox/HostDrivers/VBoxPci/linux/VBoxPci-linux.c
if (ret < 0)
printk(KERN_DEBUG "vboxPciFileWrite: error %d\n", ret);
-Index: VirtualBox-5.1.28/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
+Index: VirtualBox-5.1.30/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
===================================================================
---- ./VirtualBox-kmod-5.1.30/vboxnetflt/linux/VBoxNetFlt-linux.c
+--- ./VirtualBox-kmod-5.1.30/vboxnetflt/linux/VBoxNetFlt-linux.c.orig
+++ ./VirtualBox-kmod-5.1.30/vboxnetflt/linux/VBoxNetFlt-linux.c
@@ -124,6 +124,10 @@ typedef struct VBOXNETFLTNOTIFIER *PVBOX
# define bstats stats
@@ -47,4 +62,89 @@ Index:
VirtualBox-5.1.28/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.
case PDMNETWORKGSOTYPE_IPV6_TCP:
fGsoType = SKB_GSO_TCPV6;
break;
-
+Index: VirtualBox-5.1.30/src/VBox/Additions/linux/drm/vbox_fb.c
+===================================================================
+--- ./VirtualBox-kmod-5.1.30/vboxvideo/vbox_fb.c.orig
++++ ./VirtualBox-kmod-5.1.30/vboxvideo/vbox_fb.c
+@@ -381,6 +381,7 @@ out:
+ return ret;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0)
+ static void vbox_fb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green,
+ u16 blue, int regno)
+ {
+@@ -394,10 +395,13 @@ static void vbox_fb_gamma_get(struct drm
+ *green = regno;
+ *blue = regno;
+ }
++#endif
+
+ static struct drm_fb_helper_funcs vbox_fb_helper_funcs = {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0)
+ .gamma_set = vbox_fb_gamma_set,
+ .gamma_get = vbox_fb_gamma_get,
++#endif
+ .fb_probe = vboxfb_create,
+ };
+
+Index: VirtualBox-5.1.30/src/VBox/Additions/linux/drm/vbox_drv.c
+===================================================================
+--- ./VirtualBox-kmod-5.1.30/vboxvideo/vbox_drv.c.orig
++++ ./VirtualBox-kmod-5.1.30/vboxvideo/vbox_drv.c
+@@ -281,7 +281,7 @@ static struct drm_driver driver =
+ .lastclose = vbox_driver_lastclose,
+ .master_set = vbox_master_set,
+ .master_drop = vbox_master_drop,
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0) || defined(RHEL_73)
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0) || defined(RHEL_73)) &&
LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0)
+ .set_busid = drm_pci_set_busid,
+ #endif
+
+@@ -326,11 +326,19 @@ static int __init vbox_init(void)
+ if (vbox_modeset == 0)
+ return -EINVAL;
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0)
+ return drm_pci_init(&driver, &vbox_pci_driver);
++#else
++ return pci_register_driver(&vbox_pci_driver);
++#endif
+ }
+ static void __exit vbox_exit(void)
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0)
+ drm_pci_exit(&driver, &vbox_pci_driver);
++#else
++ pci_unregister_driver(&vbox_pci_driver);
++#endif
+ }
+
+ module_init(vbox_init);
+Index: VirtualBox-5.1.30/src/VBox/Additions/linux/drm/vbox_mode.c
+===================================================================
+--- ./VirtualBox-kmod-5.1.30/vboxvideo/vbox_mode.c.orig
++++ ./VirtualBox-kmod-5.1.30/vboxvideo/vbox_mode.c
+@@ -152,10 +152,12 @@ static int vbox_set_view(struct drm_crtc
+ return 0;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0)
+ static void vbox_crtc_load_lut(struct drm_crtc *crtc)
+ {
+
+ }
++#endif
+
+ static void vbox_crtc_dpms(struct drm_crtc *crtc, int mode)
+ {
+@@ -301,7 +303,9 @@ static const struct drm_crtc_helper_func
+ .mode_set = vbox_crtc_mode_set,
+ /* .mode_set_base = vbox_crtc_mode_set_base, */
+ .disable = vbox_crtc_disable,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0)
+ .load_lut = vbox_crtc_load_lut,
++#endif
+ .prepare = vbox_crtc_prepare,
+ .commit = vbox_crtc_commit,
+