Index: /trunk/src/VBox/Additions/linux/drm/vboxvideo_drm.c
===================================================================
--- /trunk/src/VBox/Additions/linux/drm/vboxvideo_drm.c	(revision 52016)
+++ /trunk/src/VBox/Additions/linux/drm/vboxvideo_drm.c	(revision 52017)
@@ -63,4 +63,11 @@
 #endif
 
+/* The first of these was introduced when drm was generalised to work with
+ * non-PCI buses, but was removed between 3.15 and 3.16.  The second is a
+ * random definition introduced in the mean-time. */
+#if defined(DRIVER_BUS_PCI) || defined(DRIVER_PRIME)
+# define DRM_NEW_BUS_INIT 1
+#endif
+
 static struct pci_device_id pciidlist[] = {
         vboxvideo_PCI_IDS
@@ -110,5 +117,5 @@
     .fops = &driver_fops,
 #endif
-#ifndef DRIVER_BUS_PCI
+#ifndef DRM_NEW_BUS_INIT
     .pci_driver =
     {
@@ -125,5 +132,5 @@
 };
 
-#ifdef DRIVER_BUS_PCI
+#ifdef DRM_NEW_BUS_INIT
 static struct pci_driver pci_driver =
 {
@@ -135,5 +142,5 @@
 static int __init vboxvideo_init(void)
 {
-#ifndef DRIVER_BUS_PCI
+#ifndef DRM_NEW_BUS_INIT
     return drm_init(&driver);
 #else
@@ -144,5 +151,5 @@
 static void __exit vboxvideo_exit(void)
 {
-#ifndef DRIVER_BUS_PCI
+#ifndef DRM_NEW_BUS_INIT
     drm_exit(&driver);
 #else
