virtualbox/vbox_fix_4.11_api_changes.patch
Larry Finger 5ebf5a7f37 - Fix API changes for kernel 4.11. This change adds file "vbox_fix_4.11_api_changes.patch".
Make some changes to various script files to remove reference to run level 4, which is not used.

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=316
2017-03-08 21:20:56 +00:00

140 lines
6.3 KiB
Diff

Index: VirtualBox-5.1.14/src/VBox/Runtime/r0drv/linux/semmutex-r0drv-linux.c
===================================================================
--- VirtualBox-5.1.14.orig/src/VBox/Runtime/r0drv/linux/semmutex-r0drv-linux.c
+++ VirtualBox-5.1.14/src/VBox/Runtime/r0drv/linux/semmutex-r0drv-linux.c
@@ -40,8 +40,9 @@
#include <iprt/list.h>
#include "internal/magics.h"
-
-
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+#include <linux/sched/signal.h>
+#endif
/*********************************************************************************************************************************
* Structures and Typedefs *
*********************************************************************************************************************************/
@@ -206,7 +207,7 @@ static int rtSemMutexLinuxRequestSleep(P
break;
/* Go to sleep. */
- set_task_state(pSelf, fInterruptible ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE);
+ set_current_state(fInterruptible ? TASK_INTERRUPTIBLE : TASK_UNINTERRUPTIBLE);
spin_unlock_irq(&pThis->Spinlock);
lTimeout = schedule_timeout(lTimeout);
Index: VirtualBox-5.1.14/src/VBox/Runtime/r0drv/linux/semeventmulti-r0drv-linux.c
===================================================================
--- VirtualBox-5.1.14.orig/src/VBox/Runtime/r0drv/linux/semeventmulti-r0drv-linux.c
+++ VirtualBox-5.1.14/src/VBox/Runtime/r0drv/linux/semeventmulti-r0drv-linux.c
@@ -32,6 +32,9 @@
#include "the-linux-kernel.h"
#include "internal/iprt.h"
#include <iprt/semaphore.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+#include <linux/sched/signal.h>
+#endif
#include <iprt/assert.h>
#include <iprt/asm.h>
Index: VirtualBox-5.1.14/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c
===================================================================
--- VirtualBox-5.1.14.orig/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c
+++ VirtualBox-5.1.14/src/VBox/Runtime/r0drv/linux/thread2-r0drv-linux.c
@@ -35,6 +35,10 @@
#include <iprt/thread.h>
#include <iprt/err.h>
#include "internal/thread.h"
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+#include <linux/sched/types.h>
+#include <linux/sched/signal.h>
+#endif
RTDECL(RTTHREAD) RTThreadSelf(void)
Index: VirtualBox-5.1.14/src/VBox/Runtime/r0drv/linux/semevent-r0drv-linux.c
===================================================================
--- VirtualBox-5.1.14.orig/src/VBox/Runtime/r0drv/linux/semevent-r0drv-linux.c
+++ VirtualBox-5.1.14/src/VBox/Runtime/r0drv/linux/semevent-r0drv-linux.c
@@ -38,11 +38,13 @@
#include <iprt/err.h>
#include <iprt/lockvalidator.h>
#include <iprt/mem.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+#include <linux/sched/signal.h>
+#endif
#include "waitqueue-r0drv-linux.h"
#include "internal/magics.h"
-
/*********************************************************************************************************************************
* Structures and Typedefs *
*********************************************************************************************************************************/
Index: VirtualBox-5.1.14/src/VBox/Additions/linux/sharedfolders/utils.c
===================================================================
--- VirtualBox-5.1.14.orig/src/VBox/Additions/linux/sharedfolders/utils.c
+++ VirtualBox-5.1.14/src/VBox/Additions/linux/sharedfolders/utils.c
@@ -290,8 +290,15 @@ sf_dentry_revalidate(struct dentry *dent
has inode at all) from these new attributes we derive [kstat] via
[generic_fillattr] */
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+int sf_getattr(const struct path *path, struct kstat *kstat,
+ u32 request_mask, unsigned int flags)
+{
+ struct dentry *dentry = path->dentry;
+#else
int sf_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *kstat)
{
+#endif
int err;
TRACE();
Index: VirtualBox-5.1.14/src/VBox/Additions/linux/sharedfolders/vfsmod.h
===================================================================
--- VirtualBox-5.1.14.orig/src/VBox/Additions/linux/sharedfolders/vfsmod.h
+++ VirtualBox-5.1.14/src/VBox/Additions/linux/sharedfolders/vfsmod.h
@@ -100,8 +100,13 @@ extern int sf_stat(const char *caller,
SHFLSTRING *path, PSHFLFSOBJINFO result, int ok_to_fail);
extern int sf_inode_revalidate(struct dentry *dentry);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
-extern int sf_getattr(struct vfsmount *mnt, struct dentry *dentry,
- struct kstat *kstat);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+extern int sf_getattr(const struct path *path, struct kstat *kstat,
+ u32 request_mask, unsigned int flags);
+#else
+extern int sf_getattr(struct vfsmount *mnt, struct dentry *dentry,
+ struct kstat *kstat);
+#endif
extern int sf_setattr(struct dentry *dentry, struct iattr *iattr);
#endif
extern int sf_path_from_dentry(const char *caller, struct sf_glob_info *sf_g,
Index: VirtualBox-5.1.14/src/VBox/Additions/linux/sharedfolders/regops.c
===================================================================
--- VirtualBox-5.1.14.orig/src/VBox/Additions/linux/sharedfolders/regops.c
+++ VirtualBox-5.1.14/src/VBox/Additions/linux/sharedfolders/regops.c
@@ -445,7 +445,11 @@ static int sf_reg_release(struct inode *
}
#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 25)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+static int sf_reg_fault(struct vm_fault *vmf)
+#else
static int sf_reg_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+#endif
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
static struct page *sf_reg_nopage(struct vm_area_struct *vma, unsigned long vaddr, int *type)
# define SET_TYPE(t) *type = (t)
@@ -459,6 +463,9 @@ static struct page *sf_reg_nopage(struct
loff_t off;
uint32_t nread = PAGE_SIZE;
int err;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+ struct vm_area_struct *vma = vmf->vma;
+#endif
struct file *file = vma->vm_file;
struct inode *inode = GET_F_DENTRY(file)->d_inode;
struct sf_glob_info *sf_g = GET_GLOB_INFO(inode->i_sb);