File fixes_for_sle12.patch of Package virtualbox.openSUSE_Leap_15.3_Update

Index: VirtualBox-6.1.28/src/VBox/Additions/linux/drm/vbox_drv.c
===================================================================
--- VirtualBox-6.1.28.orig/src/VBox/Additions/linux/drm/vbox_drv.c
+++ VirtualBox-6.1.28/src/VBox/Additions/linux/drm/vbox_drv.c
@@ -349,7 +349,9 @@ static struct drm_driver driver = {
 	.master_drop = vbox_master_drop,
 #if RTLNX_VER_MIN(3,18,0) || RTLNX_RHEL_MAJ_PREREQ(7,2)
 # if RTLNX_VER_MAX(4,14,0) && !RTLNX_RHEL_MAJ_PREREQ(7,5) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5)
+#if !(defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 12 && CONFIG_SUSE_PATCHLEVEL >= 4)
 	.set_busid = drm_pci_set_busid,
+#endif
 # endif
 #endif
 
Index: VirtualBox-6.1.28/src/VBox/Additions/linux/drm/vbox_main.c
===================================================================
--- VirtualBox-6.1.28.orig/src/VBox/Additions/linux/drm/vbox_main.c
+++ VirtualBox-6.1.28/src/VBox/Additions/linux/drm/vbox_main.c
@@ -622,11 +622,13 @@ int vbox_dumb_destroy(struct drm_file *f
 #endif
 
 #if RTLNX_VER_MAX(4,19,0) && !RTLNX_RHEL_MAJ_PREREQ(7,7) && !RTLNX_RHEL_MAJ_PREREQ(8,1) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5)
+#if !(defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 12 && CONFIG_SUSE_PATCHLEVEL >= 4)
 static void ttm_bo_put(struct ttm_buffer_object *bo)
 {
 	ttm_bo_unref(&bo);
 }
 #endif
+#endif
 
 void vbox_gem_free_object(struct drm_gem_object *obj)
 {
Index: VirtualBox-6.1.28/src/VBox/Additions/linux/drm/vbox_ttm.c
===================================================================
--- VirtualBox-6.1.28.orig/src/VBox/Additions/linux/drm/vbox_ttm.c
+++ VirtualBox-6.1.28/src/VBox/Additions/linux/drm/vbox_ttm.c
@@ -297,7 +297,7 @@ static struct ttm_backend_func vbox_tt_b
 };
 #endif
 
-#if RTLNX_VER_MAX(4,17,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5)
+#if RTLNX_VER_MAX(4,17,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !defined(SUSE_SLE12)
 static struct ttm_tt *vbox_ttm_tt_create(struct ttm_bo_device *bdev,
 					 unsigned long size,
 					 u32 page_flags,
@@ -316,7 +316,7 @@ static struct ttm_tt *vbox_ttm_tt_create
 #if RTLNX_VER_MAX(5,10,0) && !RTLNX_RHEL_RANGE(8,5, 8,99)
 	tt->func = &vbox_tt_backend_func;
 #endif
-#if RTLNX_VER_MAX(4,17,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5)
+#if RTLNX_VER_MAX(4,17,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !defined(SUSE_SLE12)
 	if (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) {
 #elif RTLNX_VER_MAX(5,11,0) && !RTLNX_RHEL_RANGE(8,5, 8,99)
 	if (ttm_tt_init(tt, bo, page_flags)) {
@@ -331,7 +331,7 @@ static struct ttm_tt *vbox_ttm_tt_create
 }
 
 #if RTLNX_VER_MAX(4,17,0)
-# if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5)
+# if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !defined(SUSE_SLE12)
 static int vbox_ttm_tt_populate(struct ttm_tt *ttm)
 {
 	return ttm_pool_populate(ttm);
@@ -385,7 +385,7 @@ static struct ttm_bo_driver vbox_bo_driv
 	.io_mem_reserve = &vbox_ttm_io_mem_reserve,
 	.io_mem_free = &vbox_ttm_io_mem_free,
 #if RTLNX_VER_MIN(4,12,0) || RTLNX_RHEL_MAJ_PREREQ(7,5)
-# if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5)
+# if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !defined(SUSE_SLE12)
 	.io_mem_pfn = ttm_bo_default_io_mem_pfn,
 # endif
 #endif
@@ -622,7 +622,7 @@ int vbox_bo_create(struct drm_device *de
 
 	ret = ttm_bo_init(&vbox->ttm.bdev, &vboxbo->bo, size,
 			  ttm_bo_type_device, &vboxbo->placement,
-#if RTLNX_VER_MAX(4,17,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5)
+#if RTLNX_VER_MAX(4,17,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !defined(SUSE_SLE12)
 			  align >> PAGE_SHIFT, false, NULL, acc_size,
 #elif RTLNX_VER_MAX(5,13,0) /* < 5.13.0 */
 			  align >> PAGE_SHIFT, false, acc_size,
@@ -664,7 +664,7 @@ static inline u64 vbox_bo_gpu_offset(str
 
 int vbox_bo_pin(struct vbox_bo *bo, u32 mem_type, u64 *gpu_addr)
 {
-#if RTLNX_VER_MIN(4,16,0) || RTLNX_RHEL_MAJ_PREREQ(7,6) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5)
+#if RTLNX_VER_MIN(4,16,0) || RTLNX_RHEL_MAJ_PREREQ(7,6) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5) || defined(SUSE_SLE12)
 	struct ttm_operation_ctx ctx = { false, false };
 #endif
 	int ret;
@@ -687,7 +687,7 @@ int vbox_bo_pin(struct vbox_bo *bo, u32
 		PLACEMENT_FLAGS(bo->placements[i]) |= TTM_PL_FLAG_NO_EVICT;
 #endif
 
-#if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5)
+#if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !defined(SUSE_SLE12)
 	ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false);
 #else
 	ret = ttm_bo_validate(&bo->bo, &bo->placement, &ctx);
@@ -709,7 +709,7 @@ int vbox_bo_pin(struct vbox_bo *bo, u32
 
 int vbox_bo_unpin(struct vbox_bo *bo)
 {
-#if RTLNX_VER_MIN(4,16,0) || RTLNX_RHEL_MAJ_PREREQ(7,6) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5)
+#if RTLNX_VER_MIN(4,16,0) || RTLNX_RHEL_MAJ_PREREQ(7,6) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5) || defined(SUSE_SLE12)
 # if RTLNX_VER_MAX(5,11,0) && !RTLNX_RHEL_MAJ_PREREQ(8,5)
 	struct ttm_operation_ctx ctx = { false, false };
 # endif
@@ -732,7 +732,7 @@ int vbox_bo_unpin(struct vbox_bo *bo)
 		PLACEMENT_FLAGS(bo->placements[i]) &= ~TTM_PL_FLAG_NO_EVICT;
 #endif
 
-#if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5)
+#if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !defined(SUSE_SLE12)
 	ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false);
 #elif RTLNX_VER_MAX(5,11,0) && !RTLNX_RHEL_MAJ_PREREQ(8,5)
 	ret = ttm_bo_validate(&bo->bo, &bo->placement, &ctx);
@@ -755,7 +755,7 @@ int vbox_bo_unpin(struct vbox_bo *bo)
  */
 int vbox_bo_push_sysram(struct vbox_bo *bo)
 {
-# if RTLNX_VER_MIN(4,16,0) || RTLNX_RHEL_MAJ_PREREQ(7,6) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5)
+# if RTLNX_VER_MIN(4,16,0) || RTLNX_RHEL_MAJ_PREREQ(7,6) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5) || defined(SUSE_SLE12)
 	struct ttm_operation_ctx ctx = { false, false };
 # endif
 	int i, ret;
@@ -776,7 +776,7 @@ int vbox_bo_push_sysram(struct vbox_bo *
 	for (i = 0; i < bo->placement.num_placement; i++)
 		PLACEMENT_FLAGS(bo->placements[i]) |= TTM_PL_FLAG_NO_EVICT;
 
-# if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5)
+# if RTLNX_VER_MAX(4,16,0) && !RTLNX_RHEL_MAJ_PREREQ(7,6) && !RTLNX_SUSE_MAJ_PREREQ(15,1) && !RTLNX_SUSE_MAJ_PREREQ(12,5) && !defined(SUSE_SLE12)
 	ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false);
 # else
 	ret = ttm_bo_validate(&bo->bo, &bo->placement, &ctx);
Index: VirtualBox-6.1.28/src/VBox/Additions/linux/drm/vbox_drv.h
===================================================================
--- VirtualBox-6.1.28.orig/src/VBox/Additions/linux/drm/vbox_drv.h
+++ VirtualBox-6.1.28/src/VBox/Additions/linux/drm/vbox_drv.h
@@ -87,6 +87,9 @@
 #else
 # define RTLNX_RHEL_MAX(a_iMajor, a_iMinor) (0)
 #endif
+#if defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 12 && CONFIG_SUSE_PATCHLEVEL >= 4
+# define SUSE_SLE12
+#endif
 
 /** @def RTLNX_RHEL_RANGE
  * Check that it's a RedHat kernel in the given version range.
Index: VirtualBox-6.1.28/src/VBox/Additions/linux/drm/vbox_mode.c
===================================================================
--- VirtualBox-6.1.28.orig/src/VBox/Additions/linux/drm/vbox_mode.c
+++ VirtualBox-6.1.28/src/VBox/Additions/linux/drm/vbox_mode.c
@@ -548,7 +548,8 @@ static void vbox_set_edid(struct drm_con
 	for (i = 0; i < EDID_SIZE - 1; ++i)
 		sum += edid[i];
 	edid[EDID_SIZE - 1] = (0x100 - (sum & 0xFF)) & 0xFF;
-#if RTLNX_VER_MIN(4,19,0) || RTLNX_RHEL_MAJ_PREREQ(7,7) || RTLNX_RHEL_MAJ_PREREQ(8,1) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5)
+#if RTLNX_VER_MIN(4,19,0) || RTLNX_RHEL_MAJ_PREREQ(7,7) || \
+			  defined(SUSE_SLE12) || RTLNX_RHEL_MAJ_PREREQ(8,1) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5)
 	drm_connector_update_edid_property(connector, (struct edid *)edid);
 #else
 	drm_mode_connector_update_edid_property(connector, (struct edid *)edid);
@@ -723,7 +724,7 @@ static int vbox_connector_init(struct dr
 	drm_connector_register(connector);
 #endif
 
-#if RTLNX_VER_MIN(4,19,0) || RTLNX_RHEL_MAJ_PREREQ(7,7) || RTLNX_RHEL_MAJ_PREREQ(8,1) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5)
+#if RTLNX_VER_MIN(4,19,0) || RTLNX_RHEL_MAJ_PREREQ(7,7) || defined(SUSE_SLE12) || RTLNX_RHEL_MAJ_PREREQ(8,1) || RTLNX_SUSE_MAJ_PREREQ(15,1) || RTLNX_SUSE_MAJ_PREREQ(12,5)
 	drm_connector_attach_encoder(connector, encoder);
 #else
 	drm_mode_connector_attach_encoder(connector, encoder);
openSUSE Build Service is sponsored by