Index: /trunk/src/VBox/Additions/linux/drm/vbox_drv.c
===================================================================
--- /trunk/src/VBox/Additions/linux/drm/vbox_drv.c	(revision 76975)
+++ /trunk/src/VBox/Additions/linux/drm/vbox_drv.c	(revision 76976)
@@ -60,5 +60,34 @@
 static int vbox_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0)
 	return drm_get_pci_dev(pdev, ent, &driver);
+#else
+	struct drm_device *dev = NULL;
+	int ret = 0;
+
+	dev = drm_dev_alloc(&driver, &pdev->dev);
+	if (IS_ERR(dev)) {
+		ret = PTR_ERR(dev);
+		goto err_drv_alloc;
+	}
+	dev->pdev = pdev;
+	pci_set_drvdata(pdev, dev);
+
+	ret = vbox_driver_load(dev);
+	if (ret)
+		goto err_vbox_driver_load;
+
+	ret = drm_dev_register(dev, 0);
+	if (ret)
+		goto err_drv_dev_register;
+	return ret;
+
+err_drv_dev_register:
+	vbox_driver_unload(dev);
+err_vbox_driver_load:
+	drm_dev_put(dev);
+err_drv_alloc:
+	return ret;
+#endif
 }
 
@@ -67,5 +96,11 @@
 	struct drm_device *dev = pci_get_drvdata(pdev);
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0)
 	drm_put_dev(dev);
+#else
+	drm_dev_unregister(dev);
+	vbox_driver_unload(dev);
+	drm_dev_put(dev);
+#endif
 }
 
@@ -272,6 +307,9 @@
 	.dev_priv_size = 0,
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0)
+    /* Legacy hooks, but still supported. */
 	.load = vbox_driver_load,
 	.unload = vbox_driver_unload,
+#endif
 	.lastclose = vbox_driver_lastclose,
 	.master_set = vbox_master_set,
Index: /trunk/src/VBox/Additions/linux/drm/vbox_drv.h
===================================================================
--- /trunk/src/VBox/Additions/linux/drm/vbox_drv.h	(revision 76975)
+++ /trunk/src/VBox/Additions/linux/drm/vbox_drv.h	(revision 76976)
@@ -217,5 +217,9 @@
 #undef CURSOR_DATA_SIZE
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0)
 int vbox_driver_load(struct drm_device *dev, unsigned long flags);
+#else
+int vbox_driver_load(struct drm_device *dev);
+#endif
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) || defined(RHEL_75)
 void vbox_driver_unload(struct drm_device *dev);
Index: /trunk/src/VBox/Additions/linux/drm/vbox_main.c
===================================================================
--- /trunk/src/VBox/Additions/linux/drm/vbox_main.c	(revision 76975)
+++ /trunk/src/VBox/Additions/linux/drm/vbox_main.c	(revision 76976)
@@ -448,5 +448,9 @@
 }
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0)
 int vbox_driver_load(struct drm_device *dev, unsigned long flags)
+#else
+int vbox_driver_load(struct drm_device *dev)
+#endif
 {
 	struct vbox_private *vbox;
