From 2495d3b02fac8bfc5734bb8f2973f230a6c36542 Mon Sep 17 00:00:00 2001 From: Rmys Date: Thu, 17 Dec 2020 18:47:48 +0300 Subject: [PATCH] virtualbox-6.1.16 --- ...3GuestCtrlDetectPeekGetCancelSupport.patch | 14 ++ .../virtualbox/files/021-kernel-5.9.patch | 189 ++++++++++++++++++ hardware/virtualization/virtualbox/pspec.xml | 14 +- 3 files changed, 215 insertions(+), 2 deletions(-) create mode 100644 hardware/virtualization/virtualbox/files/012-vbglR3GuestCtrlDetectPeekGetCancelSupport.patch create mode 100644 hardware/virtualization/virtualbox/files/021-kernel-5.9.patch diff --git a/hardware/virtualization/virtualbox/files/012-vbglR3GuestCtrlDetectPeekGetCancelSupport.patch b/hardware/virtualization/virtualbox/files/012-vbglR3GuestCtrlDetectPeekGetCancelSupport.patch new file mode 100644 index 0000000000..d2ef03c8f0 --- /dev/null +++ b/hardware/virtualization/virtualbox/files/012-vbglR3GuestCtrlDetectPeekGetCancelSupport.patch @@ -0,0 +1,14 @@ +diff --git a/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibGuestCtrl.cpp b/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibGuestCtrl.cpp +index 6ad7df3e..2f12c277 100644 +--- a/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibGuestCtrl.cpp ++++ b/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibGuestCtrl.cpp +@@ -162,6 +162,9 @@ static int vbglR3GuestCtrlMsgWaitFor(uint32_t idClient, uint32_t *pidMsg, uint32 + */ + DECL_NO_INLINE(static, bool) vbglR3GuestCtrlDetectPeekGetCancelSupport(uint32_t idClient) + { ++ ++ return false; ++ + /* + * Seems we get VINF_SUCCESS back from the host if we try unsupported + * guest control functions, so we need to supply some random message diff --git a/hardware/virtualization/virtualbox/files/021-kernel-5.9.patch b/hardware/virtualization/virtualbox/files/021-kernel-5.9.patch new file mode 100644 index 0000000000..351f90db79 --- /dev/null +++ b/hardware/virtualization/virtualbox/files/021-kernel-5.9.patch @@ -0,0 +1,189 @@ +This patch file contains the changes needed to compile the VirtualBox +modules for kernel 5.9.0+. + +The changes are as follows: +1. The kernel headers no longer define HAVE_UNLOCKED_IOCTL; however, + this symbol is needed for compilation of VB. +2. The calling sequence for get_user_pages_remote() is changed. +3. Routine sched_setscheduler() is replaced by sched_set_fifo_low(). +4. The type of vbox_master_set() is changed from int to void. +5. Routine drm_gem_object_put_unlocked() is replaced by drm_gem_object_put(). +6. Member offset is removed from struct ttm_buffer_object. + +Index: VirtualBox-6.1.14/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h +=================================================================== +--- VirtualBox-6.1.14.orig/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h ++++ VirtualBox-6.1.14/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h +@@ -137,7 +137,10 @@ + #include + #include + #include +-#ifndef HAVE_UNLOCKED_IOCTL /* linux/fs.h defines this */ ++#if RTLNX_VER_MIN(5, 9, 0) ++#define HAVE_UNLOCKED_IOCTL 1 /* defined in linux/fs.h for kernels before 5.9 */ ++#endif ++#ifndef HAVE_UNLOCKED_IOCTL + # include + #endif + /* For the shared folders module */ +Index: VirtualBox-6.1.14/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c +=================================================================== +--- VirtualBox-6.1.14.orig/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c ++++ VirtualBox-6.1.14/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c +@@ -1181,7 +1181,9 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser + */ + else + rc = get_user_pages_remote( ++#if RTLNX_VER_MAX(5, 9, 0) + pTask, /* Task for fault accounting. */ ++#endif + pTask->mm, /* Whose pages. */ + R3Ptr, /* Where from. */ + cPages, /* How many pages. */ +Index: VirtualBox-6.1.14/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c +=================================================================== +--- VirtualBox-6.1.14.orig/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c ++++ VirtualBox-6.1.14/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c +@@ -92,8 +92,12 @@ DECLHIDDEN(int) rtThreadNativeSetPriorit + return VERR_INVALID_PARAMETER; + } + ++#if RTLNX_VER_MAX(5, 9, 0) + sched_setscheduler(current, iSchedClass, &Param); + #else ++ sched_set_fifo_low(current); ++#endif ++#else + RT_NOREF_PV(enmType); + #endif + RT_NOREF_PV(pThread); +Index: VirtualBox-6.1.14/src/VBox/Additions/linux/drm/vbox_drv.c +=================================================================== +--- VirtualBox-6.1.14.orig/src/VBox/Additions/linux/drm/vbox_drv.c ++++ VirtualBox-6.1.14/src/VBox/Additions/linux/drm/vbox_drv.c +@@ -262,8 +262,13 @@ static const struct file_operations vbox + .read = drm_read, + }; + ++#if RTLNX_VER_MAX(5, 9, 0) + static int vbox_master_set(struct drm_device *dev, + struct drm_file *file_priv, bool from_open) ++#else ++static void vbox_master_set(struct drm_device *dev, ++ struct drm_file *file_priv, bool from_open) ++#endif + { + struct vbox_private *vbox = dev->dev_private; + +Index: VirtualBox-6.1.14/src/VBox/Additions/linux/drm/vbox_fb.c +=================================================================== +--- VirtualBox-6.1.14.orig/src/VBox/Additions/linux/drm/vbox_fb.c ++++ VirtualBox-6.1.14/src/VBox/Additions/linux/drm/vbox_fb.c +@@ -405,7 +405,11 @@ void vbox_fbdev_fini(struct drm_device * + vbox_bo_unpin(bo); + vbox_bo_unreserve(bo); + } ++#if RTLNX_VER_MIN(5, 9, 0) ++ drm_gem_object_put(afb->obj); ++#else + drm_gem_object_put_unlocked(afb->obj); ++#endif + afb->obj = NULL; + } + drm_fb_helper_fini(&fbdev->helper); +Index: VirtualBox-6.1.14/src/VBox/Additions/linux/drm/vbox_main.c +=================================================================== +--- VirtualBox-6.1.14.orig/src/VBox/Additions/linux/drm/vbox_main.c ++++ VirtualBox-6.1.14/src/VBox/Additions/linux/drm/vbox_main.c +@@ -40,14 +40,19 @@ + #include + + #include "hgsmi_channels.h" ++#include ++ + + static void vbox_user_framebuffer_destroy(struct drm_framebuffer *fb) + { + struct vbox_framebuffer *vbox_fb = to_vbox_framebuffer(fb); + + if (vbox_fb->obj) ++#if RTLNX_VER_MAX(5, 9, 0) + drm_gem_object_put_unlocked(vbox_fb->obj); +- ++#else ++ drm_gem_object_put(vbox_fb->obj); ++#endif + drm_framebuffer_cleanup(fb); + kfree(fb); + } +@@ -221,7 +226,11 @@ static struct drm_framebuffer *vbox_user + err_free_vbox_fb: + kfree(vbox_fb); + err_unref_obj: ++#if RTLNX_VER_MAX(5, 9, 0) + drm_gem_object_put_unlocked(obj); ++#else ++ drm_gem_object_put(obj); ++#endif + return ERR_PTR(ret); + } + +@@ -588,7 +597,11 @@ int vbox_dumb_create(struct drm_file *fi + return ret; + + ret = drm_gem_handle_create(file, gobj, &handle); ++#if RTLNX_VER_MAX(5, 9, 0) + drm_gem_object_put_unlocked(gobj); ++#else ++ drm_gem_object_put(gobj); ++#endif + if (ret) + return ret; + +Index: VirtualBox-6.1.14/src/VBox/Additions/linux/drm/vbox_drv.h +=================================================================== +--- VirtualBox-6.1.14.orig/src/VBox/Additions/linux/drm/vbox_drv.h ++++ VirtualBox-6.1.14/src/VBox/Additions/linux/drm/vbox_drv.h +@@ -417,6 +417,9 @@ struct vbox_bo { + #else + struct ttm_place placements[3]; + #endif ++#if RTLNX_VER_MIN(5, 9, 0) ++ uint64_t offset; ++#endif + int pin_count; + }; + +Index: VirtualBox-6.1.14/src/VBox/Additions/linux/drm/vbox_mode.c +=================================================================== +--- VirtualBox-6.1.14.orig/src/VBox/Additions/linux/drm/vbox_mode.c ++++ VirtualBox-6.1.14/src/VBox/Additions/linux/drm/vbox_mode.c +@@ -885,8 +885,11 @@ out_unmap_bo: + out_unreserve_bo: + vbox_bo_unreserve(bo); + out_unref_obj: ++#if RTLNX_VER_MAX(5, 9, 0) + drm_gem_object_put_unlocked(obj); +- ++#else ++ drm_gem_object_put(obj); ++#endif + return ret; + } + +Index: VirtualBox-6.1.14/src/VBox/Additions/linux/drm/vbox_ttm.c +=================================================================== +--- VirtualBox-6.1.14.orig/src/VBox/Additions/linux/drm/vbox_ttm.c ++++ VirtualBox-6.1.14/src/VBox/Additions/linux/drm/vbox_ttm.c +@@ -445,7 +445,11 @@ err_free_vboxbo: + + static inline u64 vbox_bo_gpu_offset(struct vbox_bo *bo) + { ++#if RTLNX_VER_MAX(5, 9, 0) + return bo->bo.offset; ++#else ++ return bo->offset; ++#endif + } + + int vbox_bo_pin(struct vbox_bo *bo, u32 pl_flag, u64 *gpu_addr) diff --git a/hardware/virtualization/virtualbox/pspec.xml b/hardware/virtualization/virtualbox/pspec.xml index 2b0b828f4c..4b99e59a2e 100644 --- a/hardware/virtualization/virtualbox/pspec.xml +++ b/hardware/virtualization/virtualbox/pspec.xml @@ -12,7 +12,7 @@ app:gui A powerful virtualization program VirtualBox is a family of powerful x86 virtualization products for enterprise as well as home use. This is the Open Source Edition which lacks USB support and some other things. - http://download.virtualbox.org/virtualbox/6.1.14/VirtualBox-6.1.14a.tar.bz2 + http://download.virtualbox.org/virtualbox/6.1.16/VirtualBox-6.1.16.tar.bz2 dkms.conf dkms-guest.conf @@ -72,7 +72,10 @@ 0001-VBoxServiceAutoMount-Change-Linux-mount-code-to-use-.patch 017-fix-narrowing-conversion.patch 018-xclient.patch - 020-gsoap.patch + + 012-vbglR3GuestCtrlDetectPeekGetCancelSupport.patch + + @@ -199,6 +202,13 @@ + + 2020-11-10 + 6.1.16 + Version bump kernel597. + Mustafa Cinasal + muscnsl@gmail.com + 2020-09-05 6.1.14