diff --git a/vbox_fix_4.10_api_changes.patch b/vbox_fix_4.10_api_changes.patch index f1c02af..5993884 100644 --- a/vbox_fix_4.10_api_changes.patch +++ b/vbox_fix_4.10_api_changes.patch @@ -1,67 +1,37 @@ -Index: VirtualBox-5.1.12/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c + +Index: VirtualBox-5.1.14/src/VBox/Additions/linux/sharedfolders/lnkops.c =================================================================== ---- VirtualBox-5.1.12.orig/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c -+++ VirtualBox-5.1.12/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c -@@ -1078,7 +1078,12 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser - fWrite, /* force write access. */ - # endif - &pMemLnx->apPages[0], /* Page array. */ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0) -+ papVMAs, /* vmas */ -+ NULL); -+#else - papVMAs); /* vmas */ -+#endif - #else /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0) */ - rc = get_user_pages(pTask, /* Task for fault accounting. */ - pTask->mm, /* Whose pages. */ -@@ -1093,7 +1098,12 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser - fWrite, /* force write access. */ - # endif - &pMemLnx->apPages[0], /* Page array. */ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0) -+ papVMAs, /* vmas */ -+ NULL); -+#else - papVMAs); /* vmas */ -+#endif - #endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0) */ - if (rc == cPages) - { -Index: VirtualBox-5.1.12/src/VBox/Runtime/r0drv/linux/mpnotification-r0drv-linux.c -=================================================================== ---- VirtualBox-5.1.12.orig/src/VBox/Runtime/r0drv/linux/mpnotification-r0drv-linux.c -+++ VirtualBox-5.1.12/src/VBox/Runtime/r0drv/linux/mpnotification-r0drv-linux.c -@@ -39,8 +39,32 @@ +--- VirtualBox-5.1.14.orig/src/VBox/Additions/linux/sharedfolders/lnkops.c ++++ VirtualBox-5.1.14/src/VBox/Additions/linux/sharedfolders/lnkops.c +@@ -88,6 +88,31 @@ static const char *sf_get_link(struct de + } + # endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 5, 0) */ - - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 71) && defined(CONFIG_SMP) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0) -+/* This hack allows VB to build under kernel 4.10 and later, but it -+ * should be replaced with a version that uses the hotplug state machine ++# if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0) ++/* ++ * A helper for ->readlink(). This should be used *ONLY* for symlinks that ++ * have ->get_link() not calling nd_jump_link(). Using (or not using) it ++ * for any given inode is up to filesystem. + */ - -+static DEFINE_MUTEX(cpu_add_remove_lock); -+static RAW_NOTIFIER_HEAD(cpu_chain); - -+/* Need to know about CPUs going up/down? */ -+static int register_cpu_notifier(struct notifier_block *nb) ++static int generic_readlink(struct dentry *dentry, char __user *buffer, ++ int buflen) +{ -+ int ret; -+ mutex_lock(&cpu_add_remove_lock); -+ ret = raw_notifier_chain_register(&cpu_chain, nb); -+ mutex_unlock(&cpu_add_remove_lock); -+ return ret; -+} ++ DEFINE_DELAYED_CALL(done); ++ struct inode *inode = d_inode(dentry); ++ const char *link = inode->i_link; ++ int res; + -+/* Need to know about CPUs going up/down? */ -+static void unregister_cpu_notifier(struct notifier_block *nb) -+{ -+ mutex_lock(&cpu_add_remove_lock); -+ raw_notifier_chain_unregister(&cpu_chain, nb); -+ mutex_unlock(&cpu_add_remove_lock); ++ if (!link) { ++ link = inode->i_op->get_link(dentry, inode, &done); ++ if (IS_ERR(link)) ++ return PTR_ERR(link); ++ } ++ res = readlink_copy(buffer, buflen, link); ++ do_delayed_call(&done); ++ return res; +} +#endif - /********************************************************************************************************************************* - * Internal Functions * - *********************************************************************************************************************************/ ++ + struct inode_operations sf_lnk_iops = + { + .readlink = generic_readlink, diff --git a/vbox_fix_4.9_api_changes.patch b/vbox_fix_4.9_api_changes.patch deleted file mode 100644 index 041f5ac..0000000 --- a/vbox_fix_4.9_api_changes.patch +++ /dev/null @@ -1,70 +0,0 @@ -Index: VirtualBox-5.1.10/src/VBox/Additions/linux/sharedfolders/dirops.c -=================================================================== ---- VirtualBox-5.1.10.orig/src/VBox/Additions/linux/sharedfolders/dirops.c -+++ VirtualBox-5.1.10/src/VBox/Additions/linux/sharedfolders/dirops.c -@@ -748,12 +748,18 @@ static int sf_rmdir(struct inode *parent - * @param flags flags - * @returns 0 on success, Linux error code otherwise - */ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 9, 0) - static int sf_rename(struct inode *old_parent, struct dentry *old_dentry, - struct inode *new_parent, struct dentry *new_dentry - #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) - , unsigned flags - #endif - ) -+#else -+static int sf_rename(struct inode *old_parent, struct dentry *old_dentry, -+ struct inode *new_parent, struct dentry *new_dentry, -+ unsigned int flags) -+#endif - { - int err = 0, rc = VINF_SUCCESS; - struct sf_glob_info *sf_g = GET_GLOB_INFO(old_parent->i_sb); -Index: VirtualBox-5.1.10/src/VBox/Additions/linux/drm/vbox_ttm.c -=================================================================== ---- VirtualBox-5.1.10.orig/src/VBox/Additions/linux/drm/vbox_ttm.c -+++ VirtualBox-5.1.10/src/VBox/Additions/linux/drm/vbox_ttm.c -@@ -221,7 +221,8 @@ static int vbox_bo_move(struct ttm_buffe - struct ttm_mem_reg *new_mem) - { - int r; --#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0) -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0) || \ -+ LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) - r = ttm_bo_move_memcpy(bo, evict, no_wait_gpu, new_mem); - #elif LINUX_VERSION_CODE < KERNEL_VERSION(4, 9, 0) - r = ttm_bo_move_memcpy(bo, evict, interruptible, no_wait_gpu, new_mem); -Index: VirtualBox-5.1.10/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c -=================================================================== ---- VirtualBox-5.1.10.orig/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c -+++ VirtualBox-5.1.10/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c -@@ -1045,7 +1045,27 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser - /* - * Get user pages. - */ --#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) -+ if (R0Process == RTR0ProcHandleSelf()) -+ rc = get_user_pages(R3Ptr, /* Where from. */ -+ cPages, /* How many pages. */ -+ fWrite, /* Write to memory. */ -+ &pMemLnx->apPages[0], /* Page array. */ -+ papVMAs); /* vmas */ -+ /* -+ * Actually this should not happen at the moment as call this function -+ * only for our own process. -+ */ -+ else -+ rc = get_user_pages_remote( -+ pTask, /* Task for fault accounting. */ -+ pTask->mm, /* Whose pages. */ -+ R3Ptr, /* Where from. */ -+ cPages, /* How many pages. */ -+ fWrite, /* Write to memory. */ -+ &pMemLnx->apPages[0], /* Page array. */ -+ papVMAs); /* vmas */ -+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) - if (R0Process == RTR0ProcHandleSelf()) - rc = get_user_pages(R3Ptr, /* Where from. */ - cPages, /* How many pages. */ diff --git a/virtualbox.changes b/virtualbox.changes index c0d3454..6dd8e7d 100644 --- a/virtualbox.changes +++ b/virtualbox.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Sat Jan 28 20:37:54 UTC 2017 - Larry.Finger@lwfinger.net + +- Removed "vbox_fix_4.9_api_changes.patch" as changes are upstream. + Fixed API changes for kernel 4.10 in "vbox_fix_4.10_api_changes.patch". + ------------------------------------------------------------------- Wed Jan 25 02:52:51 UTC 2017 - Larry.Finger@lwfinger.net diff --git a/virtualbox.spec b/virtualbox.spec index cdba87d..c6391f1 100644 --- a/virtualbox.spec +++ b/virtualbox.spec @@ -89,11 +89,11 @@ Patch111: vbox_prevent_wrong_SONAME.patch Patch112: modify_for_4_8_bo_move.patch # Remove all mention of _smp_mflags Patch113: vbox_remove_smp_mflags.patch -# Fix build error on kernel 4.9 -Patch114: vbox_fix_4.9_api_changes.patch # Fix for missing include needed for server 1.19 Patch116: Fix_for_server_1.19.patch # +Patch117: vbox_fix_4.10_api_changes.patch +# BuildRequires: LibVNCServer-devel BuildRequires: SDL-devel BuildRequires: acpica @@ -328,8 +328,8 @@ This package contains icons for guest desktop files that were created on the des %patch111 -p1 %patch112 -p1 %patch113 -p1 -%patch114 -p1 %patch116 -p1 +%patch117 -p1 #copy user manual cp %{SOURCE1} UserManual.pdf