diff options
author | KenjiTakahashi | 2020-10-14 13:19:04 +0200 |
---|---|---|
committer | KenjiTakahashi | 2020-10-14 13:19:04 +0200 |
commit | 1d7fc35fbbc91c0f031388f5c458a575d7006ee8 (patch) | |
tree | 3428a1358e0177bc2126fdef9023fddc3e51044a | |
parent | 12e944f7741f548953de061b89536c49f7e40280 (diff) | |
download | aur-1d7fc35fbbc91c0f031388f5c458a575d7006ee8.tar.gz |
6.1.14-2: Kernel 5.9 patch
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | 021-kernel-5.9.patch | 189 | ||||
-rw-r--r-- | PKGBUILD | 4 |
3 files changed, 195 insertions, 2 deletions
@@ -1,7 +1,7 @@ pkgbase = virtualbox-headless pkgdesc = Powerful x86 virtualization for enterprise as well as home use. Headless build (no GUI, no Java). pkgver = 6.1.14 - pkgrel = 1 + pkgrel = 2 url = https://virtualbox.org install = virtualbox.install arch = i686 @@ -50,6 +50,7 @@ pkgbase = virtualbox-headless source = 017-fix-narrowing-conversion.patch source = 018-xclient.patch source = 020-gsoap.patch + source = 021-kernel-5.9.patch sha256sums = 16f3cb83ab3c4dacf2a9d3cc638cbd18db23767828bba6b8ba1c1b57abeb6aef sha256sums = 2101ebb58233bbfadf3aa74381f22f7e7e508559d2b46387114bc2d8e308554c sha256sums = 9c5238183019f9ebc7d92a8582cad232f471eab9d3278786225abc1a1c7bf66e @@ -66,6 +67,7 @@ pkgbase = virtualbox-headless sha256sums = 5aac692909a0a0ec56b08bdece9e42cf7463abdca9da2f990d441ff463be6a99 sha256sums = cac5a573e9ed5aafb2f469c2e6fffb8cd4f389bbadba5a968c9f65be7a72fee3 sha256sums = c6892a3561a72a9b308cb33fa6647cc53e54a3bd40cb41780cad7f8e9d7df9f6 + sha256sums = 05bfc8306bbd856087c393dcb47d16de4213a4cc69124857f705f3784d88581a pkgname = virtualbox-headless diff --git a/021-kernel-5.9.patch b/021-kernel-5.9.patch new file mode 100644 index 000000000000..351f90db796a --- /dev/null +++ b/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 <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) @@ -5,7 +5,7 @@ pkgname=virtualbox-headless pkgver=6.1.14 _tarver=${pkgver}a -pkgrel=1 +pkgrel=2 pkgdesc='Powerful x86 virtualization for enterprise as well as home use. Headless build (no GUI, no Java).' arch=('i686' 'x86_64') url='https://virtualbox.org' @@ -39,6 +39,7 @@ source=("https://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${_tarv '017-fix-narrowing-conversion.patch' '018-xclient.patch' '020-gsoap.patch' + '021-kernel-5.9.patch' ) sha256sums=( '16f3cb83ab3c4dacf2a9d3cc638cbd18db23767828bba6b8ba1c1b57abeb6aef' @@ -57,6 +58,7 @@ sha256sums=( '5aac692909a0a0ec56b08bdece9e42cf7463abdca9da2f990d441ff463be6a99' 'cac5a573e9ed5aafb2f469c2e6fffb8cd4f389bbadba5a968c9f65be7a72fee3' 'c6892a3561a72a9b308cb33fa6647cc53e54a3bd40cb41780cad7f8e9d7df9f6' + '05bfc8306bbd856087c393dcb47d16de4213a4cc69124857f705f3784d88581a' ) prepare() { |