Index: /trunk/src/VBox/Additions/linux/drm/vbox_drv.h
===================================================================
--- /trunk/src/VBox/Additions/linux/drm/vbox_drv.h	(revision 65991)
+++ /trunk/src/VBox/Additions/linux/drm/vbox_drv.h	(revision 65992)
@@ -64,4 +64,7 @@
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0)
 # include <drm/drm_gem.h>
+#endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+# include <drm/drm_encoder.h>
 #endif
 
@@ -143,5 +146,9 @@
 
 int vbox_driver_load(struct drm_device *dev, unsigned long flags);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+void vbox_driver_unload(struct drm_device *dev);
+#else
 int vbox_driver_unload(struct drm_device *dev);
+#endif
 void vbox_driver_lastclose(struct drm_device *dev);
 
Index: /trunk/src/VBox/Additions/linux/drm/vbox_fb.c
===================================================================
--- /trunk/src/VBox/Additions/linux/drm/vbox_fb.c	(revision 65991)
+++ /trunk/src/VBox/Additions/linux/drm/vbox_fb.c	(revision 65992)
@@ -325,5 +325,9 @@
     info->apertures->ranges[0].size = pci_resource_len(dev->pdev, 0);
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+    drm_fb_helper_fill_fix(info, fb->pitches[0], fb->format->depth);
+#else
     drm_fb_helper_fill_fix(info, fb->pitches[0], fb->depth);
+#endif
     drm_fb_helper_fill_var(info, &fbdev->helper, sizes->fb_width, sizes->fb_height);
 
@@ -416,5 +420,9 @@
     drm_fb_helper_prepare(dev, &fbdev->helper, &vbox_fb_helper_funcs);
 #endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+    ret = drm_fb_helper_init(dev, &fbdev->helper, vbox->num_crtcs);
+#else
     ret = drm_fb_helper_init(dev, &fbdev->helper, vbox->num_crtcs, vbox->num_crtcs);
+#endif
     if (ret)
         goto free;
Index: /trunk/src/VBox/Additions/linux/drm/vbox_main.c
===================================================================
--- /trunk/src/VBox/Additions/linux/drm/vbox_main.c	(revision 65991)
+++ /trunk/src/VBox/Additions/linux/drm/vbox_main.c	(revision 65992)
@@ -177,5 +177,9 @@
     int ret;
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+    drm_helper_mode_fill_fb_struct(dev, &vbox_fb->base, mode_cmd);
+#else
     drm_helper_mode_fill_fb_struct(&vbox_fb->base, mode_cmd);
+#endif
     vbox_fb->obj = obj;
     ret = drm_framebuffer_init(dev, &vbox_fb->base, &vbox_fb_funcs);
@@ -395,5 +399,9 @@
 }
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+void vbox_driver_unload(struct drm_device *dev)
+#else
 int vbox_driver_unload(struct drm_device *dev)
+#endif
 {
     struct vbox_private *vbox = dev->dev_private;
@@ -411,5 +419,7 @@
     kfree(vbox);
     dev->dev_private = NULL;
-    return 0;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
+    return 0;
+#endif
 }
 
Index: /trunk/src/VBox/Additions/linux/drm/vbox_mode.c
===================================================================
--- /trunk/src/VBox/Additions/linux/drm/vbox_mode.c	(revision 65991)
+++ /trunk/src/VBox/Additions/linux/drm/vbox_mode.c	(revision 65992)
@@ -80,9 +80,13 @@
     height = mode->vdisplay ? mode->vdisplay : 480;
     crtc_id = vbox_crtc->crtc_id;
-    bpp = crtc->enabled ? CRTC_FB(crtc)->bits_per_pixel : 32;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 3, 0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+    bpp   = crtc->enabled ? CRTC_FB(crtc)->format->cpp[0] * 8 : 32;
+    pitch = crtc->enabled ? CRTC_FB(crtc)->pitches[0] : width * bpp / 8;
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 3, 0)
+    bpp   = crtc->enabled ? CRTC_FB(crtc)->bits_per_pixel : 32;
+    pitch = crtc->enabled ? CRTC_FB(crtc)->pitches[0] : width * bpp / 8;
+#else
+    bpp   = crtc->enabled ? CRTC_FB(crtc)->bits_per_pixel : 32;
     pitch = crtc->enabled ? CRTC_FB(crtc)->pitch : width * bpp / 8;
-#else
-    pitch = crtc->enabled ? CRTC_FB(crtc)->pitches[0] : width * bpp / 8;
 #endif
     x_offset = vbox->single_framebuffer ? crtc->x : vbox_crtc->x_hint;
@@ -97,5 +101,10 @@
         && vbox_crtc->fb_offset % (bpp / 8) == 0)
         VBoxVideoSetModeRegisters(width, height, pitch * 8 / bpp,
-                          CRTC_FB(crtc)->bits_per_pixel, 0,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+                          CRTC_FB(crtc)->format->cpp[0] * 8,
+#else
+                          CRTC_FB(crtc)->bits_per_pixel,
+#endif
+                          0,
                           vbox_crtc->fb_offset % pitch / bpp * 8 + crtc->x,
                           vbox_crtc->fb_offset / pitch + crtc->y);
Index: /trunk/src/VBox/Additions/linux/drm/vbox_ttm.c
===================================================================
--- /trunk/src/VBox/Additions/linux/drm/vbox_ttm.c	(revision 65991)
+++ /trunk/src/VBox/Additions/linux/drm/vbox_ttm.c	(revision 65992)
@@ -281,5 +281,5 @@
     .io_mem_reserve = &vbox_ttm_io_mem_reserve,
     .io_mem_free = &vbox_ttm_io_mem_free,
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
     .lru_tail = &ttm_bo_default_lru_tail,
     .swap_lru_tail = &ttm_bo_default_swap_lru_tail,
Index: /trunk/src/VBox/Additions/linux/sharedfolders/regops.c
===================================================================
--- /trunk/src/VBox/Additions/linux/sharedfolders/regops.c	(revision 65991)
+++ /trunk/src/VBox/Additions/linux/sharedfolders/regops.c	(revision 65992)
@@ -445,5 +445,7 @@
 }
 
-#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)
+#elif LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 25)
 static int sf_reg_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
 #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
@@ -460,4 +462,7 @@
     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;
@@ -540,5 +545,5 @@
     .fault = sf_reg_fault
 #else
-     .nopage = sf_reg_nopage
+    .nopage = sf_reg_nopage
 #endif
 };
Index: /trunk/src/VBox/Additions/linux/sharedfolders/utils.c
===================================================================
--- /trunk/src/VBox/Additions/linux/sharedfolders/utils.c	(revision 65991)
+++ /trunk/src/VBox/Additions/linux/sharedfolders/utils.c	(revision 65992)
@@ -291,7 +291,14 @@
    [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)
+# else
 int sf_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *kstat)
+# endif
 {
     int err;
+# if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+    struct dentry *dentry = path->dentry;
+# endif
 
     TRACE();
Index: /trunk/src/VBox/Additions/linux/sharedfolders/vfsmod.h
===================================================================
--- /trunk/src/VBox/Additions/linux/sharedfolders/vfsmod.h	(revision 65991)
+++ /trunk/src/VBox/Additions/linux/sharedfolders/vfsmod.h	(revision 65992)
@@ -101,6 +101,11 @@
 extern int  sf_inode_revalidate(struct dentry *dentry);
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
+# 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 query_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
