* [meta-oe][PATCH] vboxguestdrivers: upgrade 6.1.16 -> 6.1.18
@ 2021-01-20 13:01 Gianfranco
2021-01-21 8:26 ` [oe] " Khem Raj
0 siblings, 1 reply; 4+ messages in thread
From: Gianfranco @ 2021-01-20 13:01 UTC (permalink / raw)
To: openembedded-devel; +Cc: Gianfranco Costamagna, Gianfranco Costamagna
Drop kernel 5.10 build fixes patches, now part of upstream codebase
Signed-off-by: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
Signed-off-by: Gianfranco Costamagna <locutusofborg@debian.org>
---
...-linux-drm-Adjustment-for-Linux-5.10.patch | 321 ------------------
...0drv-linux.c-Changes-to-support-the-.patch | 119 -------
...justment-for-linux-5.10-TASK_SIZE_MA.patch | 46 ---
...s_6.1.16.bb => vboxguestdrivers_6.1.18.bb} | 7 +-
4 files changed, 2 insertions(+), 491 deletions(-)
delete mode 100644 meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch
delete mode 100644 meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch
delete mode 100644 meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch
rename meta-oe/recipes-support/vboxguestdrivers/{vboxguestdrivers_6.1.16.bb => vboxguestdrivers_6.1.18.bb} (88%)
diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch
deleted file mode 100644
index a444901f8..000000000
--- a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch
+++ /dev/null
@@ -1,321 +0,0 @@
-From b6c765d693a0833b94cb2e91b32842570c3458d2 Mon Sep 17 00:00:00 2001
-From: vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>
-Date: Tue, 15 Dec 2020 22:29:56 +0000
-Subject: [PATCH] Additions/linux/drm: Adjustment for Linux 5.10.
-
-Upstream-Status: Backport
-
-git-svn-id: http://www.virtualbox.org/svn/vbox@87092 cfe28804-0f27-0410-a406-dd0f0b0b656f
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
-
----
- src/VBox/Additions/linux/drm/vbox_drv.h | 10 +-
- src/VBox/Additions/linux/drm/vbox_fb.c | 2 +-
- .../src/VBox/Additions/linux/drm/vbox_mode.c | 2 +-
- src/VBox/Additions/linux/drm/vbox_ttm.c | 99 +++++++++++++++++--
- 4 files changed, 99 insertions(+), 14 deletions(-)
-
-diff --git a/src/VBox/Additions/linux/drm/vbox_drv.h b/src/VBox/Additions/linux/drm/vbox_drv.h
-index 8c85371749..7937f2f2d2 100644
---- a/src/VBox/Additions/linux/drm/vbox_drv.h
-+++ b/src/VBox/Additions/linux/drm/vbox_drv.h
-@@ -175,6 +175,9 @@
- #include <drm/ttm/ttm_placement.h>
- #include <drm/ttm/ttm_memory.h>
- #include <drm/ttm/ttm_module.h>
-+#if RTLNX_VER_MIN(5,10,0)
-+# include <drm/ttm/ttm_resource.h>
-+#endif
-
- #include "vboxvideo_guest.h"
- #include "vboxvideo_vbe.h"
-@@ -444,7 +447,10 @@ int vbox_bo_create(struct drm_device *dev, int size, int align,
- int vbox_gem_create(struct drm_device *dev,
- u32 size, bool iskernel, struct drm_gem_object **obj);
-
--int vbox_bo_pin(struct vbox_bo *bo, u32 pl_flag, u64 *gpu_addr);
-+#define VBOX_MEM_TYPE_VRAM 0x1
-+#define VBOX_MEM_TYPE_SYSTEM 0x2
-+
-+int vbox_bo_pin(struct vbox_bo *bo, u32 mem_type, u64 *gpu_addr);
- int vbox_bo_unpin(struct vbox_bo *bo);
-
- static inline int vbox_bo_reserve(struct vbox_bo *bo, bool no_wait)
-@@ -469,7 +475,7 @@ static inline void vbox_bo_unreserve(struct vbox_bo *bo)
- ttm_bo_unreserve(&bo->bo);
- }
-
--void vbox_ttm_placement(struct vbox_bo *bo, int domain);
-+void vbox_ttm_placement(struct vbox_bo *bo, u32 mem_type);
- int vbox_bo_push_sysram(struct vbox_bo *bo);
- int vbox_mmap(struct file *filp, struct vm_area_struct *vma);
-
-diff --git a/src/VBox/Additions/linux/drm/vbox_fb.c b/src/VBox/Additions/linux/drm/vbox_fb.c
-index adead98d3d..7182d9da1a 100644
---- a/src/VBox/Additions/linux/drm/vbox_fb.c
-+++ b/src/VBox/Additions/linux/drm/vbox_fb.c
-@@ -295,7 +295,7 @@ static int vboxfb_create(struct drm_fb_helper *helper,
- if (ret)
- return ret;
-
-- ret = vbox_bo_pin(bo, TTM_PL_FLAG_VRAM, NULL);
-+ ret = vbox_bo_pin(bo, VBOX_MEM_TYPE_VRAM, NULL);
- if (ret) {
- vbox_bo_unreserve(bo);
- return ret;
-diff --git a/src/VBox/Additions/linux/drm/vbox_mode.c b/src/VBox/Additions/linux/drm/vbox_mode.c
-index ce7d135cb6..5557db5ef8 100644
---- a/src/VBox/Additions/linux/drm/vbox_mode.c
-+++ b/src/VBox/Additions/linux/drm/vbox_mode.c
-@@ -227,7 +227,7 @@ static int vbox_crtc_set_base(struct drm_crtc *crtc,
- if (ret)
- return ret;
-
-- ret = vbox_bo_pin(bo, TTM_PL_FLAG_VRAM, &gpu_addr);
-+ ret = vbox_bo_pin(bo, VBOX_MEM_TYPE_VRAM, &gpu_addr);
- vbox_bo_unreserve(bo);
- if (ret)
- return ret;
-diff --git a/src/VBox/Additions/linux/drm/vbox_ttm.c b/src/VBox/Additions/linux/drm/vbox_ttm.c
-index bf87aabc05..5eac926a42 100644
---- a/src/VBox/Additions/linux/drm/vbox_ttm.c
-+++ b/src/VBox/Additions/linux/drm/vbox_ttm.c
-@@ -41,6 +41,7 @@
- #define PLACEMENT_FLAGS(placement) ((placement).flags)
- #endif
-
-+
- static inline struct vbox_private *vbox_bdev(struct ttm_bo_device *bd)
- {
- return container_of(bd, struct vbox_private, ttm.bdev);
-@@ -125,6 +126,7 @@ static bool vbox_ttm_bo_is_vbox_bo(struct ttm_buffer_object *bo)
- return false;
- }
-
-+#if RTLNX_VER_MAX(5,10,0)
- static int
- vbox_bo_init_mem_type(struct ttm_bo_device *bdev, u32 type,
- struct ttm_mem_type_manager *man)
-@@ -148,6 +150,7 @@ vbox_bo_init_mem_type(struct ttm_bo_device *bdev, u32 type,
-
- return 0;
- }
-+#endif
-
- static void
- vbox_bo_evict_flags(struct ttm_buffer_object *bo, struct ttm_placement *pl)
-@@ -157,7 +160,7 @@ vbox_bo_evict_flags(struct ttm_buffer_object *bo, struct ttm_placement *pl)
- if (!vbox_ttm_bo_is_vbox_bo(bo))
- return;
-
-- vbox_ttm_placement(vboxbo, TTM_PL_FLAG_SYSTEM);
-+ vbox_ttm_placement(vboxbo, VBOX_MEM_TYPE_SYSTEM);
- *pl = vboxbo->placement;
- }
-
-@@ -167,11 +170,12 @@ static int vbox_bo_verify_access(struct ttm_buffer_object *bo,
- return 0;
- }
-
-+#if RTLNX_VER_MAX(5,10,0)
- static int vbox_ttm_io_mem_reserve(struct ttm_bo_device *bdev,
- struct ttm_mem_reg *mem)
- {
-- struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type];
- struct vbox_private *vbox = vbox_bdev(bdev);
-+ struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type];
-
- mem->bus.addr = NULL;
- mem->bus.offset = 0;
-@@ -194,12 +198,53 @@ static int vbox_ttm_io_mem_reserve(struct ttm_bo_device *bdev,
- }
- return 0;
- }
-+#else
-+static int vbox_ttm_io_mem_reserve(struct ttm_bo_device *bdev,
-+ struct ttm_resource *mem)
-+{
-+ struct vbox_private *vbox = vbox_bdev(bdev);
-+ mem->bus.addr = NULL;
-+ mem->bus.offset = 0;
-+ mem->size = mem->num_pages << PAGE_SHIFT;
-+ mem->start = 0;
-+ mem->bus.is_iomem = false;
-+ switch (mem->mem_type) {
-+ case TTM_PL_SYSTEM:
-+ /* system memory */
-+ return 0;
-+ case TTM_PL_VRAM:
-+ mem->bus.offset = mem->start << PAGE_SHIFT;
-+ mem->start = pci_resource_start(vbox->dev->pdev, 0);
-+ mem->bus.is_iomem = true;
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+ return 0;
-+}
-+#endif
-
-+
-+
-+#if RTLNX_VER_MIN(5,10,0)
-+static void vbox_ttm_io_mem_free(struct ttm_bo_device *bdev,
-+ struct ttm_resource *mem)
-+{
-+}
-+#else
- static void vbox_ttm_io_mem_free(struct ttm_bo_device *bdev,
- struct ttm_mem_reg *mem)
- {
- }
-+#endif
-
-+#if RTLNX_VER_MIN(5,10,0)
-+static void vbox_ttm_tt_destroy(struct ttm_bo_device *bdev, struct ttm_tt *tt)
-+{
-+ ttm_tt_fini(tt);
-+ kfree(tt);
-+}
-+#else
- static void vbox_ttm_backend_destroy(struct ttm_tt *tt)
- {
- ttm_tt_fini(tt);
-@@ -209,6 +254,7 @@ static void vbox_ttm_backend_destroy(struct ttm_tt *tt)
- static struct ttm_backend_func vbox_tt_backend_func = {
- .destroy = &vbox_ttm_backend_destroy,
- };
-+#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)
- static struct ttm_tt *vbox_ttm_tt_create(struct ttm_bo_device *bdev,
-@@ -226,7 +272,9 @@ static struct ttm_tt *vbox_ttm_tt_create(struct ttm_buffer_object *bo,
- if (!tt)
- return NULL;
-
-+#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 (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) {
- #else
-@@ -261,11 +309,16 @@ static void vbox_ttm_tt_unpopulate(struct ttm_tt *ttm)
-
- static struct ttm_bo_driver vbox_bo_driver = {
- .ttm_tt_create = vbox_ttm_tt_create,
-+#if RTLNX_VER_MIN(5,10,0)
-+ .ttm_tt_destroy = vbox_ttm_tt_destroy,
-+#endif
- #if RTLNX_VER_MAX(4,17,0)
- .ttm_tt_populate = vbox_ttm_tt_populate,
- .ttm_tt_unpopulate = vbox_ttm_tt_unpopulate,
- #endif
-+#if RTLNX_VER_MAX(5,10,0)
- .init_mem_type = vbox_bo_init_mem_type,
-+#endif
- #if RTLNX_VER_MIN(4,10,0) || RTLNX_RHEL_MAJ_PREREQ(7,4)
- .eviction_valuable = ttm_bo_eviction_valuable,
- #endif
-@@ -318,8 +371,13 @@ int vbox_mm_init(struct vbox_private *vbox)
- #endif
- }
-
-+#if RTLNX_VER_MIN(5,10,0)
-+ ret = ttm_range_man_init(bdev, TTM_PL_VRAM, false,
-+ vbox->available_vram_size >> PAGE_SHIFT);
-+#else
- ret = ttm_bo_init_mm(bdev, TTM_PL_VRAM,
- vbox->available_vram_size >> PAGE_SHIFT);
-+#endif
- if (ret) {
- DRM_ERROR("Failed ttm VRAM init: %d\n", ret);
- goto err_device_release;
-@@ -359,7 +417,7 @@ void vbox_mm_fini(struct vbox_private *vbox)
- #endif
- }
-
--void vbox_ttm_placement(struct vbox_bo *bo, int domain)
-+void vbox_ttm_placement(struct vbox_bo *bo, u32 mem_type)
- {
- u32 c = 0;
- #if RTLNX_VER_MAX(3,18,0) && !RTLNX_RHEL_MAJ_PREREQ(7,2)
-@@ -372,15 +430,36 @@ void vbox_ttm_placement(struct vbox_bo *bo, int domain)
- bo->placement.placement = bo->placements;
- bo->placement.busy_placement = bo->placements;
-
-- if (domain & TTM_PL_FLAG_VRAM)
-+ if (mem_type & VBOX_MEM_TYPE_VRAM) {
-+#if RTLNX_VER_MIN(5,10,0)
-+ bo->placements[c].mem_type = TTM_PL_VRAM;
-+ PLACEMENT_FLAGS(bo->placements[c++]) =
-+ TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED;
-+#else
- PLACEMENT_FLAGS(bo->placements[c++]) =
- TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_VRAM;
-- if (domain & TTM_PL_FLAG_SYSTEM)
-+#endif
-+ }
-+ if (mem_type & VBOX_MEM_TYPE_SYSTEM) {
-+#if RTLNX_VER_MIN(5,10,0)
-+ bo->placements[c].mem_type = TTM_PL_SYSTEM;
-+ PLACEMENT_FLAGS(bo->placements[c++]) =
-+ TTM_PL_MASK_CACHING;
-+#else
- PLACEMENT_FLAGS(bo->placements[c++]) =
- TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM;
-- if (!c)
-+#endif
-+ }
-+ if (!c) {
-+#if RTLNX_VER_MIN(5,10,0)
-+ bo->placements[c].mem_type = TTM_PL_SYSTEM;
-+ PLACEMENT_FLAGS(bo->placements[c++]) =
-+ TTM_PL_MASK_CACHING;
-+#else
- PLACEMENT_FLAGS(bo->placements[c++]) =
- TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM;
-+#endif
-+ }
-
- bo->placement.num_placement = c;
- bo->placement.num_busy_placement = c;
-@@ -414,7 +493,7 @@ int vbox_bo_create(struct drm_device *dev, int size, int align,
- vboxbo->bo.bdev->dev_mapping = dev->dev_mapping;
- #endif
-
-- vbox_ttm_placement(vboxbo, TTM_PL_FLAG_VRAM | TTM_PL_FLAG_SYSTEM);
-+ vbox_ttm_placement(vboxbo, VBOX_MEM_TYPE_VRAM | VBOX_MEM_TYPE_SYSTEM);
-
- acc_size = ttm_bo_dma_acc_size(&vbox->ttm.bdev, size,
- sizeof(struct vbox_bo));
-@@ -452,7 +531,7 @@ static inline u64 vbox_bo_gpu_offset(struct vbox_bo *bo)
- #endif
- }
-
--int vbox_bo_pin(struct vbox_bo *bo, u32 pl_flag, u64 *gpu_addr)
-+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)
- struct ttm_operation_ctx ctx = { false, false };
-@@ -467,7 +546,7 @@ int vbox_bo_pin(struct vbox_bo *bo, u32 pl_flag, u64 *gpu_addr)
- return 0;
- }
-
-- vbox_ttm_placement(bo, pl_flag);
-+ vbox_ttm_placement(bo, mem_type);
-
- for (i = 0; i < bo->placement.num_placement; i++)
- PLACEMENT_FLAGS(bo->placements[i]) |= TTM_PL_FLAG_NO_EVICT;
-@@ -540,7 +619,7 @@ int vbox_bo_push_sysram(struct vbox_bo *bo)
- if (bo->kmap.virtual)
- ttm_bo_kunmap(&bo->kmap);
-
-- vbox_ttm_placement(bo, TTM_PL_FLAG_SYSTEM);
-+ vbox_ttm_placement(bo, VBOX_MEM_TYPE_SYSTEM);
-
- for (i = 0; i < bo->placement.num_placement; i++)
- PLACEMENT_FLAGS(bo->placements[i]) |= TTM_PL_FLAG_NO_EVICT;
---
-2.19.1
-
diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch
deleted file mode 100644
index db27cb883..000000000
--- a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From 2a6e3cf63f58e289802a11faad5fb495e2d04e97 Mon Sep 17 00:00:00 2001
-From: vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>
-Date: Wed, 9 Dec 2020 18:59:04 +0000
-Subject: [PATCH] Runtime/memobj-r0drv-linux.c: Changes to support the upcoming
- 5.10 kernel, bugref:9879
-
-Upstream-Status: Backport
-
-git-svn-id: http://www.virtualbox.org/svn/vbox@87074 cfe28804-0f27-0410-a406-dd0f0b0b656f
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
----
- .../Runtime/r0drv/linux/memobj-r0drv-linux.c | 68 ++++++++++++++++++-
- 1 file changed, 67 insertions(+), 1 deletion(-)
-
---- a/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
-+++ b/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
-@@ -56,9 +56,19 @@
- * Whether we use alloc_vm_area (3.2+) for executable memory.
- * This is a must for 5.8+, but we enable it all the way back to 3.2.x for
- * better W^R compliance (fExecutable flag). */
--#if RTLNX_VER_MIN(3,2,0) || defined(DOXYGEN_RUNNING)
-+#if RTLNX_VER_RANGE(3,2,0, 5,10,0) || defined(DOXYGEN_RUNNING)
- # define IPRT_USE_ALLOC_VM_AREA_FOR_EXEC
- #endif
-+/** @def IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC
-+ * alloc_vm_area was removed with 5.10 so we have to resort to a different way
-+ * to allocate executable memory.
-+ * It would be possible to remove IPRT_USE_ALLOC_VM_AREA_FOR_EXEC and use
-+ * this path execlusively for 3.2+ but no time to test it really works on every
-+ * supported kernel, so better play safe for now.
-+ */
-+#if RTLNX_VER_MIN(5,10,0) || defined(DOXYGEN_RUNNING)
-+# define IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC
-+#endif
-
- /*
- * 2.6.29+ kernels don't work with remap_pfn_range() anymore because
-@@ -502,6 +512,46 @@ static void rtR0MemObjLinuxFreePages(PRT
- }
-
-
-+#ifdef IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC
-+/**
-+ * User data passed to the apply_to_page_range() callback.
-+ */
-+typedef struct LNXAPPLYPGRANGE
-+{
-+ /** Pointer to the memory object. */
-+ PRTR0MEMOBJLNX pMemLnx;
-+ /** The page protection flags to apply. */
-+ pgprot_t fPg;
-+} LNXAPPLYPGRANGE;
-+/** Pointer to the user data. */
-+typedef LNXAPPLYPGRANGE *PLNXAPPLYPGRANGE;
-+/** Pointer to the const user data. */
-+typedef const LNXAPPLYPGRANGE *PCLNXAPPLYPGRANGE;
-+
-+/**
-+ * Callback called in apply_to_page_range().
-+ *
-+ * @returns Linux status code.
-+ * @param pPte Pointer to the page table entry for the given address.
-+ * @param uAddr The address to apply the new protection to.
-+ * @param pvUser The opaque user data.
-+ */
-+#ifdef __i386__
-+static int rtR0MemObjLinuxApplyPageRange(pte_t *pPte, unsigned long uAddr, void *pvUser)
-+#else
-+static DECLCALLBACK(int) rtR0MemObjLinuxApplyPageRange(pte_t *pPte, unsigned long uAddr, void *pvUser)
-+#endif
-+{
-+ PCLNXAPPLYPGRANGE pArgs = (PCLNXAPPLYPGRANGE)pvUser;
-+ PRTR0MEMOBJLNX pMemLnx = pArgs->pMemLnx;
-+ size_t idxPg = (uAddr - (unsigned long)pMemLnx->Core.pv) >> PAGE_SHIFT;
-+
-+ set_pte(pPte, mk_pte(pMemLnx->apPages[idxPg], pArgs->fPg));
-+ return 0;
-+}
-+#endif
-+
-+
- /**
- * Maps the allocation into ring-0.
- *
-@@ -584,6 +634,11 @@ static int rtR0MemObjLinuxVMap(PRTR0MEMO
- else
- # endif
- {
-+# if defined(IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC)
-+ if (fExecutable)
-+ pgprot_val(fPg) |= _PAGE_NX; /* Uses RTR0MemObjProtect to clear NX when memory ready, W^X fashion. */
-+# endif
-+
- # ifdef VM_MAP
- pMemLnx->Core.pv = vmap(&pMemLnx->apPages[0], pMemLnx->cPages, VM_MAP, fPg);
- # else
-@@ -1851,6 +1906,21 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(
- preempt_enable();
- return VINF_SUCCESS;
- }
-+# elif defined(IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC)
-+ PRTR0MEMOBJLNX pMemLnx = (PRTR0MEMOBJLNX)pMem;
-+ if ( pMemLnx->fExecutable
-+ && pMemLnx->fMappedToRing0)
-+ {
-+ LNXAPPLYPGRANGE Args;
-+ Args.pMemLnx = pMemLnx;
-+ Args.fPg = rtR0MemObjLinuxConvertProt(fProt, true /*fKernel*/);
-+ int rcLnx = apply_to_page_range(current->active_mm, (unsigned long)pMemLnx->Core.pv + offSub, cbSub,
-+ rtR0MemObjLinuxApplyPageRange, (void *)&Args);
-+ if (rcLnx)
-+ return VERR_NOT_SUPPORTED;
-+
-+ return VINF_SUCCESS;
-+ }
- # endif
-
- NOREF(pMem);
diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch
deleted file mode 100644
index 3cfe2e917..000000000
--- a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From a276f8bc5e4515f7ea51e2c56e0e634a723ca104 Mon Sep 17 00:00:00 2001
-From: vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>
-Date: Tue, 8 Dec 2020 13:52:53 +0000
-Subject: [PATCH] linser/vboxsf: Adjustment for linux 5.10 - TASK_SIZE_MAX
- replaces USER_DS.seg. bugref:9879
-
-Upstream-Status: Backport
-
-git-svn-id: http://www.virtualbox.org/svn/vbox@87053 cfe28804-0f27-0410-a406-dd0f0b0b656f
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
----
- src/VBox/Additions/linux/sharedfolders/regops.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/src/VBox/Additions/linux/sharedfolders/regops.c b/src/VBox/Additions/linux/sharedfolders/regops.c
-index e1fad3d820..401fd69930 100644
---- a/src/VBox/Additions/linux/sharedfolders/regops.c
-+++ b/src/VBox/Additions/linux/sharedfolders/regops.c
-@@ -147,7 +147,11 @@ static int vbsf_iov_iter_detect_type(struct iovec const *paIov, size_t cSegs)
- while (cSegs-- > 0) {
- if (paIov->iov_len > 0) {
- if (access_ok(VERIFY_READ, paIov->iov_base, paIov->iov_len))
-+#if RTLNX_VER_MIN(5,10,0)
-+ return (uintptr_t)paIov->iov_base >= TASK_SIZE_MAX ? ITER_KVEC : 0;
-+#else
- return (uintptr_t)paIov->iov_base >= USER_DS.seg ? ITER_KVEC : 0;
-+#endif
- AssertMsgFailed(("%p LB %#zx\n", paIov->iov_base, paIov->iov_len));
- break;
- }
-@@ -1401,7 +1405,10 @@ static int vbsf_lock_user_pages_failed_check_kernel(uintptr_t uPtrFrom, size_t c
- /*
- * Check that this is valid user memory that is actually in the kernel range.
- */
--#if RTLNX_VER_MIN(5,0,0) || RTLNX_RHEL_MIN(8,1)
-+#if RTLNX_VER_MIN(5,10,0)
-+ if ( access_ok((void *)uPtrFrom, cPages << PAGE_SHIFT)
-+ && uPtrFrom >= TASK_SIZE_MAX)
-+#elif RTLNX_VER_MIN(5,0,0) || RTLNX_RHEL_MIN(8,1)
- if ( access_ok((void *)uPtrFrom, cPages << PAGE_SHIFT)
- && uPtrFrom >= USER_DS.seg)
- #else
---
-2.19.1
-
diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.16.bb b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.18.bb
similarity index 88%
rename from meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.16.bb
rename to meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.18.bb
index ff639c09f..ea6a082f6 100644
--- a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.16.bb
+++ b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.18.bb
@@ -13,12 +13,9 @@ VBOX_NAME = "VirtualBox-${PV}"
SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
file://Makefile.utils \
- file://0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch \
- file://0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch \
- file://0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch \
"
-SRC_URI[md5sum] = "a12a647f6c114f2cb1571089b36841fe"
-SRC_URI[sha256sum] = "49c1990da16d8a3d5bda8cdb961ec8195a901e67e4c79aea44c1521a5fc2f9f1"
+SRC_URI[md5sum] = "c61001386eb3822ab8f06d688a82e84b"
+SRC_URI[sha256sum] = "108d42b9b391b7a332a33df1662cf7b0e9d9a80f3079d16288d8b9487f427d40"
S ?= "${WORKDIR}/vbox_module"
S_task-patch = "${WORKDIR}/${VBOX_NAME}"
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [oe] [meta-oe][PATCH] vboxguestdrivers: upgrade 6.1.16 -> 6.1.18
2021-01-20 13:01 [meta-oe][PATCH] vboxguestdrivers: upgrade 6.1.16 -> 6.1.18 Gianfranco
@ 2021-01-21 8:26 ` Khem Raj
2021-01-21 21:53 ` Gianfranco
0 siblings, 1 reply; 4+ messages in thread
From: Khem Raj @ 2021-01-21 8:26 UTC (permalink / raw)
To: Gianfranco
Cc: openembeded-devel, Gianfranco Costamagna, Gianfranco Costamagna
fails on musl/x86
https://errors.yoctoproject.org/Errors/Details/541637/
On Wed, Jan 20, 2021 at 5:01 AM Gianfranco
<costamagna.gianfranco@gmail.com> wrote:
>
> Drop kernel 5.10 build fixes patches, now part of upstream codebase
>
> Signed-off-by: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
> Signed-off-by: Gianfranco Costamagna <locutusofborg@debian.org>
> ---
> ...-linux-drm-Adjustment-for-Linux-5.10.patch | 321 ------------------
> ...0drv-linux.c-Changes-to-support-the-.patch | 119 -------
> ...justment-for-linux-5.10-TASK_SIZE_MA.patch | 46 ---
> ...s_6.1.16.bb => vboxguestdrivers_6.1.18.bb} | 7 +-
> 4 files changed, 2 insertions(+), 491 deletions(-)
> delete mode 100644 meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch
> delete mode 100644 meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch
> delete mode 100644 meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch
> rename meta-oe/recipes-support/vboxguestdrivers/{vboxguestdrivers_6.1.16.bb => vboxguestdrivers_6.1.18.bb} (88%)
>
> diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch
> deleted file mode 100644
> index a444901f8..000000000
> --- a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch
> +++ /dev/null
> @@ -1,321 +0,0 @@
> -From b6c765d693a0833b94cb2e91b32842570c3458d2 Mon Sep 17 00:00:00 2001
> -From: vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>
> -Date: Tue, 15 Dec 2020 22:29:56 +0000
> -Subject: [PATCH] Additions/linux/drm: Adjustment for Linux 5.10.
> -
> -Upstream-Status: Backport
> -
> -git-svn-id: http://www.virtualbox.org/svn/vbox@87092 cfe28804-0f27-0410-a406-dd0f0b0b656f
> -
> -Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
> -
> ----
> - src/VBox/Additions/linux/drm/vbox_drv.h | 10 +-
> - src/VBox/Additions/linux/drm/vbox_fb.c | 2 +-
> - .../src/VBox/Additions/linux/drm/vbox_mode.c | 2 +-
> - src/VBox/Additions/linux/drm/vbox_ttm.c | 99 +++++++++++++++++--
> - 4 files changed, 99 insertions(+), 14 deletions(-)
> -
> -diff --git a/src/VBox/Additions/linux/drm/vbox_drv.h b/src/VBox/Additions/linux/drm/vbox_drv.h
> -index 8c85371749..7937f2f2d2 100644
> ---- a/src/VBox/Additions/linux/drm/vbox_drv.h
> -+++ b/src/VBox/Additions/linux/drm/vbox_drv.h
> -@@ -175,6 +175,9 @@
> - #include <drm/ttm/ttm_placement.h>
> - #include <drm/ttm/ttm_memory.h>
> - #include <drm/ttm/ttm_module.h>
> -+#if RTLNX_VER_MIN(5,10,0)
> -+# include <drm/ttm/ttm_resource.h>
> -+#endif
> -
> - #include "vboxvideo_guest.h"
> - #include "vboxvideo_vbe.h"
> -@@ -444,7 +447,10 @@ int vbox_bo_create(struct drm_device *dev, int size, int align,
> - int vbox_gem_create(struct drm_device *dev,
> - u32 size, bool iskernel, struct drm_gem_object **obj);
> -
> --int vbox_bo_pin(struct vbox_bo *bo, u32 pl_flag, u64 *gpu_addr);
> -+#define VBOX_MEM_TYPE_VRAM 0x1
> -+#define VBOX_MEM_TYPE_SYSTEM 0x2
> -+
> -+int vbox_bo_pin(struct vbox_bo *bo, u32 mem_type, u64 *gpu_addr);
> - int vbox_bo_unpin(struct vbox_bo *bo);
> -
> - static inline int vbox_bo_reserve(struct vbox_bo *bo, bool no_wait)
> -@@ -469,7 +475,7 @@ static inline void vbox_bo_unreserve(struct vbox_bo *bo)
> - ttm_bo_unreserve(&bo->bo);
> - }
> -
> --void vbox_ttm_placement(struct vbox_bo *bo, int domain);
> -+void vbox_ttm_placement(struct vbox_bo *bo, u32 mem_type);
> - int vbox_bo_push_sysram(struct vbox_bo *bo);
> - int vbox_mmap(struct file *filp, struct vm_area_struct *vma);
> -
> -diff --git a/src/VBox/Additions/linux/drm/vbox_fb.c b/src/VBox/Additions/linux/drm/vbox_fb.c
> -index adead98d3d..7182d9da1a 100644
> ---- a/src/VBox/Additions/linux/drm/vbox_fb.c
> -+++ b/src/VBox/Additions/linux/drm/vbox_fb.c
> -@@ -295,7 +295,7 @@ static int vboxfb_create(struct drm_fb_helper *helper,
> - if (ret)
> - return ret;
> -
> -- ret = vbox_bo_pin(bo, TTM_PL_FLAG_VRAM, NULL);
> -+ ret = vbox_bo_pin(bo, VBOX_MEM_TYPE_VRAM, NULL);
> - if (ret) {
> - vbox_bo_unreserve(bo);
> - return ret;
> -diff --git a/src/VBox/Additions/linux/drm/vbox_mode.c b/src/VBox/Additions/linux/drm/vbox_mode.c
> -index ce7d135cb6..5557db5ef8 100644
> ---- a/src/VBox/Additions/linux/drm/vbox_mode.c
> -+++ b/src/VBox/Additions/linux/drm/vbox_mode.c
> -@@ -227,7 +227,7 @@ static int vbox_crtc_set_base(struct drm_crtc *crtc,
> - if (ret)
> - return ret;
> -
> -- ret = vbox_bo_pin(bo, TTM_PL_FLAG_VRAM, &gpu_addr);
> -+ ret = vbox_bo_pin(bo, VBOX_MEM_TYPE_VRAM, &gpu_addr);
> - vbox_bo_unreserve(bo);
> - if (ret)
> - return ret;
> -diff --git a/src/VBox/Additions/linux/drm/vbox_ttm.c b/src/VBox/Additions/linux/drm/vbox_ttm.c
> -index bf87aabc05..5eac926a42 100644
> ---- a/src/VBox/Additions/linux/drm/vbox_ttm.c
> -+++ b/src/VBox/Additions/linux/drm/vbox_ttm.c
> -@@ -41,6 +41,7 @@
> - #define PLACEMENT_FLAGS(placement) ((placement).flags)
> - #endif
> -
> -+
> - static inline struct vbox_private *vbox_bdev(struct ttm_bo_device *bd)
> - {
> - return container_of(bd, struct vbox_private, ttm.bdev);
> -@@ -125,6 +126,7 @@ static bool vbox_ttm_bo_is_vbox_bo(struct ttm_buffer_object *bo)
> - return false;
> - }
> -
> -+#if RTLNX_VER_MAX(5,10,0)
> - static int
> - vbox_bo_init_mem_type(struct ttm_bo_device *bdev, u32 type,
> - struct ttm_mem_type_manager *man)
> -@@ -148,6 +150,7 @@ vbox_bo_init_mem_type(struct ttm_bo_device *bdev, u32 type,
> -
> - return 0;
> - }
> -+#endif
> -
> - static void
> - vbox_bo_evict_flags(struct ttm_buffer_object *bo, struct ttm_placement *pl)
> -@@ -157,7 +160,7 @@ vbox_bo_evict_flags(struct ttm_buffer_object *bo, struct ttm_placement *pl)
> - if (!vbox_ttm_bo_is_vbox_bo(bo))
> - return;
> -
> -- vbox_ttm_placement(vboxbo, TTM_PL_FLAG_SYSTEM);
> -+ vbox_ttm_placement(vboxbo, VBOX_MEM_TYPE_SYSTEM);
> - *pl = vboxbo->placement;
> - }
> -
> -@@ -167,11 +170,12 @@ static int vbox_bo_verify_access(struct ttm_buffer_object *bo,
> - return 0;
> - }
> -
> -+#if RTLNX_VER_MAX(5,10,0)
> - static int vbox_ttm_io_mem_reserve(struct ttm_bo_device *bdev,
> - struct ttm_mem_reg *mem)
> - {
> -- struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type];
> - struct vbox_private *vbox = vbox_bdev(bdev);
> -+ struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type];
> -
> - mem->bus.addr = NULL;
> - mem->bus.offset = 0;
> -@@ -194,12 +198,53 @@ static int vbox_ttm_io_mem_reserve(struct ttm_bo_device *bdev,
> - }
> - return 0;
> - }
> -+#else
> -+static int vbox_ttm_io_mem_reserve(struct ttm_bo_device *bdev,
> -+ struct ttm_resource *mem)
> -+{
> -+ struct vbox_private *vbox = vbox_bdev(bdev);
> -+ mem->bus.addr = NULL;
> -+ mem->bus.offset = 0;
> -+ mem->size = mem->num_pages << PAGE_SHIFT;
> -+ mem->start = 0;
> -+ mem->bus.is_iomem = false;
> -+ switch (mem->mem_type) {
> -+ case TTM_PL_SYSTEM:
> -+ /* system memory */
> -+ return 0;
> -+ case TTM_PL_VRAM:
> -+ mem->bus.offset = mem->start << PAGE_SHIFT;
> -+ mem->start = pci_resource_start(vbox->dev->pdev, 0);
> -+ mem->bus.is_iomem = true;
> -+ break;
> -+ default:
> -+ return -EINVAL;
> -+ }
> -+ return 0;
> -+}
> -+#endif
> -
> -+
> -+
> -+#if RTLNX_VER_MIN(5,10,0)
> -+static void vbox_ttm_io_mem_free(struct ttm_bo_device *bdev,
> -+ struct ttm_resource *mem)
> -+{
> -+}
> -+#else
> - static void vbox_ttm_io_mem_free(struct ttm_bo_device *bdev,
> - struct ttm_mem_reg *mem)
> - {
> - }
> -+#endif
> -
> -+#if RTLNX_VER_MIN(5,10,0)
> -+static void vbox_ttm_tt_destroy(struct ttm_bo_device *bdev, struct ttm_tt *tt)
> -+{
> -+ ttm_tt_fini(tt);
> -+ kfree(tt);
> -+}
> -+#else
> - static void vbox_ttm_backend_destroy(struct ttm_tt *tt)
> - {
> - ttm_tt_fini(tt);
> -@@ -209,6 +254,7 @@ static void vbox_ttm_backend_destroy(struct ttm_tt *tt)
> - static struct ttm_backend_func vbox_tt_backend_func = {
> - .destroy = &vbox_ttm_backend_destroy,
> - };
> -+#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)
> - static struct ttm_tt *vbox_ttm_tt_create(struct ttm_bo_device *bdev,
> -@@ -226,7 +272,9 @@ static struct ttm_tt *vbox_ttm_tt_create(struct ttm_buffer_object *bo,
> - if (!tt)
> - return NULL;
> -
> -+#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 (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) {
> - #else
> -@@ -261,11 +309,16 @@ static void vbox_ttm_tt_unpopulate(struct ttm_tt *ttm)
> -
> - static struct ttm_bo_driver vbox_bo_driver = {
> - .ttm_tt_create = vbox_ttm_tt_create,
> -+#if RTLNX_VER_MIN(5,10,0)
> -+ .ttm_tt_destroy = vbox_ttm_tt_destroy,
> -+#endif
> - #if RTLNX_VER_MAX(4,17,0)
> - .ttm_tt_populate = vbox_ttm_tt_populate,
> - .ttm_tt_unpopulate = vbox_ttm_tt_unpopulate,
> - #endif
> -+#if RTLNX_VER_MAX(5,10,0)
> - .init_mem_type = vbox_bo_init_mem_type,
> -+#endif
> - #if RTLNX_VER_MIN(4,10,0) || RTLNX_RHEL_MAJ_PREREQ(7,4)
> - .eviction_valuable = ttm_bo_eviction_valuable,
> - #endif
> -@@ -318,8 +371,13 @@ int vbox_mm_init(struct vbox_private *vbox)
> - #endif
> - }
> -
> -+#if RTLNX_VER_MIN(5,10,0)
> -+ ret = ttm_range_man_init(bdev, TTM_PL_VRAM, false,
> -+ vbox->available_vram_size >> PAGE_SHIFT);
> -+#else
> - ret = ttm_bo_init_mm(bdev, TTM_PL_VRAM,
> - vbox->available_vram_size >> PAGE_SHIFT);
> -+#endif
> - if (ret) {
> - DRM_ERROR("Failed ttm VRAM init: %d\n", ret);
> - goto err_device_release;
> -@@ -359,7 +417,7 @@ void vbox_mm_fini(struct vbox_private *vbox)
> - #endif
> - }
> -
> --void vbox_ttm_placement(struct vbox_bo *bo, int domain)
> -+void vbox_ttm_placement(struct vbox_bo *bo, u32 mem_type)
> - {
> - u32 c = 0;
> - #if RTLNX_VER_MAX(3,18,0) && !RTLNX_RHEL_MAJ_PREREQ(7,2)
> -@@ -372,15 +430,36 @@ void vbox_ttm_placement(struct vbox_bo *bo, int domain)
> - bo->placement.placement = bo->placements;
> - bo->placement.busy_placement = bo->placements;
> -
> -- if (domain & TTM_PL_FLAG_VRAM)
> -+ if (mem_type & VBOX_MEM_TYPE_VRAM) {
> -+#if RTLNX_VER_MIN(5,10,0)
> -+ bo->placements[c].mem_type = TTM_PL_VRAM;
> -+ PLACEMENT_FLAGS(bo->placements[c++]) =
> -+ TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED;
> -+#else
> - PLACEMENT_FLAGS(bo->placements[c++]) =
> - TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_VRAM;
> -- if (domain & TTM_PL_FLAG_SYSTEM)
> -+#endif
> -+ }
> -+ if (mem_type & VBOX_MEM_TYPE_SYSTEM) {
> -+#if RTLNX_VER_MIN(5,10,0)
> -+ bo->placements[c].mem_type = TTM_PL_SYSTEM;
> -+ PLACEMENT_FLAGS(bo->placements[c++]) =
> -+ TTM_PL_MASK_CACHING;
> -+#else
> - PLACEMENT_FLAGS(bo->placements[c++]) =
> - TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM;
> -- if (!c)
> -+#endif
> -+ }
> -+ if (!c) {
> -+#if RTLNX_VER_MIN(5,10,0)
> -+ bo->placements[c].mem_type = TTM_PL_SYSTEM;
> -+ PLACEMENT_FLAGS(bo->placements[c++]) =
> -+ TTM_PL_MASK_CACHING;
> -+#else
> - PLACEMENT_FLAGS(bo->placements[c++]) =
> - TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM;
> -+#endif
> -+ }
> -
> - bo->placement.num_placement = c;
> - bo->placement.num_busy_placement = c;
> -@@ -414,7 +493,7 @@ int vbox_bo_create(struct drm_device *dev, int size, int align,
> - vboxbo->bo.bdev->dev_mapping = dev->dev_mapping;
> - #endif
> -
> -- vbox_ttm_placement(vboxbo, TTM_PL_FLAG_VRAM | TTM_PL_FLAG_SYSTEM);
> -+ vbox_ttm_placement(vboxbo, VBOX_MEM_TYPE_VRAM | VBOX_MEM_TYPE_SYSTEM);
> -
> - acc_size = ttm_bo_dma_acc_size(&vbox->ttm.bdev, size,
> - sizeof(struct vbox_bo));
> -@@ -452,7 +531,7 @@ static inline u64 vbox_bo_gpu_offset(struct vbox_bo *bo)
> - #endif
> - }
> -
> --int vbox_bo_pin(struct vbox_bo *bo, u32 pl_flag, u64 *gpu_addr)
> -+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)
> - struct ttm_operation_ctx ctx = { false, false };
> -@@ -467,7 +546,7 @@ int vbox_bo_pin(struct vbox_bo *bo, u32 pl_flag, u64 *gpu_addr)
> - return 0;
> - }
> -
> -- vbox_ttm_placement(bo, pl_flag);
> -+ vbox_ttm_placement(bo, mem_type);
> -
> - for (i = 0; i < bo->placement.num_placement; i++)
> - PLACEMENT_FLAGS(bo->placements[i]) |= TTM_PL_FLAG_NO_EVICT;
> -@@ -540,7 +619,7 @@ int vbox_bo_push_sysram(struct vbox_bo *bo)
> - if (bo->kmap.virtual)
> - ttm_bo_kunmap(&bo->kmap);
> -
> -- vbox_ttm_placement(bo, TTM_PL_FLAG_SYSTEM);
> -+ vbox_ttm_placement(bo, VBOX_MEM_TYPE_SYSTEM);
> -
> - for (i = 0; i < bo->placement.num_placement; i++)
> - PLACEMENT_FLAGS(bo->placements[i]) |= TTM_PL_FLAG_NO_EVICT;
> ---
> -2.19.1
> -
> diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch
> deleted file mode 100644
> index db27cb883..000000000
> --- a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch
> +++ /dev/null
> @@ -1,119 +0,0 @@
> -From 2a6e3cf63f58e289802a11faad5fb495e2d04e97 Mon Sep 17 00:00:00 2001
> -From: vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>
> -Date: Wed, 9 Dec 2020 18:59:04 +0000
> -Subject: [PATCH] Runtime/memobj-r0drv-linux.c: Changes to support the upcoming
> - 5.10 kernel, bugref:9879
> -
> -Upstream-Status: Backport
> -
> -git-svn-id: http://www.virtualbox.org/svn/vbox@87074 cfe28804-0f27-0410-a406-dd0f0b0b656f
> -
> -Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
> ----
> - .../Runtime/r0drv/linux/memobj-r0drv-linux.c | 68 ++++++++++++++++++-
> - 1 file changed, 67 insertions(+), 1 deletion(-)
> -
> ---- a/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
> -+++ b/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
> -@@ -56,9 +56,19 @@
> - * Whether we use alloc_vm_area (3.2+) for executable memory.
> - * This is a must for 5.8+, but we enable it all the way back to 3.2.x for
> - * better W^R compliance (fExecutable flag). */
> --#if RTLNX_VER_MIN(3,2,0) || defined(DOXYGEN_RUNNING)
> -+#if RTLNX_VER_RANGE(3,2,0, 5,10,0) || defined(DOXYGEN_RUNNING)
> - # define IPRT_USE_ALLOC_VM_AREA_FOR_EXEC
> - #endif
> -+/** @def IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC
> -+ * alloc_vm_area was removed with 5.10 so we have to resort to a different way
> -+ * to allocate executable memory.
> -+ * It would be possible to remove IPRT_USE_ALLOC_VM_AREA_FOR_EXEC and use
> -+ * this path execlusively for 3.2+ but no time to test it really works on every
> -+ * supported kernel, so better play safe for now.
> -+ */
> -+#if RTLNX_VER_MIN(5,10,0) || defined(DOXYGEN_RUNNING)
> -+# define IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC
> -+#endif
> -
> - /*
> - * 2.6.29+ kernels don't work with remap_pfn_range() anymore because
> -@@ -502,6 +512,46 @@ static void rtR0MemObjLinuxFreePages(PRT
> - }
> -
> -
> -+#ifdef IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC
> -+/**
> -+ * User data passed to the apply_to_page_range() callback.
> -+ */
> -+typedef struct LNXAPPLYPGRANGE
> -+{
> -+ /** Pointer to the memory object. */
> -+ PRTR0MEMOBJLNX pMemLnx;
> -+ /** The page protection flags to apply. */
> -+ pgprot_t fPg;
> -+} LNXAPPLYPGRANGE;
> -+/** Pointer to the user data. */
> -+typedef LNXAPPLYPGRANGE *PLNXAPPLYPGRANGE;
> -+/** Pointer to the const user data. */
> -+typedef const LNXAPPLYPGRANGE *PCLNXAPPLYPGRANGE;
> -+
> -+/**
> -+ * Callback called in apply_to_page_range().
> -+ *
> -+ * @returns Linux status code.
> -+ * @param pPte Pointer to the page table entry for the given address.
> -+ * @param uAddr The address to apply the new protection to.
> -+ * @param pvUser The opaque user data.
> -+ */
> -+#ifdef __i386__
> -+static int rtR0MemObjLinuxApplyPageRange(pte_t *pPte, unsigned long uAddr, void *pvUser)
> -+#else
> -+static DECLCALLBACK(int) rtR0MemObjLinuxApplyPageRange(pte_t *pPte, unsigned long uAddr, void *pvUser)
> -+#endif
> -+{
> -+ PCLNXAPPLYPGRANGE pArgs = (PCLNXAPPLYPGRANGE)pvUser;
> -+ PRTR0MEMOBJLNX pMemLnx = pArgs->pMemLnx;
> -+ size_t idxPg = (uAddr - (unsigned long)pMemLnx->Core.pv) >> PAGE_SHIFT;
> -+
> -+ set_pte(pPte, mk_pte(pMemLnx->apPages[idxPg], pArgs->fPg));
> -+ return 0;
> -+}
> -+#endif
> -+
> -+
> - /**
> - * Maps the allocation into ring-0.
> - *
> -@@ -584,6 +634,11 @@ static int rtR0MemObjLinuxVMap(PRTR0MEMO
> - else
> - # endif
> - {
> -+# if defined(IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC)
> -+ if (fExecutable)
> -+ pgprot_val(fPg) |= _PAGE_NX; /* Uses RTR0MemObjProtect to clear NX when memory ready, W^X fashion. */
> -+# endif
> -+
> - # ifdef VM_MAP
> - pMemLnx->Core.pv = vmap(&pMemLnx->apPages[0], pMemLnx->cPages, VM_MAP, fPg);
> - # else
> -@@ -1851,6 +1906,21 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(
> - preempt_enable();
> - return VINF_SUCCESS;
> - }
> -+# elif defined(IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC)
> -+ PRTR0MEMOBJLNX pMemLnx = (PRTR0MEMOBJLNX)pMem;
> -+ if ( pMemLnx->fExecutable
> -+ && pMemLnx->fMappedToRing0)
> -+ {
> -+ LNXAPPLYPGRANGE Args;
> -+ Args.pMemLnx = pMemLnx;
> -+ Args.fPg = rtR0MemObjLinuxConvertProt(fProt, true /*fKernel*/);
> -+ int rcLnx = apply_to_page_range(current->active_mm, (unsigned long)pMemLnx->Core.pv + offSub, cbSub,
> -+ rtR0MemObjLinuxApplyPageRange, (void *)&Args);
> -+ if (rcLnx)
> -+ return VERR_NOT_SUPPORTED;
> -+
> -+ return VINF_SUCCESS;
> -+ }
> - # endif
> -
> - NOREF(pMem);
> diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch
> deleted file mode 100644
> index 3cfe2e917..000000000
> --- a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch
> +++ /dev/null
> @@ -1,46 +0,0 @@
> -From a276f8bc5e4515f7ea51e2c56e0e634a723ca104 Mon Sep 17 00:00:00 2001
> -From: vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>
> -Date: Tue, 8 Dec 2020 13:52:53 +0000
> -Subject: [PATCH] linser/vboxsf: Adjustment for linux 5.10 - TASK_SIZE_MAX
> - replaces USER_DS.seg. bugref:9879
> -
> -Upstream-Status: Backport
> -
> -git-svn-id: http://www.virtualbox.org/svn/vbox@87053 cfe28804-0f27-0410-a406-dd0f0b0b656f
> -
> -Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
> ----
> - src/VBox/Additions/linux/sharedfolders/regops.c | 9 ++++++++-
> - 1 file changed, 8 insertions(+), 1 deletion(-)
> -
> -diff --git a/src/VBox/Additions/linux/sharedfolders/regops.c b/src/VBox/Additions/linux/sharedfolders/regops.c
> -index e1fad3d820..401fd69930 100644
> ---- a/src/VBox/Additions/linux/sharedfolders/regops.c
> -+++ b/src/VBox/Additions/linux/sharedfolders/regops.c
> -@@ -147,7 +147,11 @@ static int vbsf_iov_iter_detect_type(struct iovec const *paIov, size_t cSegs)
> - while (cSegs-- > 0) {
> - if (paIov->iov_len > 0) {
> - if (access_ok(VERIFY_READ, paIov->iov_base, paIov->iov_len))
> -+#if RTLNX_VER_MIN(5,10,0)
> -+ return (uintptr_t)paIov->iov_base >= TASK_SIZE_MAX ? ITER_KVEC : 0;
> -+#else
> - return (uintptr_t)paIov->iov_base >= USER_DS.seg ? ITER_KVEC : 0;
> -+#endif
> - AssertMsgFailed(("%p LB %#zx\n", paIov->iov_base, paIov->iov_len));
> - break;
> - }
> -@@ -1401,7 +1405,10 @@ static int vbsf_lock_user_pages_failed_check_kernel(uintptr_t uPtrFrom, size_t c
> - /*
> - * Check that this is valid user memory that is actually in the kernel range.
> - */
> --#if RTLNX_VER_MIN(5,0,0) || RTLNX_RHEL_MIN(8,1)
> -+#if RTLNX_VER_MIN(5,10,0)
> -+ if ( access_ok((void *)uPtrFrom, cPages << PAGE_SHIFT)
> -+ && uPtrFrom >= TASK_SIZE_MAX)
> -+#elif RTLNX_VER_MIN(5,0,0) || RTLNX_RHEL_MIN(8,1)
> - if ( access_ok((void *)uPtrFrom, cPages << PAGE_SHIFT)
> - && uPtrFrom >= USER_DS.seg)
> - #else
> ---
> -2.19.1
> -
> diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.16.bb b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.18.bb
> similarity index 88%
> rename from meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.16.bb
> rename to meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.18.bb
> index ff639c09f..ea6a082f6 100644
> --- a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.16.bb
> +++ b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.18.bb
> @@ -13,12 +13,9 @@ VBOX_NAME = "VirtualBox-${PV}"
>
> SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
> file://Makefile.utils \
> - file://0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch \
> - file://0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch \
> - file://0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch \
> "
> -SRC_URI[md5sum] = "a12a647f6c114f2cb1571089b36841fe"
> -SRC_URI[sha256sum] = "49c1990da16d8a3d5bda8cdb961ec8195a901e67e4c79aea44c1521a5fc2f9f1"
> +SRC_URI[md5sum] = "c61001386eb3822ab8f06d688a82e84b"
> +SRC_URI[sha256sum] = "108d42b9b391b7a332a33df1662cf7b0e9d9a80f3079d16288d8b9487f427d40"
>
> S ?= "${WORKDIR}/vbox_module"
> S_task-patch = "${WORKDIR}/${VBOX_NAME}"
> --
> 2.25.1
>
>
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [oe] [meta-oe][PATCH] vboxguestdrivers: upgrade 6.1.16 -> 6.1.18
2021-01-21 8:26 ` [oe] " Khem Raj
@ 2021-01-21 21:53 ` Gianfranco
2021-01-22 1:41 ` Khem Raj
0 siblings, 1 reply; 4+ messages in thread
From: Gianfranco @ 2021-01-21 21:53 UTC (permalink / raw)
To: Khem Raj; +Cc: openembeded-devel, Gianfranco Costamagna, Gianfranco Costamagna
[-- Attachment #1: Type: text/plain, Size: 25341 bytes --]
Hello, I resubmitted with a little patch that fixes part (but not all) the
musl failures.
Just to be clear, this seems to be not a regression, the current master
with 6.1.16 has the very same failures on i386.
The current proposed patchset is not making the situation worse, and
upstream is having a look at the issue.
Gianfranco
Il giorno gio 21 gen 2021 alle ore 09:26 Khem Raj <raj.khem@gmail.com> ha
scritto:
> fails on musl/x86
>
> https://errors.yoctoproject.org/Errors/Details/541637/
>
> On Wed, Jan 20, 2021 at 5:01 AM Gianfranco
> <costamagna.gianfranco@gmail.com> wrote:
> >
> > Drop kernel 5.10 build fixes patches, now part of upstream codebase
> >
> > Signed-off-by: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
> > Signed-off-by: Gianfranco Costamagna <locutusofborg@debian.org>
> > ---
> > ...-linux-drm-Adjustment-for-Linux-5.10.patch | 321 ------------------
> > ...0drv-linux.c-Changes-to-support-the-.patch | 119 -------
> > ...justment-for-linux-5.10-TASK_SIZE_MA.patch | 46 ---
> > ...s_6.1.16.bb => vboxguestdrivers_6.1.18.bb} | 7 +-
> > 4 files changed, 2 insertions(+), 491 deletions(-)
> > delete mode 100644
> meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch
> > delete mode 100644
> meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch
> > delete mode 100644
> meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch
> > rename meta-oe/recipes-support/vboxguestdrivers/{
> vboxguestdrivers_6.1.16.bb => vboxguestdrivers_6.1.18.bb} (88%)
> >
> > diff --git
> a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch
> b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch
> > deleted file mode 100644
> > index a444901f8..000000000
> > ---
> a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch
> > +++ /dev/null
> > @@ -1,321 +0,0 @@
> > -From b6c765d693a0833b94cb2e91b32842570c3458d2 Mon Sep 17 00:00:00 2001
> > -From: vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>
> > -Date: Tue, 15 Dec 2020 22:29:56 +0000
> > -Subject: [PATCH] Additions/linux/drm: Adjustment for Linux 5.10.
> > -
> > -Upstream-Status: Backport
> > -
> > -git-svn-id: http://www.virtualbox.org/svn/vbox@87092
> cfe28804-0f27-0410-a406-dd0f0b0b656f
> > -
> > -Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
> > -
> > ----
> > - src/VBox/Additions/linux/drm/vbox_drv.h | 10 +-
> > - src/VBox/Additions/linux/drm/vbox_fb.c | 2 +-
> > - .../src/VBox/Additions/linux/drm/vbox_mode.c | 2 +-
> > - src/VBox/Additions/linux/drm/vbox_ttm.c | 99 +++++++++++++++++--
> > - 4 files changed, 99 insertions(+), 14 deletions(-)
> > -
> > -diff --git a/src/VBox/Additions/linux/drm/vbox_drv.h
> b/src/VBox/Additions/linux/drm/vbox_drv.h
> > -index 8c85371749..7937f2f2d2 100644
> > ---- a/src/VBox/Additions/linux/drm/vbox_drv.h
> > -+++ b/src/VBox/Additions/linux/drm/vbox_drv.h
> > -@@ -175,6 +175,9 @@
> > - #include <drm/ttm/ttm_placement.h>
> > - #include <drm/ttm/ttm_memory.h>
> > - #include <drm/ttm/ttm_module.h>
> > -+#if RTLNX_VER_MIN(5,10,0)
> > -+# include <drm/ttm/ttm_resource.h>
> > -+#endif
> > -
> > - #include "vboxvideo_guest.h"
> > - #include "vboxvideo_vbe.h"
> > -@@ -444,7 +447,10 @@ int vbox_bo_create(struct drm_device *dev, int
> size, int align,
> > - int vbox_gem_create(struct drm_device *dev,
> > - u32 size, bool iskernel, struct drm_gem_object
> **obj);
> > -
> > --int vbox_bo_pin(struct vbox_bo *bo, u32 pl_flag, u64 *gpu_addr);
> > -+#define VBOX_MEM_TYPE_VRAM 0x1
> > -+#define VBOX_MEM_TYPE_SYSTEM 0x2
> > -+
> > -+int vbox_bo_pin(struct vbox_bo *bo, u32 mem_type, u64 *gpu_addr);
> > - int vbox_bo_unpin(struct vbox_bo *bo);
> > -
> > - static inline int vbox_bo_reserve(struct vbox_bo *bo, bool no_wait)
> > -@@ -469,7 +475,7 @@ static inline void vbox_bo_unreserve(struct vbox_bo
> *bo)
> > - ttm_bo_unreserve(&bo->bo);
> > - }
> > -
> > --void vbox_ttm_placement(struct vbox_bo *bo, int domain);
> > -+void vbox_ttm_placement(struct vbox_bo *bo, u32 mem_type);
> > - int vbox_bo_push_sysram(struct vbox_bo *bo);
> > - int vbox_mmap(struct file *filp, struct vm_area_struct *vma);
> > -
> > -diff --git a/src/VBox/Additions/linux/drm/vbox_fb.c
> b/src/VBox/Additions/linux/drm/vbox_fb.c
> > -index adead98d3d..7182d9da1a 100644
> > ---- a/src/VBox/Additions/linux/drm/vbox_fb.c
> > -+++ b/src/VBox/Additions/linux/drm/vbox_fb.c
> > -@@ -295,7 +295,7 @@ static int vboxfb_create(struct drm_fb_helper
> *helper,
> > - if (ret)
> > - return ret;
> > -
> > -- ret = vbox_bo_pin(bo, TTM_PL_FLAG_VRAM, NULL);
> > -+ ret = vbox_bo_pin(bo, VBOX_MEM_TYPE_VRAM, NULL);
> > - if (ret) {
> > - vbox_bo_unreserve(bo);
> > - return ret;
> > -diff --git a/src/VBox/Additions/linux/drm/vbox_mode.c
> b/src/VBox/Additions/linux/drm/vbox_mode.c
> > -index ce7d135cb6..5557db5ef8 100644
> > ---- a/src/VBox/Additions/linux/drm/vbox_mode.c
> > -+++ b/src/VBox/Additions/linux/drm/vbox_mode.c
> > -@@ -227,7 +227,7 @@ static int vbox_crtc_set_base(struct drm_crtc *crtc,
> > - if (ret)
> > - return ret;
> > -
> > -- ret = vbox_bo_pin(bo, TTM_PL_FLAG_VRAM, &gpu_addr);
> > -+ ret = vbox_bo_pin(bo, VBOX_MEM_TYPE_VRAM, &gpu_addr);
> > - vbox_bo_unreserve(bo);
> > - if (ret)
> > - return ret;
> > -diff --git a/src/VBox/Additions/linux/drm/vbox_ttm.c
> b/src/VBox/Additions/linux/drm/vbox_ttm.c
> > -index bf87aabc05..5eac926a42 100644
> > ---- a/src/VBox/Additions/linux/drm/vbox_ttm.c
> > -+++ b/src/VBox/Additions/linux/drm/vbox_ttm.c
> > -@@ -41,6 +41,7 @@
> > - #define PLACEMENT_FLAGS(placement) ((placement).flags)
> > - #endif
> > -
> > -+
> > - static inline struct vbox_private *vbox_bdev(struct ttm_bo_device *bd)
> > - {
> > - return container_of(bd, struct vbox_private, ttm.bdev);
> > -@@ -125,6 +126,7 @@ static bool vbox_ttm_bo_is_vbox_bo(struct
> ttm_buffer_object *bo)
> > - return false;
> > - }
> > -
> > -+#if RTLNX_VER_MAX(5,10,0)
> > - static int
> > - vbox_bo_init_mem_type(struct ttm_bo_device *bdev, u32 type,
> > - struct ttm_mem_type_manager *man)
> > -@@ -148,6 +150,7 @@ vbox_bo_init_mem_type(struct ttm_bo_device *bdev,
> u32 type,
> > -
> > - return 0;
> > - }
> > -+#endif
> > -
> > - static void
> > - vbox_bo_evict_flags(struct ttm_buffer_object *bo, struct ttm_placement
> *pl)
> > -@@ -157,7 +160,7 @@ vbox_bo_evict_flags(struct ttm_buffer_object *bo,
> struct ttm_placement *pl)
> > - if (!vbox_ttm_bo_is_vbox_bo(bo))
> > - return;
> > -
> > -- vbox_ttm_placement(vboxbo, TTM_PL_FLAG_SYSTEM);
> > -+ vbox_ttm_placement(vboxbo, VBOX_MEM_TYPE_SYSTEM);
> > - *pl = vboxbo->placement;
> > - }
> > -
> > -@@ -167,11 +170,12 @@ static int vbox_bo_verify_access(struct
> ttm_buffer_object *bo,
> > - return 0;
> > - }
> > -
> > -+#if RTLNX_VER_MAX(5,10,0)
> > - static int vbox_ttm_io_mem_reserve(struct ttm_bo_device *bdev,
> > - struct ttm_mem_reg *mem)
> > - {
> > -- struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type];
> > - struct vbox_private *vbox = vbox_bdev(bdev);
> > -+ struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type];
> > -
> > - mem->bus.addr = NULL;
> > - mem->bus.offset = 0;
> > -@@ -194,12 +198,53 @@ static int vbox_ttm_io_mem_reserve(struct
> ttm_bo_device *bdev,
> > - }
> > - return 0;
> > - }
> > -+#else
> > -+static int vbox_ttm_io_mem_reserve(struct ttm_bo_device *bdev,
> > -+ struct ttm_resource *mem)
> > -+{
> > -+ struct vbox_private *vbox = vbox_bdev(bdev);
> > -+ mem->bus.addr = NULL;
> > -+ mem->bus.offset = 0;
> > -+ mem->size = mem->num_pages << PAGE_SHIFT;
> > -+ mem->start = 0;
> > -+ mem->bus.is_iomem = false;
> > -+ switch (mem->mem_type) {
> > -+ case TTM_PL_SYSTEM:
> > -+ /* system memory */
> > -+ return 0;
> > -+ case TTM_PL_VRAM:
> > -+ mem->bus.offset = mem->start << PAGE_SHIFT;
> > -+ mem->start = pci_resource_start(vbox->dev->pdev, 0);
> > -+ mem->bus.is_iomem = true;
> > -+ break;
> > -+ default:
> > -+ return -EINVAL;
> > -+ }
> > -+ return 0;
> > -+}
> > -+#endif
> > -
> > -+
> > -+
> > -+#if RTLNX_VER_MIN(5,10,0)
> > -+static void vbox_ttm_io_mem_free(struct ttm_bo_device *bdev,
> > -+ struct ttm_resource *mem)
> > -+{
> > -+}
> > -+#else
> > - static void vbox_ttm_io_mem_free(struct ttm_bo_device *bdev,
> > - struct ttm_mem_reg *mem)
> > - {
> > - }
> > -+#endif
> > -
> > -+#if RTLNX_VER_MIN(5,10,0)
> > -+static void vbox_ttm_tt_destroy(struct ttm_bo_device *bdev, struct
> ttm_tt *tt)
> > -+{
> > -+ ttm_tt_fini(tt);
> > -+ kfree(tt);
> > -+}
> > -+#else
> > - static void vbox_ttm_backend_destroy(struct ttm_tt *tt)
> > - {
> > - ttm_tt_fini(tt);
> > -@@ -209,6 +254,7 @@ static void vbox_ttm_backend_destroy(struct ttm_tt
> *tt)
> > - static struct ttm_backend_func vbox_tt_backend_func = {
> > - .destroy = &vbox_ttm_backend_destroy,
> > - };
> > -+#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)
> > - static struct ttm_tt *vbox_ttm_tt_create(struct ttm_bo_device *bdev,
> > -@@ -226,7 +272,9 @@ static struct ttm_tt *vbox_ttm_tt_create(struct
> ttm_buffer_object *bo,
> > - if (!tt)
> > - return NULL;
> > -
> > -+#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 (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) {
> > - #else
> > -@@ -261,11 +309,16 @@ static void vbox_ttm_tt_unpopulate(struct ttm_tt
> *ttm)
> > -
> > - static struct ttm_bo_driver vbox_bo_driver = {
> > - .ttm_tt_create = vbox_ttm_tt_create,
> > -+#if RTLNX_VER_MIN(5,10,0)
> > -+ .ttm_tt_destroy = vbox_ttm_tt_destroy,
> > -+#endif
> > - #if RTLNX_VER_MAX(4,17,0)
> > - .ttm_tt_populate = vbox_ttm_tt_populate,
> > - .ttm_tt_unpopulate = vbox_ttm_tt_unpopulate,
> > - #endif
> > -+#if RTLNX_VER_MAX(5,10,0)
> > - .init_mem_type = vbox_bo_init_mem_type,
> > -+#endif
> > - #if RTLNX_VER_MIN(4,10,0) || RTLNX_RHEL_MAJ_PREREQ(7,4)
> > - .eviction_valuable = ttm_bo_eviction_valuable,
> > - #endif
> > -@@ -318,8 +371,13 @@ int vbox_mm_init(struct vbox_private *vbox)
> > - #endif
> > - }
> > -
> > -+#if RTLNX_VER_MIN(5,10,0)
> > -+ ret = ttm_range_man_init(bdev, TTM_PL_VRAM, false,
> > -+ vbox->available_vram_size >> PAGE_SHIFT);
> > -+#else
> > - ret = ttm_bo_init_mm(bdev, TTM_PL_VRAM,
> > - vbox->available_vram_size >> PAGE_SHIFT);
> > -+#endif
> > - if (ret) {
> > - DRM_ERROR("Failed ttm VRAM init: %d\n", ret);
> > - goto err_device_release;
> > -@@ -359,7 +417,7 @@ void vbox_mm_fini(struct vbox_private *vbox)
> > - #endif
> > - }
> > -
> > --void vbox_ttm_placement(struct vbox_bo *bo, int domain)
> > -+void vbox_ttm_placement(struct vbox_bo *bo, u32 mem_type)
> > - {
> > - u32 c = 0;
> > - #if RTLNX_VER_MAX(3,18,0) && !RTLNX_RHEL_MAJ_PREREQ(7,2)
> > -@@ -372,15 +430,36 @@ void vbox_ttm_placement(struct vbox_bo *bo, int
> domain)
> > - bo->placement.placement = bo->placements;
> > - bo->placement.busy_placement = bo->placements;
> > -
> > -- if (domain & TTM_PL_FLAG_VRAM)
> > -+ if (mem_type & VBOX_MEM_TYPE_VRAM) {
> > -+#if RTLNX_VER_MIN(5,10,0)
> > -+ bo->placements[c].mem_type = TTM_PL_VRAM;
> > -+ PLACEMENT_FLAGS(bo->placements[c++]) =
> > -+ TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED;
> > -+#else
> > - PLACEMENT_FLAGS(bo->placements[c++]) =
> > - TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED |
> TTM_PL_FLAG_VRAM;
> > -- if (domain & TTM_PL_FLAG_SYSTEM)
> > -+#endif
> > -+ }
> > -+ if (mem_type & VBOX_MEM_TYPE_SYSTEM) {
> > -+#if RTLNX_VER_MIN(5,10,0)
> > -+ bo->placements[c].mem_type = TTM_PL_SYSTEM;
> > -+ PLACEMENT_FLAGS(bo->placements[c++]) =
> > -+ TTM_PL_MASK_CACHING;
> > -+#else
> > - PLACEMENT_FLAGS(bo->placements[c++]) =
> > - TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM;
> > -- if (!c)
> > -+#endif
> > -+ }
> > -+ if (!c) {
> > -+#if RTLNX_VER_MIN(5,10,0)
> > -+ bo->placements[c].mem_type = TTM_PL_SYSTEM;
> > -+ PLACEMENT_FLAGS(bo->placements[c++]) =
> > -+ TTM_PL_MASK_CACHING;
> > -+#else
> > - PLACEMENT_FLAGS(bo->placements[c++]) =
> > - TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM;
> > -+#endif
> > -+ }
> > -
> > - bo->placement.num_placement = c;
> > - bo->placement.num_busy_placement = c;
> > -@@ -414,7 +493,7 @@ int vbox_bo_create(struct drm_device *dev, int
> size, int align,
> > - vboxbo->bo.bdev->dev_mapping = dev->dev_mapping;
> > - #endif
> > -
> > -- vbox_ttm_placement(vboxbo, TTM_PL_FLAG_VRAM |
> TTM_PL_FLAG_SYSTEM);
> > -+ vbox_ttm_placement(vboxbo, VBOX_MEM_TYPE_VRAM |
> VBOX_MEM_TYPE_SYSTEM);
> > -
> > - acc_size = ttm_bo_dma_acc_size(&vbox->ttm.bdev, size,
> > - sizeof(struct vbox_bo));
> > -@@ -452,7 +531,7 @@ static inline u64 vbox_bo_gpu_offset(struct vbox_bo
> *bo)
> > - #endif
> > - }
> > -
> > --int vbox_bo_pin(struct vbox_bo *bo, u32 pl_flag, u64 *gpu_addr)
> > -+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)
> > - struct ttm_operation_ctx ctx = { false, false };
> > -@@ -467,7 +546,7 @@ int vbox_bo_pin(struct vbox_bo *bo, u32 pl_flag,
> u64 *gpu_addr)
> > - return 0;
> > - }
> > -
> > -- vbox_ttm_placement(bo, pl_flag);
> > -+ vbox_ttm_placement(bo, mem_type);
> > -
> > - for (i = 0; i < bo->placement.num_placement; i++)
> > - PLACEMENT_FLAGS(bo->placements[i]) |=
> TTM_PL_FLAG_NO_EVICT;
> > -@@ -540,7 +619,7 @@ int vbox_bo_push_sysram(struct vbox_bo *bo)
> > - if (bo->kmap.virtual)
> > - ttm_bo_kunmap(&bo->kmap);
> > -
> > -- vbox_ttm_placement(bo, TTM_PL_FLAG_SYSTEM);
> > -+ vbox_ttm_placement(bo, VBOX_MEM_TYPE_SYSTEM);
> > -
> > - for (i = 0; i < bo->placement.num_placement; i++)
> > - PLACEMENT_FLAGS(bo->placements[i]) |=
> TTM_PL_FLAG_NO_EVICT;
> > ---
> > -2.19.1
> > -
> > diff --git
> a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch
> b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch
> > deleted file mode 100644
> > index db27cb883..000000000
> > ---
> a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch
> > +++ /dev/null
> > @@ -1,119 +0,0 @@
> > -From 2a6e3cf63f58e289802a11faad5fb495e2d04e97 Mon Sep 17 00:00:00 2001
> > -From: vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>
> > -Date: Wed, 9 Dec 2020 18:59:04 +0000
> > -Subject: [PATCH] Runtime/memobj-r0drv-linux.c: Changes to support the
> upcoming
> > - 5.10 kernel, bugref:9879
> > -
> > -Upstream-Status: Backport
> > -
> > -git-svn-id: http://www.virtualbox.org/svn/vbox@87074
> cfe28804-0f27-0410-a406-dd0f0b0b656f
> > -
> > -Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
> > ----
> > - .../Runtime/r0drv/linux/memobj-r0drv-linux.c | 68 ++++++++++++++++++-
> > - 1 file changed, 67 insertions(+), 1 deletion(-)
> > -
> > ---- a/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
> > -+++ b/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
> > -@@ -56,9 +56,19 @@
> > - * Whether we use alloc_vm_area (3.2+) for executable memory.
> > - * This is a must for 5.8+, but we enable it all the way back to 3.2.x
> for
> > - * better W^R compliance (fExecutable flag). */
> > --#if RTLNX_VER_MIN(3,2,0) || defined(DOXYGEN_RUNNING)
> > -+#if RTLNX_VER_RANGE(3,2,0, 5,10,0) || defined(DOXYGEN_RUNNING)
> > - # define IPRT_USE_ALLOC_VM_AREA_FOR_EXEC
> > - #endif
> > -+/** @def IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC
> > -+ * alloc_vm_area was removed with 5.10 so we have to resort to a
> different way
> > -+ * to allocate executable memory.
> > -+ * It would be possible to remove IPRT_USE_ALLOC_VM_AREA_FOR_EXEC and
> use
> > -+ * this path execlusively for 3.2+ but no time to test it really works
> on every
> > -+ * supported kernel, so better play safe for now.
> > -+ */
> > -+#if RTLNX_VER_MIN(5,10,0) || defined(DOXYGEN_RUNNING)
> > -+# define IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC
> > -+#endif
> > -
> > - /*
> > - * 2.6.29+ kernels don't work with remap_pfn_range() anymore because
> > -@@ -502,6 +512,46 @@ static void rtR0MemObjLinuxFreePages(PRT
> > - }
> > -
> > -
> > -+#ifdef IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC
> > -+/**
> > -+ * User data passed to the apply_to_page_range() callback.
> > -+ */
> > -+typedef struct LNXAPPLYPGRANGE
> > -+{
> > -+ /** Pointer to the memory object. */
> > -+ PRTR0MEMOBJLNX pMemLnx;
> > -+ /** The page protection flags to apply. */
> > -+ pgprot_t fPg;
> > -+} LNXAPPLYPGRANGE;
> > -+/** Pointer to the user data. */
> > -+typedef LNXAPPLYPGRANGE *PLNXAPPLYPGRANGE;
> > -+/** Pointer to the const user data. */
> > -+typedef const LNXAPPLYPGRANGE *PCLNXAPPLYPGRANGE;
> > -+
> > -+/**
> > -+ * Callback called in apply_to_page_range().
> > -+ *
> > -+ * @returns Linux status code.
> > -+ * @param pPte Pointer to the page table entry for
> the given address.
> > -+ * @param uAddr The address to apply the new
> protection to.
> > -+ * @param pvUser The opaque user data.
> > -+ */
> > -+#ifdef __i386__
> > -+static int rtR0MemObjLinuxApplyPageRange(pte_t *pPte, unsigned long
> uAddr, void *pvUser)
> > -+#else
> > -+static DECLCALLBACK(int) rtR0MemObjLinuxApplyPageRange(pte_t *pPte,
> unsigned long uAddr, void *pvUser)
> > -+#endif
> > -+{
> > -+ PCLNXAPPLYPGRANGE pArgs = (PCLNXAPPLYPGRANGE)pvUser;
> > -+ PRTR0MEMOBJLNX pMemLnx = pArgs->pMemLnx;
> > -+ size_t idxPg = (uAddr - (unsigned long)pMemLnx->Core.pv) >>
> PAGE_SHIFT;
> > -+
> > -+ set_pte(pPte, mk_pte(pMemLnx->apPages[idxPg], pArgs->fPg));
> > -+ return 0;
> > -+}
> > -+#endif
> > -+
> > -+
> > - /**
> > - * Maps the allocation into ring-0.
> > - *
> > -@@ -584,6 +634,11 @@ static int rtR0MemObjLinuxVMap(PRTR0MEMO
> > - else
> > - # endif
> > - {
> > -+# if defined(IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC)
> > -+ if (fExecutable)
> > -+ pgprot_val(fPg) |= _PAGE_NX; /* Uses RTR0MemObjProtect
> to clear NX when memory ready, W^X fashion. */
> > -+# endif
> > -+
> > - # ifdef VM_MAP
> > - pMemLnx->Core.pv = vmap(&pMemLnx->apPages[0],
> pMemLnx->cPages, VM_MAP, fPg);
> > - # else
> > -@@ -1851,6 +1906,21 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(
> > - preempt_enable();
> > - return VINF_SUCCESS;
> > - }
> > -+# elif defined(IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC)
> > -+ PRTR0MEMOBJLNX pMemLnx = (PRTR0MEMOBJLNX)pMem;
> > -+ if ( pMemLnx->fExecutable
> > -+ && pMemLnx->fMappedToRing0)
> > -+ {
> > -+ LNXAPPLYPGRANGE Args;
> > -+ Args.pMemLnx = pMemLnx;
> > -+ Args.fPg = rtR0MemObjLinuxConvertProt(fProt, true /*fKernel*/);
> > -+ int rcLnx = apply_to_page_range(current->active_mm, (unsigned
> long)pMemLnx->Core.pv + offSub, cbSub,
> > -+ rtR0MemObjLinuxApplyPageRange,
> (void *)&Args);
> > -+ if (rcLnx)
> > -+ return VERR_NOT_SUPPORTED;
> > -+
> > -+ return VINF_SUCCESS;
> > -+ }
> > - # endif
> > -
> > - NOREF(pMem);
> > diff --git
> a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch
> b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch
> > deleted file mode 100644
> > index 3cfe2e917..000000000
> > ---
> a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch
> > +++ /dev/null
> > @@ -1,46 +0,0 @@
> > -From a276f8bc5e4515f7ea51e2c56e0e634a723ca104 Mon Sep 17 00:00:00 2001
> > -From: vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>
> > -Date: Tue, 8 Dec 2020 13:52:53 +0000
> > -Subject: [PATCH] linser/vboxsf: Adjustment for linux 5.10 -
> TASK_SIZE_MAX
> > - replaces USER_DS.seg. bugref:9879
> > -
> > -Upstream-Status: Backport
> > -
> > -git-svn-id: http://www.virtualbox.org/svn/vbox@87053
> cfe28804-0f27-0410-a406-dd0f0b0b656f
> > -
> > -Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
> > ----
> > - src/VBox/Additions/linux/sharedfolders/regops.c | 9 ++++++++-
> > - 1 file changed, 8 insertions(+), 1 deletion(-)
> > -
> > -diff --git a/src/VBox/Additions/linux/sharedfolders/regops.c
> b/src/VBox/Additions/linux/sharedfolders/regops.c
> > -index e1fad3d820..401fd69930 100644
> > ---- a/src/VBox/Additions/linux/sharedfolders/regops.c
> > -+++ b/src/VBox/Additions/linux/sharedfolders/regops.c
> > -@@ -147,7 +147,11 @@ static int vbsf_iov_iter_detect_type(struct iovec
> const *paIov, size_t cSegs)
> > - while (cSegs-- > 0) {
> > - if (paIov->iov_len > 0) {
> > - if (access_ok(VERIFY_READ, paIov->iov_base,
> paIov->iov_len))
> > -+#if RTLNX_VER_MIN(5,10,0)
> > -+ return (uintptr_t)paIov->iov_base >= TASK_SIZE_MAX ?
> ITER_KVEC : 0;
> > -+#else
> > - return (uintptr_t)paIov->iov_base >= USER_DS.seg ?
> ITER_KVEC : 0;
> > -+#endif
> > - AssertMsgFailed(("%p LB %#zx\n", paIov->iov_base,
> paIov->iov_len));
> > - break;
> > - }
> > -@@ -1401,7 +1405,10 @@ static int
> vbsf_lock_user_pages_failed_check_kernel(uintptr_t uPtrFrom, size_t c
> > - /*
> > - * Check that this is valid user memory that is actually in the
> kernel range.
> > - */
> > --#if RTLNX_VER_MIN(5,0,0) || RTLNX_RHEL_MIN(8,1)
> > -+#if RTLNX_VER_MIN(5,10,0)
> > -+ if ( access_ok((void *)uPtrFrom, cPages << PAGE_SHIFT)
> > -+ && uPtrFrom >= TASK_SIZE_MAX)
> > -+#elif RTLNX_VER_MIN(5,0,0) || RTLNX_RHEL_MIN(8,1)
> > - if ( access_ok((void *)uPtrFrom, cPages << PAGE_SHIFT)
> > - && uPtrFrom >= USER_DS.seg)
> > - #else
> > ---
> > -2.19.1
> > -
> > diff --git a/meta-oe/recipes-support/vboxguestdrivers/
> vboxguestdrivers_6.1.16.bb b/meta-oe/recipes-support/vboxguestdrivers/
> vboxguestdrivers_6.1.18.bb
> > similarity index 88%
> > rename from meta-oe/recipes-support/vboxguestdrivers/
> vboxguestdrivers_6.1.16.bb
> > rename to meta-oe/recipes-support/vboxguestdrivers/
> vboxguestdrivers_6.1.18.bb
> > index ff639c09f..ea6a082f6 100644
> > --- a/meta-oe/recipes-support/vboxguestdrivers/
> vboxguestdrivers_6.1.16.bb
> > +++ b/meta-oe/recipes-support/vboxguestdrivers/
> vboxguestdrivers_6.1.18.bb
> > @@ -13,12 +13,9 @@ VBOX_NAME = "VirtualBox-${PV}"
> >
> > SRC_URI = "
> http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
> > file://Makefile.utils \
> > - file://0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch \
> > -
> file://0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch \
> > -
> file://0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch \
> > "
> > -SRC_URI[md5sum] = "a12a647f6c114f2cb1571089b36841fe"
> > -SRC_URI[sha256sum] =
> "49c1990da16d8a3d5bda8cdb961ec8195a901e67e4c79aea44c1521a5fc2f9f1"
> > +SRC_URI[md5sum] = "c61001386eb3822ab8f06d688a82e84b"
> > +SRC_URI[sha256sum] =
> "108d42b9b391b7a332a33df1662cf7b0e9d9a80f3079d16288d8b9487f427d40"
> >
> > S ?= "${WORKDIR}/vbox_module"
> > S_task-patch = "${WORKDIR}/${VBOX_NAME}"
> > --
> > 2.25.1
> >
> >
> >
> >
>
[-- Attachment #2: Type: text/html, Size: 31460 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [oe] [meta-oe][PATCH] vboxguestdrivers: upgrade 6.1.16 -> 6.1.18
2021-01-21 21:53 ` Gianfranco
@ 2021-01-22 1:41 ` Khem Raj
0 siblings, 0 replies; 4+ messages in thread
From: Khem Raj @ 2021-01-22 1:41 UTC (permalink / raw)
To: Gianfranco Costamagna
Cc: openembeded-devel, Gianfranco Costamagna, Gianfranco Costamagna
its really not musl related but more related to building on x86(32bit)
On Thu, Jan 21, 2021 at 1:53 PM Gianfranco Costamagna
<costamagna.gianfranco@gmail.com> wrote:
>
> Hello, I resubmitted with a little patch that fixes part (but not all) the musl failures.
>
> Just to be clear, this seems to be not a regression, the current master with 6.1.16 has the very same failures on i386.
>
> The current proposed patchset is not making the situation worse, and upstream is having a look at the issue.
>
> Gianfranco
>
> Il giorno gio 21 gen 2021 alle ore 09:26 Khem Raj <raj.khem@gmail.com> ha scritto:
>>
>> fails on musl/x86
>>
>> https://errors.yoctoproject.org/Errors/Details/541637/
>>
>> On Wed, Jan 20, 2021 at 5:01 AM Gianfranco
>> <costamagna.gianfranco@gmail.com> wrote:
>> >
>> > Drop kernel 5.10 build fixes patches, now part of upstream codebase
>> >
>> > Signed-off-by: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
>> > Signed-off-by: Gianfranco Costamagna <locutusofborg@debian.org>
>> > ---
>> > ...-linux-drm-Adjustment-for-Linux-5.10.patch | 321 ------------------
>> > ...0drv-linux.c-Changes-to-support-the-.patch | 119 -------
>> > ...justment-for-linux-5.10-TASK_SIZE_MA.patch | 46 ---
>> > ...s_6.1.16.bb => vboxguestdrivers_6.1.18.bb} | 7 +-
>> > 4 files changed, 2 insertions(+), 491 deletions(-)
>> > delete mode 100644 meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch
>> > delete mode 100644 meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch
>> > delete mode 100644 meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch
>> > rename meta-oe/recipes-support/vboxguestdrivers/{vboxguestdrivers_6.1.16.bb => vboxguestdrivers_6.1.18.bb} (88%)
>> >
>> > diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch
>> > deleted file mode 100644
>> > index a444901f8..000000000
>> > --- a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch
>> > +++ /dev/null
>> > @@ -1,321 +0,0 @@
>> > -From b6c765d693a0833b94cb2e91b32842570c3458d2 Mon Sep 17 00:00:00 2001
>> > -From: vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>
>> > -Date: Tue, 15 Dec 2020 22:29:56 +0000
>> > -Subject: [PATCH] Additions/linux/drm: Adjustment for Linux 5.10.
>> > -
>> > -Upstream-Status: Backport
>> > -
>> > -git-svn-id: http://www.virtualbox.org/svn/vbox@87092 cfe28804-0f27-0410-a406-dd0f0b0b656f
>> > -
>> > -Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
>> > -
>> > ----
>> > - src/VBox/Additions/linux/drm/vbox_drv.h | 10 +-
>> > - src/VBox/Additions/linux/drm/vbox_fb.c | 2 +-
>> > - .../src/VBox/Additions/linux/drm/vbox_mode.c | 2 +-
>> > - src/VBox/Additions/linux/drm/vbox_ttm.c | 99 +++++++++++++++++--
>> > - 4 files changed, 99 insertions(+), 14 deletions(-)
>> > -
>> > -diff --git a/src/VBox/Additions/linux/drm/vbox_drv.h b/src/VBox/Additions/linux/drm/vbox_drv.h
>> > -index 8c85371749..7937f2f2d2 100644
>> > ---- a/src/VBox/Additions/linux/drm/vbox_drv.h
>> > -+++ b/src/VBox/Additions/linux/drm/vbox_drv.h
>> > -@@ -175,6 +175,9 @@
>> > - #include <drm/ttm/ttm_placement.h>
>> > - #include <drm/ttm/ttm_memory.h>
>> > - #include <drm/ttm/ttm_module.h>
>> > -+#if RTLNX_VER_MIN(5,10,0)
>> > -+# include <drm/ttm/ttm_resource.h>
>> > -+#endif
>> > -
>> > - #include "vboxvideo_guest.h"
>> > - #include "vboxvideo_vbe.h"
>> > -@@ -444,7 +447,10 @@ int vbox_bo_create(struct drm_device *dev, int size, int align,
>> > - int vbox_gem_create(struct drm_device *dev,
>> > - u32 size, bool iskernel, struct drm_gem_object **obj);
>> > -
>> > --int vbox_bo_pin(struct vbox_bo *bo, u32 pl_flag, u64 *gpu_addr);
>> > -+#define VBOX_MEM_TYPE_VRAM 0x1
>> > -+#define VBOX_MEM_TYPE_SYSTEM 0x2
>> > -+
>> > -+int vbox_bo_pin(struct vbox_bo *bo, u32 mem_type, u64 *gpu_addr);
>> > - int vbox_bo_unpin(struct vbox_bo *bo);
>> > -
>> > - static inline int vbox_bo_reserve(struct vbox_bo *bo, bool no_wait)
>> > -@@ -469,7 +475,7 @@ static inline void vbox_bo_unreserve(struct vbox_bo *bo)
>> > - ttm_bo_unreserve(&bo->bo);
>> > - }
>> > -
>> > --void vbox_ttm_placement(struct vbox_bo *bo, int domain);
>> > -+void vbox_ttm_placement(struct vbox_bo *bo, u32 mem_type);
>> > - int vbox_bo_push_sysram(struct vbox_bo *bo);
>> > - int vbox_mmap(struct file *filp, struct vm_area_struct *vma);
>> > -
>> > -diff --git a/src/VBox/Additions/linux/drm/vbox_fb.c b/src/VBox/Additions/linux/drm/vbox_fb.c
>> > -index adead98d3d..7182d9da1a 100644
>> > ---- a/src/VBox/Additions/linux/drm/vbox_fb.c
>> > -+++ b/src/VBox/Additions/linux/drm/vbox_fb.c
>> > -@@ -295,7 +295,7 @@ static int vboxfb_create(struct drm_fb_helper *helper,
>> > - if (ret)
>> > - return ret;
>> > -
>> > -- ret = vbox_bo_pin(bo, TTM_PL_FLAG_VRAM, NULL);
>> > -+ ret = vbox_bo_pin(bo, VBOX_MEM_TYPE_VRAM, NULL);
>> > - if (ret) {
>> > - vbox_bo_unreserve(bo);
>> > - return ret;
>> > -diff --git a/src/VBox/Additions/linux/drm/vbox_mode.c b/src/VBox/Additions/linux/drm/vbox_mode.c
>> > -index ce7d135cb6..5557db5ef8 100644
>> > ---- a/src/VBox/Additions/linux/drm/vbox_mode.c
>> > -+++ b/src/VBox/Additions/linux/drm/vbox_mode.c
>> > -@@ -227,7 +227,7 @@ static int vbox_crtc_set_base(struct drm_crtc *crtc,
>> > - if (ret)
>> > - return ret;
>> > -
>> > -- ret = vbox_bo_pin(bo, TTM_PL_FLAG_VRAM, &gpu_addr);
>> > -+ ret = vbox_bo_pin(bo, VBOX_MEM_TYPE_VRAM, &gpu_addr);
>> > - vbox_bo_unreserve(bo);
>> > - if (ret)
>> > - return ret;
>> > -diff --git a/src/VBox/Additions/linux/drm/vbox_ttm.c b/src/VBox/Additions/linux/drm/vbox_ttm.c
>> > -index bf87aabc05..5eac926a42 100644
>> > ---- a/src/VBox/Additions/linux/drm/vbox_ttm.c
>> > -+++ b/src/VBox/Additions/linux/drm/vbox_ttm.c
>> > -@@ -41,6 +41,7 @@
>> > - #define PLACEMENT_FLAGS(placement) ((placement).flags)
>> > - #endif
>> > -
>> > -+
>> > - static inline struct vbox_private *vbox_bdev(struct ttm_bo_device *bd)
>> > - {
>> > - return container_of(bd, struct vbox_private, ttm.bdev);
>> > -@@ -125,6 +126,7 @@ static bool vbox_ttm_bo_is_vbox_bo(struct ttm_buffer_object *bo)
>> > - return false;
>> > - }
>> > -
>> > -+#if RTLNX_VER_MAX(5,10,0)
>> > - static int
>> > - vbox_bo_init_mem_type(struct ttm_bo_device *bdev, u32 type,
>> > - struct ttm_mem_type_manager *man)
>> > -@@ -148,6 +150,7 @@ vbox_bo_init_mem_type(struct ttm_bo_device *bdev, u32 type,
>> > -
>> > - return 0;
>> > - }
>> > -+#endif
>> > -
>> > - static void
>> > - vbox_bo_evict_flags(struct ttm_buffer_object *bo, struct ttm_placement *pl)
>> > -@@ -157,7 +160,7 @@ vbox_bo_evict_flags(struct ttm_buffer_object *bo, struct ttm_placement *pl)
>> > - if (!vbox_ttm_bo_is_vbox_bo(bo))
>> > - return;
>> > -
>> > -- vbox_ttm_placement(vboxbo, TTM_PL_FLAG_SYSTEM);
>> > -+ vbox_ttm_placement(vboxbo, VBOX_MEM_TYPE_SYSTEM);
>> > - *pl = vboxbo->placement;
>> > - }
>> > -
>> > -@@ -167,11 +170,12 @@ static int vbox_bo_verify_access(struct ttm_buffer_object *bo,
>> > - return 0;
>> > - }
>> > -
>> > -+#if RTLNX_VER_MAX(5,10,0)
>> > - static int vbox_ttm_io_mem_reserve(struct ttm_bo_device *bdev,
>> > - struct ttm_mem_reg *mem)
>> > - {
>> > -- struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type];
>> > - struct vbox_private *vbox = vbox_bdev(bdev);
>> > -+ struct ttm_mem_type_manager *man = &bdev->man[mem->mem_type];
>> > -
>> > - mem->bus.addr = NULL;
>> > - mem->bus.offset = 0;
>> > -@@ -194,12 +198,53 @@ static int vbox_ttm_io_mem_reserve(struct ttm_bo_device *bdev,
>> > - }
>> > - return 0;
>> > - }
>> > -+#else
>> > -+static int vbox_ttm_io_mem_reserve(struct ttm_bo_device *bdev,
>> > -+ struct ttm_resource *mem)
>> > -+{
>> > -+ struct vbox_private *vbox = vbox_bdev(bdev);
>> > -+ mem->bus.addr = NULL;
>> > -+ mem->bus.offset = 0;
>> > -+ mem->size = mem->num_pages << PAGE_SHIFT;
>> > -+ mem->start = 0;
>> > -+ mem->bus.is_iomem = false;
>> > -+ switch (mem->mem_type) {
>> > -+ case TTM_PL_SYSTEM:
>> > -+ /* system memory */
>> > -+ return 0;
>> > -+ case TTM_PL_VRAM:
>> > -+ mem->bus.offset = mem->start << PAGE_SHIFT;
>> > -+ mem->start = pci_resource_start(vbox->dev->pdev, 0);
>> > -+ mem->bus.is_iomem = true;
>> > -+ break;
>> > -+ default:
>> > -+ return -EINVAL;
>> > -+ }
>> > -+ return 0;
>> > -+}
>> > -+#endif
>> > -
>> > -+
>> > -+
>> > -+#if RTLNX_VER_MIN(5,10,0)
>> > -+static void vbox_ttm_io_mem_free(struct ttm_bo_device *bdev,
>> > -+ struct ttm_resource *mem)
>> > -+{
>> > -+}
>> > -+#else
>> > - static void vbox_ttm_io_mem_free(struct ttm_bo_device *bdev,
>> > - struct ttm_mem_reg *mem)
>> > - {
>> > - }
>> > -+#endif
>> > -
>> > -+#if RTLNX_VER_MIN(5,10,0)
>> > -+static void vbox_ttm_tt_destroy(struct ttm_bo_device *bdev, struct ttm_tt *tt)
>> > -+{
>> > -+ ttm_tt_fini(tt);
>> > -+ kfree(tt);
>> > -+}
>> > -+#else
>> > - static void vbox_ttm_backend_destroy(struct ttm_tt *tt)
>> > - {
>> > - ttm_tt_fini(tt);
>> > -@@ -209,6 +254,7 @@ static void vbox_ttm_backend_destroy(struct ttm_tt *tt)
>> > - static struct ttm_backend_func vbox_tt_backend_func = {
>> > - .destroy = &vbox_ttm_backend_destroy,
>> > - };
>> > -+#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)
>> > - static struct ttm_tt *vbox_ttm_tt_create(struct ttm_bo_device *bdev,
>> > -@@ -226,7 +272,9 @@ static struct ttm_tt *vbox_ttm_tt_create(struct ttm_buffer_object *bo,
>> > - if (!tt)
>> > - return NULL;
>> > -
>> > -+#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 (ttm_tt_init(tt, bdev, size, page_flags, dummy_read_page)) {
>> > - #else
>> > -@@ -261,11 +309,16 @@ static void vbox_ttm_tt_unpopulate(struct ttm_tt *ttm)
>> > -
>> > - static struct ttm_bo_driver vbox_bo_driver = {
>> > - .ttm_tt_create = vbox_ttm_tt_create,
>> > -+#if RTLNX_VER_MIN(5,10,0)
>> > -+ .ttm_tt_destroy = vbox_ttm_tt_destroy,
>> > -+#endif
>> > - #if RTLNX_VER_MAX(4,17,0)
>> > - .ttm_tt_populate = vbox_ttm_tt_populate,
>> > - .ttm_tt_unpopulate = vbox_ttm_tt_unpopulate,
>> > - #endif
>> > -+#if RTLNX_VER_MAX(5,10,0)
>> > - .init_mem_type = vbox_bo_init_mem_type,
>> > -+#endif
>> > - #if RTLNX_VER_MIN(4,10,0) || RTLNX_RHEL_MAJ_PREREQ(7,4)
>> > - .eviction_valuable = ttm_bo_eviction_valuable,
>> > - #endif
>> > -@@ -318,8 +371,13 @@ int vbox_mm_init(struct vbox_private *vbox)
>> > - #endif
>> > - }
>> > -
>> > -+#if RTLNX_VER_MIN(5,10,0)
>> > -+ ret = ttm_range_man_init(bdev, TTM_PL_VRAM, false,
>> > -+ vbox->available_vram_size >> PAGE_SHIFT);
>> > -+#else
>> > - ret = ttm_bo_init_mm(bdev, TTM_PL_VRAM,
>> > - vbox->available_vram_size >> PAGE_SHIFT);
>> > -+#endif
>> > - if (ret) {
>> > - DRM_ERROR("Failed ttm VRAM init: %d\n", ret);
>> > - goto err_device_release;
>> > -@@ -359,7 +417,7 @@ void vbox_mm_fini(struct vbox_private *vbox)
>> > - #endif
>> > - }
>> > -
>> > --void vbox_ttm_placement(struct vbox_bo *bo, int domain)
>> > -+void vbox_ttm_placement(struct vbox_bo *bo, u32 mem_type)
>> > - {
>> > - u32 c = 0;
>> > - #if RTLNX_VER_MAX(3,18,0) && !RTLNX_RHEL_MAJ_PREREQ(7,2)
>> > -@@ -372,15 +430,36 @@ void vbox_ttm_placement(struct vbox_bo *bo, int domain)
>> > - bo->placement.placement = bo->placements;
>> > - bo->placement.busy_placement = bo->placements;
>> > -
>> > -- if (domain & TTM_PL_FLAG_VRAM)
>> > -+ if (mem_type & VBOX_MEM_TYPE_VRAM) {
>> > -+#if RTLNX_VER_MIN(5,10,0)
>> > -+ bo->placements[c].mem_type = TTM_PL_VRAM;
>> > -+ PLACEMENT_FLAGS(bo->placements[c++]) =
>> > -+ TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED;
>> > -+#else
>> > - PLACEMENT_FLAGS(bo->placements[c++]) =
>> > - TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_VRAM;
>> > -- if (domain & TTM_PL_FLAG_SYSTEM)
>> > -+#endif
>> > -+ }
>> > -+ if (mem_type & VBOX_MEM_TYPE_SYSTEM) {
>> > -+#if RTLNX_VER_MIN(5,10,0)
>> > -+ bo->placements[c].mem_type = TTM_PL_SYSTEM;
>> > -+ PLACEMENT_FLAGS(bo->placements[c++]) =
>> > -+ TTM_PL_MASK_CACHING;
>> > -+#else
>> > - PLACEMENT_FLAGS(bo->placements[c++]) =
>> > - TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM;
>> > -- if (!c)
>> > -+#endif
>> > -+ }
>> > -+ if (!c) {
>> > -+#if RTLNX_VER_MIN(5,10,0)
>> > -+ bo->placements[c].mem_type = TTM_PL_SYSTEM;
>> > -+ PLACEMENT_FLAGS(bo->placements[c++]) =
>> > -+ TTM_PL_MASK_CACHING;
>> > -+#else
>> > - PLACEMENT_FLAGS(bo->placements[c++]) =
>> > - TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM;
>> > -+#endif
>> > -+ }
>> > -
>> > - bo->placement.num_placement = c;
>> > - bo->placement.num_busy_placement = c;
>> > -@@ -414,7 +493,7 @@ int vbox_bo_create(struct drm_device *dev, int size, int align,
>> > - vboxbo->bo.bdev->dev_mapping = dev->dev_mapping;
>> > - #endif
>> > -
>> > -- vbox_ttm_placement(vboxbo, TTM_PL_FLAG_VRAM | TTM_PL_FLAG_SYSTEM);
>> > -+ vbox_ttm_placement(vboxbo, VBOX_MEM_TYPE_VRAM | VBOX_MEM_TYPE_SYSTEM);
>> > -
>> > - acc_size = ttm_bo_dma_acc_size(&vbox->ttm.bdev, size,
>> > - sizeof(struct vbox_bo));
>> > -@@ -452,7 +531,7 @@ static inline u64 vbox_bo_gpu_offset(struct vbox_bo *bo)
>> > - #endif
>> > - }
>> > -
>> > --int vbox_bo_pin(struct vbox_bo *bo, u32 pl_flag, u64 *gpu_addr)
>> > -+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)
>> > - struct ttm_operation_ctx ctx = { false, false };
>> > -@@ -467,7 +546,7 @@ int vbox_bo_pin(struct vbox_bo *bo, u32 pl_flag, u64 *gpu_addr)
>> > - return 0;
>> > - }
>> > -
>> > -- vbox_ttm_placement(bo, pl_flag);
>> > -+ vbox_ttm_placement(bo, mem_type);
>> > -
>> > - for (i = 0; i < bo->placement.num_placement; i++)
>> > - PLACEMENT_FLAGS(bo->placements[i]) |= TTM_PL_FLAG_NO_EVICT;
>> > -@@ -540,7 +619,7 @@ int vbox_bo_push_sysram(struct vbox_bo *bo)
>> > - if (bo->kmap.virtual)
>> > - ttm_bo_kunmap(&bo->kmap);
>> > -
>> > -- vbox_ttm_placement(bo, TTM_PL_FLAG_SYSTEM);
>> > -+ vbox_ttm_placement(bo, VBOX_MEM_TYPE_SYSTEM);
>> > -
>> > - for (i = 0; i < bo->placement.num_placement; i++)
>> > - PLACEMENT_FLAGS(bo->placements[i]) |= TTM_PL_FLAG_NO_EVICT;
>> > ---
>> > -2.19.1
>> > -
>> > diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch
>> > deleted file mode 100644
>> > index db27cb883..000000000
>> > --- a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch
>> > +++ /dev/null
>> > @@ -1,119 +0,0 @@
>> > -From 2a6e3cf63f58e289802a11faad5fb495e2d04e97 Mon Sep 17 00:00:00 2001
>> > -From: vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>
>> > -Date: Wed, 9 Dec 2020 18:59:04 +0000
>> > -Subject: [PATCH] Runtime/memobj-r0drv-linux.c: Changes to support the upcoming
>> > - 5.10 kernel, bugref:9879
>> > -
>> > -Upstream-Status: Backport
>> > -
>> > -git-svn-id: http://www.virtualbox.org/svn/vbox@87074 cfe28804-0f27-0410-a406-dd0f0b0b656f
>> > -
>> > -Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
>> > ----
>> > - .../Runtime/r0drv/linux/memobj-r0drv-linux.c | 68 ++++++++++++++++++-
>> > - 1 file changed, 67 insertions(+), 1 deletion(-)
>> > -
>> > ---- a/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
>> > -+++ b/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
>> > -@@ -56,9 +56,19 @@
>> > - * Whether we use alloc_vm_area (3.2+) for executable memory.
>> > - * This is a must for 5.8+, but we enable it all the way back to 3.2.x for
>> > - * better W^R compliance (fExecutable flag). */
>> > --#if RTLNX_VER_MIN(3,2,0) || defined(DOXYGEN_RUNNING)
>> > -+#if RTLNX_VER_RANGE(3,2,0, 5,10,0) || defined(DOXYGEN_RUNNING)
>> > - # define IPRT_USE_ALLOC_VM_AREA_FOR_EXEC
>> > - #endif
>> > -+/** @def IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC
>> > -+ * alloc_vm_area was removed with 5.10 so we have to resort to a different way
>> > -+ * to allocate executable memory.
>> > -+ * It would be possible to remove IPRT_USE_ALLOC_VM_AREA_FOR_EXEC and use
>> > -+ * this path execlusively for 3.2+ but no time to test it really works on every
>> > -+ * supported kernel, so better play safe for now.
>> > -+ */
>> > -+#if RTLNX_VER_MIN(5,10,0) || defined(DOXYGEN_RUNNING)
>> > -+# define IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC
>> > -+#endif
>> > -
>> > - /*
>> > - * 2.6.29+ kernels don't work with remap_pfn_range() anymore because
>> > -@@ -502,6 +512,46 @@ static void rtR0MemObjLinuxFreePages(PRT
>> > - }
>> > -
>> > -
>> > -+#ifdef IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC
>> > -+/**
>> > -+ * User data passed to the apply_to_page_range() callback.
>> > -+ */
>> > -+typedef struct LNXAPPLYPGRANGE
>> > -+{
>> > -+ /** Pointer to the memory object. */
>> > -+ PRTR0MEMOBJLNX pMemLnx;
>> > -+ /** The page protection flags to apply. */
>> > -+ pgprot_t fPg;
>> > -+} LNXAPPLYPGRANGE;
>> > -+/** Pointer to the user data. */
>> > -+typedef LNXAPPLYPGRANGE *PLNXAPPLYPGRANGE;
>> > -+/** Pointer to the const user data. */
>> > -+typedef const LNXAPPLYPGRANGE *PCLNXAPPLYPGRANGE;
>> > -+
>> > -+/**
>> > -+ * Callback called in apply_to_page_range().
>> > -+ *
>> > -+ * @returns Linux status code.
>> > -+ * @param pPte Pointer to the page table entry for the given address.
>> > -+ * @param uAddr The address to apply the new protection to.
>> > -+ * @param pvUser The opaque user data.
>> > -+ */
>> > -+#ifdef __i386__
>> > -+static int rtR0MemObjLinuxApplyPageRange(pte_t *pPte, unsigned long uAddr, void *pvUser)
>> > -+#else
>> > -+static DECLCALLBACK(int) rtR0MemObjLinuxApplyPageRange(pte_t *pPte, unsigned long uAddr, void *pvUser)
>> > -+#endif
>> > -+{
>> > -+ PCLNXAPPLYPGRANGE pArgs = (PCLNXAPPLYPGRANGE)pvUser;
>> > -+ PRTR0MEMOBJLNX pMemLnx = pArgs->pMemLnx;
>> > -+ size_t idxPg = (uAddr - (unsigned long)pMemLnx->Core.pv) >> PAGE_SHIFT;
>> > -+
>> > -+ set_pte(pPte, mk_pte(pMemLnx->apPages[idxPg], pArgs->fPg));
>> > -+ return 0;
>> > -+}
>> > -+#endif
>> > -+
>> > -+
>> > - /**
>> > - * Maps the allocation into ring-0.
>> > - *
>> > -@@ -584,6 +634,11 @@ static int rtR0MemObjLinuxVMap(PRTR0MEMO
>> > - else
>> > - # endif
>> > - {
>> > -+# if defined(IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC)
>> > -+ if (fExecutable)
>> > -+ pgprot_val(fPg) |= _PAGE_NX; /* Uses RTR0MemObjProtect to clear NX when memory ready, W^X fashion. */
>> > -+# endif
>> > -+
>> > - # ifdef VM_MAP
>> > - pMemLnx->Core.pv = vmap(&pMemLnx->apPages[0], pMemLnx->cPages, VM_MAP, fPg);
>> > - # else
>> > -@@ -1851,6 +1906,21 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(
>> > - preempt_enable();
>> > - return VINF_SUCCESS;
>> > - }
>> > -+# elif defined(IPRT_USE_APPLY_TO_PAGE_RANGE_FOR_EXEC)
>> > -+ PRTR0MEMOBJLNX pMemLnx = (PRTR0MEMOBJLNX)pMem;
>> > -+ if ( pMemLnx->fExecutable
>> > -+ && pMemLnx->fMappedToRing0)
>> > -+ {
>> > -+ LNXAPPLYPGRANGE Args;
>> > -+ Args.pMemLnx = pMemLnx;
>> > -+ Args.fPg = rtR0MemObjLinuxConvertProt(fProt, true /*fKernel*/);
>> > -+ int rcLnx = apply_to_page_range(current->active_mm, (unsigned long)pMemLnx->Core.pv + offSub, cbSub,
>> > -+ rtR0MemObjLinuxApplyPageRange, (void *)&Args);
>> > -+ if (rcLnx)
>> > -+ return VERR_NOT_SUPPORTED;
>> > -+
>> > -+ return VINF_SUCCESS;
>> > -+ }
>> > - # endif
>> > -
>> > - NOREF(pMem);
>> > diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch
>> > deleted file mode 100644
>> > index 3cfe2e917..000000000
>> > --- a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch
>> > +++ /dev/null
>> > @@ -1,46 +0,0 @@
>> > -From a276f8bc5e4515f7ea51e2c56e0e634a723ca104 Mon Sep 17 00:00:00 2001
>> > -From: vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>
>> > -Date: Tue, 8 Dec 2020 13:52:53 +0000
>> > -Subject: [PATCH] linser/vboxsf: Adjustment for linux 5.10 - TASK_SIZE_MAX
>> > - replaces USER_DS.seg. bugref:9879
>> > -
>> > -Upstream-Status: Backport
>> > -
>> > -git-svn-id: http://www.virtualbox.org/svn/vbox@87053 cfe28804-0f27-0410-a406-dd0f0b0b656f
>> > -
>> > -Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
>> > ----
>> > - src/VBox/Additions/linux/sharedfolders/regops.c | 9 ++++++++-
>> > - 1 file changed, 8 insertions(+), 1 deletion(-)
>> > -
>> > -diff --git a/src/VBox/Additions/linux/sharedfolders/regops.c b/src/VBox/Additions/linux/sharedfolders/regops.c
>> > -index e1fad3d820..401fd69930 100644
>> > ---- a/src/VBox/Additions/linux/sharedfolders/regops.c
>> > -+++ b/src/VBox/Additions/linux/sharedfolders/regops.c
>> > -@@ -147,7 +147,11 @@ static int vbsf_iov_iter_detect_type(struct iovec const *paIov, size_t cSegs)
>> > - while (cSegs-- > 0) {
>> > - if (paIov->iov_len > 0) {
>> > - if (access_ok(VERIFY_READ, paIov->iov_base, paIov->iov_len))
>> > -+#if RTLNX_VER_MIN(5,10,0)
>> > -+ return (uintptr_t)paIov->iov_base >= TASK_SIZE_MAX ? ITER_KVEC : 0;
>> > -+#else
>> > - return (uintptr_t)paIov->iov_base >= USER_DS.seg ? ITER_KVEC : 0;
>> > -+#endif
>> > - AssertMsgFailed(("%p LB %#zx\n", paIov->iov_base, paIov->iov_len));
>> > - break;
>> > - }
>> > -@@ -1401,7 +1405,10 @@ static int vbsf_lock_user_pages_failed_check_kernel(uintptr_t uPtrFrom, size_t c
>> > - /*
>> > - * Check that this is valid user memory that is actually in the kernel range.
>> > - */
>> > --#if RTLNX_VER_MIN(5,0,0) || RTLNX_RHEL_MIN(8,1)
>> > -+#if RTLNX_VER_MIN(5,10,0)
>> > -+ if ( access_ok((void *)uPtrFrom, cPages << PAGE_SHIFT)
>> > -+ && uPtrFrom >= TASK_SIZE_MAX)
>> > -+#elif RTLNX_VER_MIN(5,0,0) || RTLNX_RHEL_MIN(8,1)
>> > - if ( access_ok((void *)uPtrFrom, cPages << PAGE_SHIFT)
>> > - && uPtrFrom >= USER_DS.seg)
>> > - #else
>> > ---
>> > -2.19.1
>> > -
>> > diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.16.bb b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.18.bb
>> > similarity index 88%
>> > rename from meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.16.bb
>> > rename to meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.18.bb
>> > index ff639c09f..ea6a082f6 100644
>> > --- a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.16.bb
>> > +++ b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_6.1.18.bb
>> > @@ -13,12 +13,9 @@ VBOX_NAME = "VirtualBox-${PV}"
>> >
>> > SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
>> > file://Makefile.utils \
>> > - file://0001-Additions-linux-drm-Adjustment-for-Linux-5.10.patch \
>> > - file://0001-Runtime-memobj-r0drv-linux.c-Changes-to-support-the-.patch \
>> > - file://0001-linser-vboxsf-Adjustment-for-linux-5.10-TASK_SIZE_MA.patch \
>> > "
>> > -SRC_URI[md5sum] = "a12a647f6c114f2cb1571089b36841fe"
>> > -SRC_URI[sha256sum] = "49c1990da16d8a3d5bda8cdb961ec8195a901e67e4c79aea44c1521a5fc2f9f1"
>> > +SRC_URI[md5sum] = "c61001386eb3822ab8f06d688a82e84b"
>> > +SRC_URI[sha256sum] = "108d42b9b391b7a332a33df1662cf7b0e9d9a80f3079d16288d8b9487f427d40"
>> >
>> > S ?= "${WORKDIR}/vbox_module"
>> > S_task-patch = "${WORKDIR}/${VBOX_NAME}"
>> > --
>> > 2.25.1
>> >
>> >
>> >
>> >
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-01-22 1:42 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-20 13:01 [meta-oe][PATCH] vboxguestdrivers: upgrade 6.1.16 -> 6.1.18 Gianfranco
2021-01-21 8:26 ` [oe] " Khem Raj
2021-01-21 21:53 ` Gianfranco
2021-01-22 1:41 ` Khem Raj
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.