1
0
forked from pool/virtualbox
virtualbox/fixes_for_leap15.2.patch
Larry Finger 999d9ff1ba Accepting request 792829 from home:lwfinger:branches:Virtualization
- Change default display type for openSUSE virtual machines. The default type
  has been VMSVGA; however, this display type fails to utilize driver vboxvideo.
  thus the display size is fixed. This problem is under investigation, but
  until a fix is found, the default is changed to VBoxVGA with file
  "add change_default_display.patch".
- Makefile in the kernel-host-source package has a typo bug fixed (boo#1168910)
  and a large number of warnings are fixed.

OBS-URL: https://build.opensuse.org/request/show/792829
OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=545
2020-04-10 09:55:34 +00:00

110 lines
4.8 KiB
Diff

Index: VirtualBox-6.1.0_RC1/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
===================================================================
--- VirtualBox-6.1.0_RC1.orig/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
+++ VirtualBox-6.1.0_RC1/src/VBox/HostDrivers/VBoxNetFlt/linux/VBoxNetFlt-linux.c
@@ -73,6 +73,10 @@
#define VBOXNETFLT_OS_SPECFIC 1
#include "../VBoxNetFltInternal.h"
+# if defined(CONFIG_SUSE_VERSION) & CONFIG_SUSE_VERSION == 15 && CONFIG_SUSE_PATCHLEVEL == 2
+# define OPENSUSE_152
+# endif
+
typedef struct VBOXNETFLTNOTIFIER {
struct notifier_block Notifier;
PVBOXNETFLTINS pThis;
@@ -924,13 +928,13 @@ static void vboxNetFltLinuxSkBufToSG(PVB
for (i = 0; i < skb_shinfo(pBuf)->nr_frags; i++)
{
skb_frag_t *pFrag = &skb_shinfo(pBuf)->frags[i];
-# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0)
+# if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0)) || defined(OPENSUSE_152)
pSG->aSegs[iSeg].cb = pFrag->bv_len;
pSG->aSegs[iSeg].pv = VBOX_SKB_KMAP_FRAG(pFrag) + pFrag->bv_offset;
-# else /* < KERNEL_VERSION(5, 4, 0) */
+# else /* < KERNEL_VERSION(5, 4, 0) */
pSG->aSegs[iSeg].cb = pFrag->size;
pSG->aSegs[iSeg].pv = VBOX_SKB_KMAP_FRAG(pFrag) + pFrag->page_offset;
-# endif /* >= KERNEL_VERSION(5, 4, 0) */
+# endif /* >= KERNEL_VERSION(5, 4, 0) */
Log6((" %p", pSG->aSegs[iSeg].pv));
pSG->aSegs[iSeg++].Phys = NIL_RTHCPHYS;
Assert(iSeg <= pSG->cSegsAlloc);
@@ -945,13 +949,13 @@ static void vboxNetFltLinuxSkBufToSG(PVB
for (i = 0; i < skb_shinfo(pFragBuf)->nr_frags; i++)
{
skb_frag_t *pFrag = &skb_shinfo(pFragBuf)->frags[i];
-# if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0)
+# if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0)) || defined(OPENSUSE_152)
pSG->aSegs[iSeg].cb = pFrag->bv_len;
pSG->aSegs[iSeg].pv = VBOX_SKB_KMAP_FRAG(pFrag) + pFrag->bv_offset;
-# else /* < KERNEL_VERSION(5, 4, 0) */
+# else /* < KERNEL_VERSION(5, 4, 0) */
pSG->aSegs[iSeg].cb = pFrag->size;
pSG->aSegs[iSeg].pv = VBOX_SKB_KMAP_FRAG(pFrag) + pFrag->page_offset;
-# endif /* >= KERNEL_VERSION(5, 4, 0) */
+# endif /* >= KERNEL_VERSION(5, 4, 0) */
Log6((" %p", pSG->aSegs[iSeg].pv));
pSG->aSegs[iSeg++].Phys = NIL_RTHCPHYS;
Assert(iSeg <= pSG->cSegsAlloc);
Index: VirtualBox-6.1.0_RC1/src/VBox/Additions/linux/drm/vbox_drv.c
===================================================================
--- VirtualBox-6.1.0_RC1.orig/src/VBox/Additions/linux/drm/vbox_drv.c
+++ VirtualBox-6.1.0_RC1/src/VBox/Additions/linux/drm/vbox_drv.c
@@ -307,11 +307,13 @@ static void vbox_master_drop(struct drm_
static struct drm_driver driver = {
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 4, 0)
.driver_features =
- DRIVER_MODESET | DRIVER_GEM | DRIVER_HAVE_IRQ |
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 4, 0)
+ DRIVER_PRIME |
+#endif
# if LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0) && !defined(RHEL_81)
DRIVER_IRQ_SHARED |
# endif /* < KERNEL_VERSION(5, 1, 0) && !defined(RHEL_81) */
- DRIVER_PRIME,
+ DRIVER_MODESET | DRIVER_GEM | DRIVER_HAVE_IRQ,
#else /* >= KERNEL_VERSION(5, 4, 0) */
.driver_features = DRIVER_MODESET | DRIVER_GEM | DRIVER_HAVE_IRQ,
#endif /* < KERNEL_VERSION(5, 4, 0) */
Index: VirtualBox-6.1.0_RC1/src/VBox/Additions/linux/drm/vbox_main.c
===================================================================
--- VirtualBox-6.1.0_RC1.orig/src/VBox/Additions/linux/drm/vbox_main.c
+++ VirtualBox-6.1.0_RC1/src/VBox/Additions/linux/drm/vbox_main.c
@@ -626,8 +626,12 @@ static inline u64 vbox_bo_mmap_offset(st
#elif LINUX_VERSION_CODE < KERNEL_VERSION(3, 12, 0) && !defined(RHEL_70)
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 /* >= KERNEL_VERSION(5, 4, 0) */
+#endif
}
int
Index: VirtualBox-6.1.0_RC1/include/iprt/cdefs.h
===================================================================
--- VirtualBox-6.1.0_RC1.orig/include/iprt/cdefs.h
+++ VirtualBox-6.1.0_RC1/include/iprt/cdefs.h
@@ -1173,14 +1173,15 @@
* Tell the compiler that we're falling through to the next case in a switch.
* @sa RT_FALL_THRU */
#if 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