[arch-commits] Commit in virtualbox/trunk (021-kernel-5.9.patch PKGBUILD)

Jan Steffens heftig at archlinux.org
Mon Oct 12 21:23:12 UTC 2020


    Date: Monday, October 12, 2020 @ 21:23:12
  Author: heftig
Revision: 723745

6.1.14-2: add patch for linux 5.9

Added:
  virtualbox/trunk/021-kernel-5.9.patch
Modified:
  virtualbox/trunk/PKGBUILD

----------------------+
 021-kernel-5.9.patch |  189 +++++++++++++++++++++++++++++++++++++++++++++++++
 PKGBUILD             |    8 +-
 2 files changed, 194 insertions(+), 3 deletions(-)

Added: 021-kernel-5.9.patch
===================================================================
--- 021-kernel-5.9.patch	                        (rev 0)
+++ 021-kernel-5.9.patch	2020-10-12 21:23:12 UTC (rev 723745)
@@ -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 <linux/interrupt.h>
+ #include <linux/completion.h>
+ #include <linux/compiler.h>
+-#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 <linux/smp_lock.h>
+ #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 <VBoxVideoVBE.h>
+ 
+ #include "hgsmi_channels.h"
++#include <linux/version.h>
++
+ 
+ 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)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2020-10-12 21:22:16 UTC (rev 723744)
+++ PKGBUILD	2020-10-12 21:23:12 UTC (rev 723745)
@@ -11,7 +11,7 @@
          'virtualbox-ext-vnc')
 pkgver=6.1.14
 _tarver=${pkgver}a
-pkgrel=1
+pkgrel=2
 _vboxsf_commit='5aba938bcabd978e4615186ad7d8617d633e6f30'
 arch=('x86_64')
 url='https://virtualbox.org/'
@@ -79,7 +79,8 @@
         '016-VBoxServiceAutoMount-Change-Linux-mount-code-to-use-.patch'
         '017-fix-narrowing-conversion.patch'
         '018-xclient.patch'
-        '020-gsoap.patch')
+        '020-gsoap.patch'
+        '021-kernel-5.9.patch')
 sha256sums=('16f3cb83ab3c4dacf2a9d3cc638cbd18db23767828bba6b8ba1c1b57abeb6aef'
             'SKIP'
             '76d98ea062fcad9e5e3fa981d046a6eb12a3e718a296544a68b66f4b65cb56db'
@@ -104,7 +105,8 @@
             '100c9e14e9cfb12ae65364e830153d2481cf272ceeb39d11c6b203bc6e35bf0c'
             '5aac692909a0a0ec56b08bdece9e42cf7463abdca9da2f990d441ff463be6a99'
             'cac5a573e9ed5aafb2f469c2e6fffb8cd4f389bbadba5a968c9f65be7a72fee3'
-            'c6892a3561a72a9b308cb33fa6647cc53e54a3bd40cb41780cad7f8e9d7df9f6')
+            'c6892a3561a72a9b308cb33fa6647cc53e54a3bd40cb41780cad7f8e9d7df9f6'
+            '05bfc8306bbd856087c393dcb47d16de4213a4cc69124857f705f3784d88581a')
 
 prepare() {
     cd "VirtualBox-$pkgver"



More information about the arch-commits mailing list