Index: src/VBox/Additions/linux/drm/vbox_drv.c =================================================================== --- src/VBox/Additions/linux/drm/vbox_drv.c (revision 140448) +++ src/VBox/Additions/linux/drm/vbox_drv.c (working copy) @@ -61,9 +61,7 @@ static int vbox_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) { -#if RTLNX_VER_MAX(4,19,0) - return drm_get_pci_dev(pdev, ent, &driver); -#else +#if RTLNX_VER_MIN(4,19,0) || RTLNX_RHEL_MIN(8,3) struct drm_device *dev = NULL; int ret = 0; @@ -90,6 +88,8 @@ drm_dev_put(dev); err_drv_alloc: return ret; +#else /* < 4.19.0 || RHEL < 8.3 */ + return drm_get_pci_dev(pdev, ent, &driver); #endif } @@ -303,19 +303,18 @@ } static struct drm_driver driver = { -#if RTLNX_VER_MAX(5,4,0) - .driver_features = - DRIVER_MODESET | DRIVER_GEM | DRIVER_HAVE_IRQ | +#if RTLNX_VER_MAX(5,4,0) && !RTLNX_RHEL_MAJ_PREREQ(8,3) + .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_HAVE_IRQ | # if RTLNX_VER_MAX(5,1,0) && !RTLNX_RHEL_MAJ_PREREQ(8,1) DRIVER_IRQ_SHARED | # endif DRIVER_PRIME, -#else /* >= 5.4.0 */ +#else /* >= 5.4.0 && RHEL >= 8.3 */ .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_HAVE_IRQ, #endif /* < 5.4.0 */ .dev_priv_size = 0, -#if RTLNX_VER_MAX(4,19,0) +#if RTLNX_VER_MAX(4,19,0) && !RTLNX_RHEL_MAJ_PREREQ(8,3) /* Legacy hooks, but still supported. */ .load = vbox_driver_load, .unload = vbox_driver_unload, Index: src/VBox/Additions/linux/drm/vbox_drv.h =================================================================== --- src/VBox/Additions/linux/drm/vbox_drv.h (revision 140448) +++ src/VBox/Additions/linux/drm/vbox_drv.h (working copy) @@ -151,9 +151,7 @@ #define S64_MIN ((s64)(-S64_MAX - 1)) #endif -#if RTLNX_VER_MAX(5,5,0) -# include -#else /* >= 5.5.0 */ +#if RTLNX_VER_MIN(5,5,0) || RTLNX_RHEL_MIN(8,3) # include # include # include @@ -161,7 +159,9 @@ # include # include # include -#endif /* >= 5.5.0 */ +#else /* < 5.5.0 || RHEL < 8.3 */ +# include +#endif #if RTLNX_VER_MIN(4,11,0) || RTLNX_RHEL_MAJ_PREREQ(7,5) # include #endif @@ -298,10 +298,10 @@ #undef CURSOR_PIXEL_COUNT #undef CURSOR_DATA_SIZE -#if RTLNX_VER_MAX(4,19,0) -int vbox_driver_load(struct drm_device *dev, unsigned long flags); -#else +#if RTLNX_VER_MIN(4,19,0) || RTLNX_RHEL_MIN(8,3) int vbox_driver_load(struct drm_device *dev); +#else +int vbox_driver_load(struct drm_device *dev, unsigned long flags); #endif #if RTLNX_VER_MIN(4,11,0) || RTLNX_RHEL_MAJ_PREREQ(7,5) void vbox_driver_unload(struct drm_device *dev); Index: src/VBox/Additions/linux/drm/vbox_main.c =================================================================== --- src/VBox/Additions/linux/drm/vbox_main.c (revision 140448) +++ src/VBox/Additions/linux/drm/vbox_main.c (working copy) @@ -447,10 +447,10 @@ pci_iounmap(vbox->dev->pdev, vbox->guest_heap); } -#if RTLNX_VER_MAX(4,19,0) -int vbox_driver_load(struct drm_device *dev, unsigned long flags) -#else +#if RTLNX_VER_MIN(4,19,0) || RTLNX_RHEL_MIN(8,3) int vbox_driver_load(struct drm_device *dev) +#else +int vbox_driver_load(struct drm_device *dev, unsigned long flags) #endif { struct vbox_private *vbox; @@ -621,7 +621,7 @@ static inline u64 vbox_bo_mmap_offset(struct vbox_bo *bo) { -#if RTLNX_VER_MIN(5,4,0) +#if RTLNX_VER_MIN(5,4,0) || RTLNX_RHEL_MIN(8,3) return drm_vma_node_offset_addr(&bo->bo.base.vma_node); #elif RTLNX_VER_MAX(3,12,0) && !RTLNX_RHEL_MAJ_PREREQ(7,0) return bo->bo.addr_space_offset; Index: src/VBox/Additions/linux/drm/vbox_mode.c =================================================================== --- src/VBox/Additions/linux/drm/vbox_mode.c (revision 140448) +++ src/VBox/Additions/linux/drm/vbox_mode.c (working copy) @@ -398,13 +398,13 @@ static struct drm_encoder *vbox_best_single_encoder(struct drm_connector *connector) { -#if RTLNX_VER_MIN(5,5,0) +#if RTLNX_VER_MIN(5,5,0) || RTLNX_RHEL_MIN(8,3) struct drm_encoder *encoder; /* There is only one encoder per connector */ drm_connector_for_each_possible_encoder(connector, encoder) return encoder; -#else /* < 5.5 */ +#else /* < 5.5 || RHEL < 8.3 */ int enc_id = connector->encoder_ids[0]; /* pick the encoder ids */ @@ -414,7 +414,7 @@ # else return drm_encoder_find(connector->dev, enc_id); # endif -#endif /* < 5.5 */ +#endif /* < 5.5 || RHEL < 8.3 */ return NULL; } Index: src/VBox/Additions/linux/drm/vbox_ttm.c =================================================================== --- src/VBox/Additions/linux/drm/vbox_ttm.c (revision 140448) +++ src/VBox/Additions/linux/drm/vbox_ttm.c (working copy) @@ -303,7 +303,7 @@ #if RTLNX_VER_MIN(3,15,0) || RTLNX_RHEL_MAJ_PREREQ(7,1) dev->anon_inode->i_mapping, #endif -#if RTLNX_VER_MIN(5,5,0) +#if RTLNX_VER_MIN(5,5,0) || RTLNX_RHEL_MIN(8,3) dev->vma_offset_manager, #elif RTLNX_VER_MAX(5,2,0) && !RTLNX_RHEL_MAJ_PREREQ(8,2) DRM_FILE_PAGE_OFFSET,