forked from pool/virtualbox
221b12cb3b
- Version bump to (released April 20 2021 by Oracle) This is a maintenance release. The following items were fixed and/or added: VMM: Fixed extremely poor VM performance depending on the timing of various actions (regression in 6.1.0) VMM: Fixed guest OS hanging under certain circumstances when Hyper-V is present (bug #20141) VMM: Fixed Guru Meditation error when using a nested hypervisor under certain circumstances (bug #20175) VMM: Fixed a SMAP related host panic affecting Solaris 11.4 systems with Intel Haswell CPUs or later (bug #16068) OCI: Add cloud-init support for export to OCI and for OCI instance creation GUI: Fixed "Delete all files" leaving behind Logs/VBoxUI.log (bug #20235) Audio: Multiple fixes and enhancements Audio: Fixed detection of duplex audio devices on macOS (5.0 regression; bug #20171) Network: Fixed link status reporting for "not attached" adapters Network: Fixed connectivity issues with e1000 in OS/2 guests (6.1.18 regression; bug #20148) Network: Fixed VxWorks e1000 driver compatibility issue (bug #20182) Network: Fixed GUI checks for port forwarding rules rejecting IPv6 with "Nat Network" (bug #14847) DHCP: Don't crash in the presence of fixed address assignments (bug #20128) Serial: Fixed possible VM hang when using the a serial port in disconnected mode (bug #19854) Webcam: Fixed interoperability with v4l2loopback and fixed a crash under certain circumstances (bug #20176) NVMe: Fixed sporadic Windows VM hang or reboot on high CPU load VBoxManage: Allow changing network adapter attachment of a saved VM with "modifyvm" vboximg-mount: Fix for argument processing to honor the '--root' option (6.0 regression; bug #20073) Linux host and guest: Support kernel versions 5.11 (bug #20198) and 5.12 Linux host: Maximum MTU size increased to 16110 for host-only adapters on Linux kernels 4.10+ (bug #19122) Linux Guest Additions: Fix vboxvideo module compilation for kernel version 5.10.x Linux Guest Additions: Fixed kernel module build for RHEL 8.4 beta and CentOS Stream (bug #20289) File "fixes-for-5.11.patch" is deleted. The issue is fixed upstream. File "vboxautostart.sh" is replaced by "vboxautostart-service.sh" File "vboxautostart.service" is replaced by "vboxautostart-service.service" Fixes boo#1183329 "virtualbox 6.1.18 crashes when it runs nested VM" Fixes boo#1183125 "Leap 15.3 installation in Virtualbox without VBox integration" Fixes CVE-2021-2264 and boo#1184542. The directory for the <user>.start files for autostarting VMs is moved from /etc/vbox to /etc/vbox/autostart.d. In addition, the autostart service is hardened (by Oracle). OBS-URL: https://build.opensuse.org/request/show/888128 OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=597
173 lines
9.0 KiB
Diff
173 lines
9.0 KiB
Diff
Index: VirtualBox-6.1.20/src/VBox/Additions/linux/drm/vbox_drv.c
|
|
===================================================================
|
|
--- VirtualBox-6.1.20.orig/src/VBox/Additions/linux/drm/vbox_drv.c
|
|
+++ VirtualBox-6.1.20/src/VBox/Additions/linux/drm/vbox_drv.c
|
|
@@ -330,7 +330,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.20/src/VBox/Additions/linux/drm/vbox_main.c
|
|
===================================================================
|
|
--- VirtualBox-6.1.20.orig/src/VBox/Additions/linux/drm/vbox_main.c
|
|
+++ VirtualBox-6.1.20/src/VBox/Additions/linux/drm/vbox_main.c
|
|
@@ -618,11 +618,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.20/src/VBox/Additions/linux/drm/vbox_ttm.c
|
|
===================================================================
|
|
--- VirtualBox-6.1.20.orig/src/VBox/Additions/linux/drm/vbox_ttm.c
|
|
+++ VirtualBox-6.1.20/src/VBox/Additions/linux/drm/vbox_ttm.c
|
|
@@ -271,7 +271,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,
|
|
@@ -290,7 +290,7 @@ static struct ttm_tt *vbox_ttm_tt_create
|
|
#if RTLNX_VER_MAX(5,10,0)
|
|
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)
|
|
if (ttm_tt_init(tt, bo, page_flags)) {
|
|
@@ -305,7 +305,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);
|
|
@@ -353,7 +353,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
|
|
@@ -556,7 +556,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,
|
|
#else
|
|
align >> PAGE_SHIFT, false, acc_size,
|
|
@@ -589,7 +589,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;
|
|
@@ -612,7 +612,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);
|
|
@@ -634,7 +634,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)
|
|
struct ttm_operation_ctx ctx = { false, false };
|
|
# endif
|
|
@@ -657,7 +657,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)
|
|
ret = ttm_bo_validate(&bo->bo, &bo->placement, &ctx);
|
|
@@ -680,7 +680,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;
|
|
@@ -701,7 +701,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.20/src/VBox/Additions/linux/drm/vbox_drv.h
|
|
===================================================================
|
|
--- VirtualBox-6.1.20.orig/src/VBox/Additions/linux/drm/vbox_drv.h
|
|
+++ VirtualBox-6.1.20/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.20/src/VBox/Additions/linux/drm/vbox_mode.c
|
|
===================================================================
|
|
--- VirtualBox-6.1.20.orig/src/VBox/Additions/linux/drm/vbox_mode.c
|
|
+++ VirtualBox-6.1.20/src/VBox/Additions/linux/drm/vbox_mode.c
|
|
@@ -544,7 +544,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);
|
|
@@ -719,7 +720,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);
|