1
0
forked from pool/virtualbox
virtualbox/fixes_for_leap.patch
2024-07-13 13:17:31 +00:00

517 lines
21 KiB
Diff

Index: VirtualBox-7.0.14/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
===================================================================
--- VirtualBox-7.0.14.orig/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
+++ VirtualBox-7.0.14/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
@@ -89,6 +89,17 @@
#define VBOXNETFLT_OS_SPECFIC 1
#include "../VBoxNetFltInternal.h"
+# if defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 15 && CONFIG_SUSE_PATCHLEVEL == 6
+# define OPENSUSE_156
+# endif
+# if defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 15 && CONFIG_SUSE_PATCHLEVEL == 5
+# define OPENSUSE_155
+# endif
+
+#if RTLNX_SUSE_MAJ_PREREQ(15, 6)
+#include <net/gso.h>
+#endif
+
typedef struct VBOXNETFLTNOTIFIER {
struct notifier_block Notifier;
PVBOXNETFLTINS pThis;
Index: VirtualBox-7.0.14/src/VBox/Additions/linux/drm/vbox_drv.c
===================================================================
--- VirtualBox-7.0.14.orig/src/VBox/Additions/linux/drm/vbox_drv.c
+++ VirtualBox-7.0.14/src/VBox/Additions/linux/drm/vbox_drv.c
@@ -39,6 +39,7 @@
#include "vbox_drv.h"
#include <drm/drm_crtc_helper.h>
+
#if RTLNX_VER_MIN(5,1,0) || RTLNX_RHEL_MAJ_PREREQ(8,1)
# include <drm/drm_probe_helper.h>
#endif
@@ -342,12 +343,15 @@ static void vbox_master_drop(struct drm_
}
static struct drm_driver driver = {
-#if RTLNX_VER_MAX(5,4,0) && !RTLNX_RHEL_MAJ_PREREQ(8,3) && !RTLNX_SUSE_MAJ_PREREQ(15,3)
- .driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_HAVE_IRQ |
+#if RTLNX_VER_MAX(5,4,0)
+ .driver_features =
+#if defined(OPENSUSE_152)
+ DRIVER_PRIME |
+#endif
# if RTLNX_VER_MAX(5,1,0) && !RTLNX_RHEL_MAJ_PREREQ(8,1)
DRIVER_IRQ_SHARED |
# endif
- DRIVER_PRIME,
+ DRIVER_MODESET | DRIVER_GEM | DRIVER_HAVE_IRQ,
#else /* >= 5.4.0 && RHEL >= 8.3 && SLES >= 15-SP3 */
.driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_HAVE_IRQ,
#endif /* < 5.4.0 */
@@ -395,7 +399,7 @@ static struct drm_driver driver = {
#endif
.gem_prime_import = drm_gem_prime_import,
.gem_prime_import_sg_table = vbox_gem_prime_import_sg_table,
-#if RTLNX_VER_MAX(6,6,0) && !RTLNX_RHEL_RANGE(9,4, 9,99)
+#if RTLNX_VER_MAX(6,4,0) && !RTLNX_RHEL_RANGE(9,4, 9,99)
.gem_prime_mmap = vbox_gem_prime_mmap,
#endif
Index: VirtualBox-7.0.14/src/VBox/Additions/linux/drm/vbox_main.c
===================================================================
--- VirtualBox-7.0.14.orig/src/VBox/Additions/linux/drm/vbox_main.c
+++ VirtualBox-7.0.14/src/VBox/Additions/linux/drm/vbox_main.c
@@ -663,8 +663,12 @@ static inline u64 vbox_bo_mmap_offset(st
#elif RTLNX_VER_MAX(3,12,0) && !RTLNX_RHEL_MAJ_PREREQ(7,0)
return bo->bo.addr_space_offset;
#else
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0)
+ return drm_vma_node_offset_addr(&bo->bo.base.vma_node);
+#else
return drm_vma_node_offset_addr(&bo->bo.vma_node);
#endif /* >= 5.4.0 */
+#endif
}
int
Index: VirtualBox-7.0.14/include/iprt/cdefs.h
===================================================================
--- VirtualBox-7.0.14.orig/include/iprt/cdefs.h
+++ VirtualBox-7.0.14/include/iprt/cdefs.h
@@ -1399,14 +1399,15 @@
#if RT_CLANG_PREREQ(4, 0) && RT_CPLUSPLUS_PREREQ(201100)
# define RT_FALL_THROUGH() [[clang::fallthrough]]
#elif RT_CLANG_PREREQ(12, 0) || RT_GNUC_PREREQ(7, 0)
-# define RT_FALL_THROUGH() __attribute__((__fallthrough__))
+# define FALL_THROUGH __attribute__((__fallthrough__))
#else
-# define RT_FALL_THROUGH() (void)0
+# define FALL_THROUGH (void)0
#endif
/** @def RT_FALL_THRU
* Tell the compiler that we're falling thru to the next case in a switch.
* @sa RT_FALL_THROUGH */
-#define RT_FALL_THRU() RT_FALL_THROUGH()
+#define RT_FALL_THRU() FALL_THROUGH
+#define RT_FALL_THROUGH() FALL_THROUGH
/** @def RT_IPRT_FORMAT_ATTR
Index: VirtualBox-7.0.14/kBuild/header.kmk
===================================================================
--- VirtualBox-7.0.14.orig/kBuild/header.kmk
+++ VirtualBox-7.0.14/kBuild/header.kmk
@@ -764,7 +764,7 @@ RMDIR_EXT := $(KBUILD_BIN_PATH)/kmk_rm
RMDIR_INT := kmk_builtin_rmdir
RMDIR := $(RMDIR_INT)
-SED_EXT := $(KBUILD_BIN_PATH)/kmk_sed$(HOSTSUFF_EXE)
+SED_EXT := /usr/bin/kmk_sed$(HOSTSUFF_EXE)
SED_INT := $(SED_EXT)
SED := $(SED_EXT)
Index: VirtualBox-7.0.14/configure
===================================================================
--- VirtualBox-7.0.14.orig/configure
+++ VirtualBox-7.0.14/configure
@@ -2039,7 +2039,7 @@ check_kbuild()
fi
echo "export KBUILD_PATH KBUILD_DEVTOOLS PATH" >> $ENV
echo "unset path_kbuild_bin path_tools_bin" >> $ENV
- KBUILD_SED="$KBUILDDIR_BIN/kmk_sed"
+ KBUILD_SED="/usr/bin/kmk_sed"
echo '' >> $ENV
echo "# Legacy - do not use:" >> $ENV
@@ -2049,7 +2049,7 @@ check_kbuild()
echo '' >> $ENV
elif check_avail "kmk" KBUILDDIR really; then
# check for installed kBuild
- KBUILD_SED="`which_wrapper kmk_sed`"
+ KBUILD_SED="/usr/bin/kmk_sed"
else
fail
fi
Index: VirtualBox-7.0.14/tools/bin/backport-commit.sh
===================================================================
--- VirtualBox-7.0.14.orig/tools/bin/backport-commit.sh
+++ VirtualBox-7.0.14/tools/bin/backport-commit.sh
@@ -29,7 +29,7 @@
#
# Determin script dir so we can source the common bits.
#
-MY_SED=kmk_sed
+MY_SED=/usr/bin/kmk_sed
MY_SCRIPT_DIR=`echo "$0" | "${MY_SED}" -e 's|\\\|/|g' -e 's|^\(.*\)/[^/][^/]*$|\1|'` # \ -> / is for windows.
if test "${MY_SCRIPT_DIR}" = "$0"; then
MY_SCRIPT_DIR=`pwd -L`
Index: VirtualBox-7.0.14/tools/bin/backport-common.sh
===================================================================
--- VirtualBox-7.0.14.orig/tools/bin/backport-common.sh
+++ VirtualBox-7.0.14/tools/bin/backport-common.sh
@@ -1,4 +1,4 @@
-# $Id: backport-common.sh $
+ $Id: backport-common.sh $
## @file
# Common backport script bits.
#
@@ -33,7 +33,7 @@
MY_PRINTF=kmk_printf
MY_RM=kmk_rm
MY_SVN=svn
- MY_SED=kmk_sed
+ MY_SED=/usr/bin/kmk_sed
#
# Functions.
Index: VirtualBox-7.0.14/tools/bin/backport-merge-and-commit.sh
===================================================================
--- VirtualBox-7.0.14.orig/tools/bin/backport-merge-and-commit.sh
+++ VirtualBox-7.0.14/tools/bin/backport-merge-and-commit.sh
@@ -29,7 +29,7 @@
#
# Determin script dir so we can invoke the two worker scripts.
#
-MY_SED=kmk_sed
+MY_SED=/usr/bin/kmk_sed
MY_SCRIPT_DIR=`echo "$0" | "${MY_SED}" -e 's|\\\|/|g' -e 's|^\(.*\)/[^/][^/]*$|\1|'` # \ -> / is for windows.
if test "${MY_SCRIPT_DIR}" = "$0"; then
MY_SCRIPT_DIR=`pwd -L`
Index: VirtualBox-7.0.14/tools/bin/backport-merge.sh
===================================================================
--- VirtualBox-7.0.14.orig/tools/bin/backport-merge.sh
+++ VirtualBox-7.0.14/tools/bin/backport-merge.sh
@@ -29,7 +29,7 @@
#
# Determin script dir so we can source the common bits.
#
-MY_SED=kmk_sed
+MY_SED=/usr/bin/kmk_sed
MY_SCRIPT_DIR=`echo "$0" | "${MY_SED}" -e 's|\\\|/|g' -e 's|^\(.*\)/[^/][^/]*$|\1|'` # \ -> / is for windows.
if test "${MY_SCRIPT_DIR}" = "$0"; then
MY_SCRIPT_DIR=`pwd -L`
Index: VirtualBox-7.0.14/src/VBox/Main/Makefile.kmk
===================================================================
--- VirtualBox-7.0.14.orig/src/VBox/Main/Makefile.kmk
+++ VirtualBox-7.0.14/src/VBox/Main/Makefile.kmk
@@ -264,7 +264,7 @@ $(VBOX_XIDL_FILE).ts +| $(VBOX_XIDL_FILE
| $$(dir $$@)
$(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
$(QUIET)$(VBOX_XSLTPROC) -o $(VBOX_XIDL_FILE).ts-tmp $(VBOX_PATH_MAIN_SRC)/idl/docstrip.xsl $(VBOX_XIDL_FILE_SRC)
- $(QUIET)$(SED) -e 's/ *$(DOLLAR)//g' -e '/^$(DOLLAR)/d' --output $(VBOX_XIDL_FILE).ts $(VBOX_XIDL_FILE).ts-tmp
+ /usr/bin/kmk_sed -e 's/ *$(DOLLAR)//g' -e '/^$(DOLLAR)/d' --output $(VBOX_XIDL_FILE).ts $(VBOX_XIDL_FILE).ts-tmp
$(QUIET)$(RM) -- $(VBOX_XIDL_FILE).ts-tmp
$(QUIET)$(CP) --changed -fv -- $(VBOX_XIDL_FILE).ts $(VBOX_XIDL_FILE)
Index: VirtualBox-7.0.14/src/VBox/Runtime/Makefile.kmk
===================================================================
--- VirtualBox-7.0.14.orig/src/VBox/Runtime/Makefile.kmk
+++ VirtualBox-7.0.14/src/VBox/Runtime/Makefile.kmk
@@ -4421,6 +4421,7 @@ $(foreach lib,RuntimeR3 RuntimeBldProg V
#
# Generate the status code data.
#
+SED = "/usr/bin/kmk_sed"
$(IPRT_OUT_DIR)/errmsgdata.h: \
$(VBOX_PATH_RUNTIME_SRC)/common/err/errmsg.sed \
$(PATH_ROOT)/include/iprt/err.h \
Index: VirtualBox-7.0.14/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
===================================================================
--- VirtualBox-7.0.14.orig/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
+++ VirtualBox-7.0.14/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
@@ -147,9 +147,9 @@
#include <linux/interrupt.h>
#include <linux/completion.h>
#include <linux/compiler.h>
-#if RTLNX_VER_MIN(5,9,0) || RTLNX_SUSE_MAJ_PREREQ(15,3) /* linux/fs.h defined HAVE_UNLOCKED_IOCTL from 2.6.11 up to 5.9 (also 5.3.18-56 in SLES15-SP3), when it became an implicit assumption. */
+//#if RTLNX_VER_MIN(5,9,0) || RTLNX_SUSE_MAJ_PREREQ(15,3) /* linux/fs.h defined HAVE_UNLOCKED_IOCTL from 2.6.11 up to 5.9 (also 5.3.18-56 in SLES15-SP3), when it became an implicit assumption. */
# define HAVE_UNLOCKED_IOCTL 1 /* We use this in a couple of places, so for now just define it for 5.9+ too. */
-#endif
+//#endif
#if !defined(HAVE_UNLOCKED_IOCTL) && RTLNX_VER_MAX(2,6,38)
# include <linux/smp_lock.h>
#endif
Index: VirtualBox-7.0.14/src/libs/xpcom18a4/python/src/PyXPCOM.h
===================================================================
--- VirtualBox-7.0.14.orig/src/libs/xpcom18a4/python/src/PyXPCOM.h
+++ VirtualBox-7.0.14/src/libs/xpcom18a4/python/src/PyXPCOM.h
@@ -191,7 +191,7 @@ extern "C" PyAPI_FUNC(const char *) PyUn
# endif
/* PyUnicode_AsUTF8 is just PyUnicode_AsUTF8AndSize without returning a size. */
-# define PyUnicode_AsUTF8(o) PyUnicode_AsUTF8AndSize(o, NULL)
+// # define PyUnicode_AsUTF8(o) (const char *)PyUnicode_AsUTF8AndSize(o, NULL)
DECLINLINE(int) PyRun_SimpleString(const char *pszCode)
{
Index: VirtualBox-7.0.14/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
===================================================================
--- VirtualBox-7.0.14.orig/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
+++ VirtualBox-7.0.14/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
@@ -121,7 +121,7 @@ void DoLogMessage(const char *methodName
#if PY_MAJOR_VERSION <= 2
c += PyString_AsString(repr);
#else
- c += PyUnicode_AsUTF8(repr);
+ c += PyUnicode_AsUTF8AndSize(repr, NULL);
#endif
Py_DECREF(repr);
}
@@ -203,7 +203,7 @@ PRBool PyXPCOM_FormatGivenException(nsCS
#if PY_MAJOR_VERSION <= 2
streamout += PyString_AsString(temp);
#else
- streamout += PyUnicode_AsUTF8(temp);
+ streamout += PyUnicode_AsUTF8AndSize(temp, NULL);
#endif
Py_DECREF(temp);
} else
@@ -215,7 +215,7 @@ PRBool PyXPCOM_FormatGivenException(nsCS
#if PY_MAJOR_VERSION <= 2
streamout += PyString_AsString(temp);
#else
- streamout += PyUnicode_AsUTF8(temp);
+ streamout += PyUnicode_AsUTF8AndSize(temp, NULL);
#endif
Py_DECREF(temp);
} else
@@ -440,10 +440,10 @@ char *PyTraceback_AsString(PyObject *exc
#if PY_MAJOR_VERSION <= 2
char *tempResult = (char *)PyString_AsString(obResult);
#elif PY_MINOR_VERSION <= 6
- char *tempResult = (char *)PyUnicode_AsUTF8(obResult);
+ char *tempResult = (char *)PyUnicode_AsUTF8AndSize(obResult, NULL);
#else
/* PyUnicode_AsUTF8() is const char * as of Python 3.7, char * earlier. */
- const char *tempResult = (const char *)PyUnicode_AsUTF8(obResult);
+ const char *tempResult = (const char *)PyUnicode_AsUTF8AndSize(obResult, NULL);
#endif
result = (char *)PyMem_Malloc(strlen(tempResult)+1);
if (result==NULL)
Index: VirtualBox-7.0.14/src/libs/xpcom18a4/python/src/PyGBase.cpp
===================================================================
--- VirtualBox-7.0.14.orig/src/libs/xpcom18a4/python/src/PyGBase.cpp
+++ VirtualBox-7.0.14/src/libs/xpcom18a4/python/src/PyGBase.cpp
@@ -117,7 +117,7 @@ PyG_Base::PyG_Base(PyObject *instance, c
#if PY_MAJOR_VERSION <= 2
szRepr = PyString_AsString(r);
#else
- szRepr = PyUnicode_AsUTF8(r);
+ szRepr = PyUnicode_AsUTF8AndSize(r, NULL);
#endif
if (szRepr==NULL) szRepr = "";
int reprOffset = *szRepr=='<' ? 1 : 0;
Index: VirtualBox-7.0.14/src/libs/xpcom18a4/python/src/PyIID.cpp
===================================================================
--- VirtualBox-7.0.14.orig/src/libs/xpcom18a4/python/src/PyIID.cpp
+++ VirtualBox-7.0.14/src/libs/xpcom18a4/python/src/PyIID.cpp
@@ -137,7 +137,7 @@ Py_nsIID::IIDFromPyObject(PyObject *ob,
ok = iid.Parse(PyString_AsString(ob));
#else
if (PyUnicode_Check(ob)) {
- ok = iid.Parse(PyUnicode_AsUTF8(ob));
+ ok = iid.Parse(PyUnicode_AsUTF8AndSize(ob, NULL));
#endif
if (!ok) {
PyXPCOM_BuildPyException(NS_ERROR_ILLEGAL_VALUE);
Index: VirtualBox-7.0.14/src/libs/xpcom18a4/python/src/VariantUtils.cpp
===================================================================
--- VirtualBox-7.0.14.orig/src/libs/xpcom18a4/python/src/VariantUtils.cpp
+++ VirtualBox-7.0.14/src/libs/xpcom18a4/python/src/VariantUtils.cpp
@@ -141,7 +141,7 @@ PyObject *PyObject_FromNSString( const n
#if PY_MAJOR_VERSION <= 2
char* dest = (char *)PyString_AS_STRING(ret);
#else
- char* dest = (char *)PyUnicode_AsUTF8(ret);
+ char* dest = (char *)PyUnicode_AsUTF8AndSize(ret, NULL);
#endif
copy_string(s.BeginReading(fromBegin), s.EndReading(fromEnd), dest);
}
@@ -393,7 +393,7 @@ PRBool FillSingleArray(void *array_ptr,
#if PY_MAJOR_VERSION <= 2
sequence_ob = PyObject_Str(sequence_ob);
#else
- sequence_ob = PyUnicode_AsUTF8String(sequence_ob);
+ sequence_ob = (PyObject *)PyUnicode_AsUTF8AndSize(sequence_ob, NULL);
#endif
} else
release_seq = PR_FALSE;
@@ -402,7 +402,7 @@ PRBool FillSingleArray(void *array_ptr,
#if PY_MAJOR_VERSION <= 2
memcpy(pthis, PyString_AS_STRING(sequence_ob), sequence_size);
#else
- memcpy(pthis, PyUnicode_AsUTF8(sequence_ob), sequence_size);
+ memcpy(pthis, PyUnicode_AsUTF8AndSize(sequence_ob, NULL), sequence_size);
#endif
if (release_seq)
{
@@ -477,7 +477,7 @@ PRBool FillSingleArray(void *array_ptr,
PyErr_SetString(PyExc_TypeError, "This parameter must be a unicode object");
BREAK_FALSE;
}
- FILL_SIMPLE_POINTER( char, *PyUnicode_AsUTF8(val) );
+ FILL_SIMPLE_POINTER( char, *PyUnicode_AsUTF8AndSize(val, NULL) );
#endif
break;
@@ -549,7 +549,7 @@ PRBool FillSingleArray(void *array_ptr,
PyErr_SetString(PyExc_TypeError, "This parameter must be a unicode object");
BREAK_FALSE;
}
- if ((val_use = PyUnicode_AsUTF8String(val))==NULL)
+ if ((val_use = (PyObject *)PyUnicode_AsUTF8AndSize(val, NULL))==NULL)
BREAK_FALSE;
const char *sz = PyBytes_AS_STRING(val_use);
Index: VirtualBox-7.0.14/src/VBox/Frontends/VBoxSDL/VBoxSDL.cpp
===================================================================
--- VirtualBox-7.0.14.orig/src/VBox/Frontends/VBoxSDL/VBoxSDL.cpp
+++ VirtualBox-7.0.14/src/VBox/Frontends/VBoxSDL/VBoxSDL.cpp
@@ -710,7 +710,7 @@ static const char *keyModToStr(unsigned
RT_CASE_RET_STR(KMOD_NUM);
RT_CASE_RET_STR(KMOD_CAPS);
RT_CASE_RET_STR(KMOD_MODE);
- RT_CASE_RET_STR(KMOD_SCROLL);
+ RT_CASE_RET_STR(KMOD_RESERVED);
default:
break;
}
Index: VirtualBox-7.0.14/src/VBox/Additions/linux/drm/vbox_drv.h
===================================================================
--- VirtualBox-7.0.14.orig/src/VBox/Additions/linux/drm/vbox_drv.h
+++ VirtualBox-7.0.14/src/VBox/Additions/linux/drm/vbox_drv.h
@@ -39,6 +39,7 @@
# pragma once
#endif
+
#include <linux/version.h>
/* iprt/linux/version.h copy - start */
Index: VirtualBox-7.0.14/src/VBox/Additions/linux/drm/vbox_ttm.c
===================================================================
--- VirtualBox-7.0.14.orig/src/VBox/Additions/linux/drm/vbox_ttm.c
+++ VirtualBox-7.0.14/src/VBox/Additions/linux/drm/vbox_ttm.c
@@ -38,6 +38,10 @@
# include <drm/ttm/ttm_tt.h>
#endif
+# if defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 15 && CONFIG_SUSE_PATCHLEVEL == 5
+# define OPENSUSE_155
+# endif
+
#if RTLNX_VER_MIN(5,11,0) || RTLNX_RHEL_MAJ_PREREQ(8,5)
# include <drm/drm_gem.h>
# include <drm/drm_gem_ttm_helper.h>
@@ -330,11 +334,9 @@ static struct ttm_tt *vbox_ttm_tt_create
#else
if (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) {
#endif
-
kfree(tt);
return NULL;
}
-
return tt;
}
Index: VirtualBox-7.0.14/src/VBox/Additions/linux/drm/vbox_fb.c
===================================================================
--- VirtualBox-7.0.14.orig/src/VBox/Additions/linux/drm/vbox_fb.c
+++ VirtualBox-7.0.14/src/VBox/Additions/linux/drm/vbox_fb.c
@@ -47,6 +47,7 @@
#include <drm/drm_crtc.h>
#include <drm/drm_fb_helper.h>
#include <drm/drm_crtc_helper.h>
+#include <drm/drm_framebuffer.h>
#include <VBoxVideo.h>
@@ -196,7 +197,7 @@ static struct fb_ops vboxfb_ops = {
.owner = THIS_MODULE,
.fb_check_var = drm_fb_helper_check_var,
.fb_set_par = drm_fb_helper_set_par,
-#if RTLNX_VER_MIN(6,5,0) || RTLNX_RHEL_RANGE(9,4, 9,99)
+#if RTLNX_VER_MIN(6, 4, 0) || RTLNX_RHEL_RANGE(9,4, 9,99)
.fb_read = fb_sys_read,
.fb_write = fb_sys_write,
.fb_fillrect = sys_fillrect,
@@ -351,7 +352,7 @@ static int vboxfb_create(struct drm_fb_h
* The last flag forces a mode set on VT switches even if the kernel
* does not think it is needed.
*/
-#if RTLNX_VER_MIN(6,6,0)
+#if RTLNX_VER_MIN(6,4,0)
info->flags = FBINFO_MISC_ALWAYS_SETPAR;
#else
info->flags = FBINFO_DEFAULT | FBINFO_MISC_ALWAYS_SETPAR;
Index: VirtualBox-7.0.14/src/VBox/Additions/linux/drm/vbox_mode.c
===================================================================
--- VirtualBox-7.0.14.orig/src/VBox/Additions/linux/drm/vbox_mode.c
+++ VirtualBox-7.0.14/src/VBox/Additions/linux/drm/vbox_mode.c
@@ -53,6 +53,7 @@
#if RTLNX_VER_MIN(6,0,0) || RTLNX_RHEL_RANGE(8,8, 8,99) || RTLNX_RHEL_MAJ_PREREQ(9,2) || RTLNX_SUSE_MAJ_PREREQ(15,5)
# include <drm/drm_edid.h>
#endif
+#include <drm/drm_edid.h>
#include "VBoxVideo.h"
Index: VirtualBox-7.0.14/src/VBox/HostDrivers/VBoxNetAdp/linux/VBoxNetAdp-linux.c
===================================================================
--- VirtualBox-7.0.14.orig/src/VBox/HostDrivers/VBoxNetAdp/linux/VBoxNetAdp-linux.c
+++ VirtualBox-7.0.14/src/VBox/HostDrivers/VBoxNetAdp/linux/VBoxNetAdp-linux.c
@@ -77,7 +77,7 @@
#define VBOXNETADP_FROM_IFACE(iface) ((PVBOXNETADP) ifnet_softc(iface))
/** Set netdev MAC address. */
-#if RTLNX_VER_MIN(5,17,0)
+#if RTLNX_VER_MIN(5,17,0) || RTLNX_SUSE_MAJ_PREREQ(15,5)
# define VBOX_DEV_ADDR_SET(dev, addr, len) dev_addr_mod(dev, 0, addr, len)
#else /* < 5.17.0 */
# define VBOX_DEV_ADDR_SET(dev, addr, len) memcpy(dev->dev_addr, addr, len)
Index: VirtualBox-7.0.14/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
===================================================================
--- VirtualBox-7.0.14.orig/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
+++ VirtualBox-7.0.14/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
@@ -1342,7 +1342,7 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
fWrite, /* force write access. */
# endif
&pMemLnx->apPages[0] /* Page array. */
-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0)
+# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0) && !RTLNX_SUSE_MAJ_PREREQ(15, 6)
, papVMAs /* vmas */
# endif
);
@@ -1389,7 +1389,7 @@ DECLHIDDEN(int) rtR0MemObjNativeLockUser
fWrite, /* force write access. */
# endif
&pMemLnx->apPages[0] /* Page array. */
-# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0)
+# if GET_USER_PAGES_API < KERNEL_VERSION(6, 5, 0) && && !defined(OPENSUSE_156)
, papVMAs /* vmas */
# endif
);
Index: VirtualBox-7.0.14/src/VBox/Additions/linux/sharedfolders/regops.c
===================================================================
--- VirtualBox-7.0.14.orig/src/VBox/Additions/linux/sharedfolders/regops.c
+++ VirtualBox-7.0.14/src/VBox/Additions/linux/sharedfolders/regops.c
@@ -270,8 +270,12 @@ static ssize_t vbsf_iov_iter_get_pages(s
size_t cPagesLocked;
down_read(&pTask->mm->mmap_sem);
- cPagesLocked = get_user_pages(pTask, pTask->mm, uPtrFrom, cPages, iter->v_write, 1 /*force*/, papPages, NULL);
- up_read(&pTask->mm->mmap_sem);
+#if defined(OPENSUSE_156)
+ cPagesLocked = get_user_pages(pTask, pTask->mm, uPtrFrom, cPages);
+#else
+ cPagesLocked = get_user_pages(pTask, pTask->mm, uPtrFrom, cPages, iter->v_write, 1 /*force*/, papPages, NULL);
+#endif
+ up_read(&pTask->mm->mmap_sem);
if (cPagesLocked == cPages) {
size_t cbRet = (cPages << PAGE_SHIFT) - offPg0;
if (cPages == cPagesLeft) {