virtualbox/kernel-6.9.patch
Larry Finger 507edc9de0 Accepting request 1169265 from home:lwfinger:branches:Virtualization
- Fix build error on Factory;Staging due to libxml 2.12.6. Added file
  libxml21206.patch.
  Added file kernel-6.9.patch to fix builds on kernel 6.9.

OBS-URL: https://build.opensuse.org/request/show/1169265
OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=734
2024-04-19 16:40:59 +00:00

76 lines
3.0 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
@@ -938,8 +938,13 @@ static void vboxNetFltLinuxSkBufToSG(PVB
{
skb_frag_t *pFrag = &skb_shinfo(pBuf)->frags[i];
# if RTLNX_VER_MIN(5,4,0) || RTLNX_SUSE_MAJ_PREREQ(15, 2)
- pSG->aSegs[iSeg].cb = pFrag->bv_len;
- pSG->aSegs[iSeg].pv = VBOX_SKB_KMAP_FRAG(pFrag) + pFrag->bv_offset;
+# if RTLNX_VER_MIN(6,9,0)
+ pSG->aSegs[iSeg].cb = pFrag->len;
+ pSG->aSegs[iSeg].pv = VBOX_SKB_KMAP_FRAG(pFrag) + pFrag->offset;
+# else
+ pSG->aSegs[iSeg].cb = pFrag->bv_len;
+ pSG->aSegs[iSeg].pv = VBOX_SKB_KMAP_FRAG(pFrag) + pFrag->bv_offset;
+#endif
# else /* < KERNEL_VERSION(5, 4, 0) */
pSG->aSegs[iSeg].cb = pFrag->size;
pSG->aSegs[iSeg].pv = VBOX_SKB_KMAP_FRAG(pFrag) + pFrag->page_offset;
@@ -959,8 +964,13 @@ static void vboxNetFltLinuxSkBufToSG(PVB
{
skb_frag_t *pFrag = &skb_shinfo(pFragBuf)->frags[i];
# if RTLNX_VER_MIN(5,4,0) || RTLNX_SUSE_MAJ_PREREQ(15, 2)
- pSG->aSegs[iSeg].cb = pFrag->bv_len;
+# if RTLNX_VER_MIN(6,9,0)
+ pSG->aSegs[iSeg].cb = pFrag->len;
+ pSG->aSegs[iSeg].pv = VBOX_SKB_KMAP_FRAG(pFrag) + pFrag->offset;
+#else
+ pSG->aSegs[iSeg].cb = pFrag->bv_len;
pSG->aSegs[iSeg].pv = VBOX_SKB_KMAP_FRAG(pFrag) + pFrag->bv_offset;
+#endif
# else /* < KERNEL_VERSION(5, 4, 0) */
pSG->aSegs[iSeg].cb = pFrag->size;
pSG->aSegs[iSeg].pv = VBOX_SKB_KMAP_FRAG(pFrag) + pFrag->page_offset;
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
@@ -1174,7 +1174,11 @@ RTDECL(struct page *) rtR0MemObjLinuxVir
u.Four = *p4d_offset(&u.Global, ulAddr);
if (RT_UNLIKELY(p4d_none(u.Four)))
return NULL;
+# if RTLNX_VER_MIN(6,9,0)
+ if (p4d_page(u.Four))
+#else
if (p4d_large(u.Four))
+#endif
{
pPage = p4d_page(u.Four);
AssertReturn(pPage, NULL);
@@ -1190,7 +1194,11 @@ RTDECL(struct page *) rtR0MemObjLinuxVir
if (RT_UNLIKELY(pud_none(u.Upper)))
return NULL;
# if RTLNX_VER_MIN(2,6,25)
+# if RTLNX_VER_MIN(6,9,0)
+ if (pud_page(u.Upper))
+#else
if (pud_large(u.Upper))
+#endif
{
pPage = pud_page(u.Upper);
AssertReturn(pPage, NULL);
@@ -1206,7 +1214,11 @@ RTDECL(struct page *) rtR0MemObjLinuxVir
if (RT_UNLIKELY(pmd_none(u.Middle)))
return NULL;
#if RTLNX_VER_MIN(2,6,0)
+# if RTLNX_VER_MIN(6,9,0)
+ if (pmd_page(u.Middle))
+#else
if (pmd_large(u.Middle))
+#endif
{
pPage = pmd_page(u.Middle);
AssertReturn(pPage, NULL);