virtualbox/fixes_for_sle12.patch
Larry Finger a4bb9742dd Accepting request 1036720 from home:lwfinger:branches:Virtualization
added file "set_noexec_stack.patch" to remove executable stack in yasm-compiled routines
addwd file "fix_v7_build.patch"
added file "VBoxDDR0.r0"
deleted file "/vb-6.1.16-modal-dialog-parent.patch"
VirtualBox 7.0.2 (released October 20 2022)
This is a maintenance release. The following items were fixed and/or added:
Known issue: VMs having more than one vCPU configured will not work properly on macOS Catalina due to an unknown memory corruption issue. Either lower the number of vCPUs to 1 or upgrade to BigSur or later where the issue does not occur
Main: Fixed issue when VBoxSVC could become unresponsive if Extension Pack was not installed (bug #21167)
Linux Guest Additions: Introduced initial support for kernel 6.1
Linux Guest Additions: Fixed issue when VBoxClient seamless service caused a crash of some X11 applications (bug #21132)
GUI: Fixed a glitch in the log viewer which was causing wrong log file to be saved (bug #21156)
VirtualBox 7.0.0 (released October 10 2022)
This is a major update. The following major new features were added:
Virtual machines can be fully encrypted now, including the VM config logs and saved states (CLI only for now)
OCI: Cloud virtual machines can be added to Virtual Machine Manager and controlled as local VMs
OCI: Cloud networks can now be configured via Network Manager tool same way as it is done for Host-only and NAT networks
GUI: Added a new utility similar to "top" or "resource monitor" which lists peformance statistics (CPU usage, RAM usage, disk I/O rate, etc.) of running guests
GUI: Reworked the new vm wizard to integrate the unattended guest OS installation and to have a more streamlined work flow
GUI: Added a new help viewer widget which enables the user manual to be navigated and searched
GUI: Adding new notification center unifying most of running progresses and error reporting around the GUI
GUI: Improved theme support on all platforms. Linux and macOS use native engine while for Windows host it is separately implemented.
GUI: Large icon update.
Audio recording: Now using Vorbis as the default audio format for WebM containers. Opus is no longer being used.
Audio: Added "default" host driver type to make it possible to move VMs (appliances) between different platforms without the need of changing the audio driver explicitly. When the "default" driver is selected, the best audio backend option for a platform will be used. This is the default for newly created VMs.
Guest Control: Implemented initial support for automatic updating of Guest Additions for Linux guests
Guest Control: Implemented ability to wait for and/or reboot the guest when updating Guest Additions via VBoxManage
VBoxManage: Added Guest Control "waitrunlevel" sub-command to make it possible to wait for a guest to reach a certain run level
Linux Guest Additions: Reworked guest screen re-size functionality, added basic integration with some of guest Desktop Environments
Devices: Implemented new 3D support based on DirectX 11 (and DXVK on non Windows hosts)
Devices: Added virtual IOMMU devices (Intel and AMD variant)

OBS-URL: https://build.opensuse.org/request/show/1036720
OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=663
2022-11-18 21:49:33 +00:00

173 lines
9.3 KiB
Diff

Index: VirtualBox-7.0.2/src/VBox/Additions/linux/drm/vbox_drv.c
===================================================================
--- VirtualBox-7.0.2.orig/src/VBox/Additions/linux/drm/vbox_drv.c
+++ VirtualBox-7.0.2/src/VBox/Additions/linux/drm/vbox_drv.c
@@ -362,7 +362,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-7.0.2/src/VBox/Additions/linux/drm/vbox_main.c
===================================================================
--- VirtualBox-7.0.2.orig/src/VBox/Additions/linux/drm/vbox_main.c
+++ VirtualBox-7.0.2/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-7.0.2/src/VBox/Additions/linux/drm/vbox_ttm.c
===================================================================
--- VirtualBox-7.0.2.orig/src/VBox/Additions/linux/drm/vbox_ttm.c
+++ VirtualBox-7.0.2/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)) {
@@ -333,7 +333,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);
@@ -387,7 +387,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
@@ -628,7 +628,7 @@ int vbox_bo_create(struct drm_device *de
ret = ttm_bo_init(&vbox->ttm.bdev, &vboxbo->bo, size,
#endif /* < 6.1.0 */
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) && !RTLNX_RHEL_RANGE(8,6, 8,99) /* < 5.13.0, < RHEL(8.6, 8.99) */
align >> PAGE_SHIFT, false, acc_size,
@@ -670,7 +670,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;
@@ -693,7 +693,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);
@@ -715,7 +715,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
@@ -738,7 +738,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);
@@ -761,7 +761,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;
@@ -782,7 +782,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-7.0.2/src/VBox/Additions/linux/drm/vbox_drv.h
===================================================================
--- VirtualBox-7.0.2.orig/src/VBox/Additions/linux/drm/vbox_drv.h
+++ VirtualBox-7.0.2/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-7.0.2/src/VBox/Additions/linux/drm/vbox_mode.c
===================================================================
--- VirtualBox-7.0.2.orig/src/VBox/Additions/linux/drm/vbox_mode.c
+++ VirtualBox-7.0.2/src/VBox/Additions/linux/drm/vbox_mode.c
@@ -552,7 +552,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);
@@ -727,7 +728,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);