

Starting with 5.8-rc1 vermagic.h cannot be included anymore: Trunk/src/VBox/Additions/linux/sharedfolders/vfsmod.c x86/cpu: Uninline CR4 we've also had a change affecting: The few things which are needed by KVM and hides the structĭefinition and some low level helpers from modules.
#Doxygen linux kernel series
The following series creates regular exported functions for To modules because some inline functions which are required by Should be really only accessible in core code. Subject: x86/tlb: Unexport per-CPU tlbstateĭate: Sun, 22:31:37 per-CPU tlbstate contains sensitive information which Rather deep internal and should not be available to string: map_vm_areaġ alloc-r0drv-linux.c 204 if (!map_vm_area(pVmArea, PAGE_KERNEL_EXEC,ġ99 # if LINUX_VERSION_CODE nr_pages = cPages Ģ04 if (!map_vm_area(pVmArea, PAGE_KERNEL_EXEC,Ģ05 # if LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0)Ĭould not find the text string: unmap_kernel_rangeĠ SUPDrv-linux.c 760 RTCCUINTREG uOld = this_cpu_read(cpu_tlbstate.cr4) ġ SUPDrv-linux.c 764 this_cpu_write(cpu_tlbstate.cr4, uNew) Ģ the-linux-kernel.h 169 /* for cr4_init_shadow() / cpu_tlbstate. This allows to unexport map_vm_area and unmap_kernel_range, which are _get_vm_area_caller(cbAlloc, VM_ALLOC, MODULES_VADDR, MODULES_END,ġ0/28 mm: only allow page table mappings for built-in zsmalloc Switch the two remaining callers to use _get_vm_area_caller replace with: Get_vm_area() has been removed from the 5.8 kernel tree with: NULL on failure.ġ63 static PRTMEMHDR rtR0MemAllocExecVmArea(size_t cb)ġ65 size_t const cbAlloc = RT_ALIGN_Z(sizeof(RTMEMLNXHDREX) + cb, PAGE_SIZE) ġ66 size_t const cPages = cbAlloc > PAGE_SHIFT ġ71 pVmArea = _get_vm_area(cbAlloc, VM_ALLOC, MODULES_VADDR, MODULES_END) This is preferrable to the exec heap below.Ĥ9 * We need memory in the module range (~2GB to ~0) this can only be obtainedĥ0 * thru APIs that are not exported (see module_alloc()).ĥ2 * So, we'll have to create a quick and dirty heap here using BSS memory.ĥ3 * Very annoying and it's going to restrict us!ġ57 * Allocate executable kernel memory in the module range.ġ59 * Pointer to a allocation header success. Trunk/src/VBox/Runtime/r0drv/linux/alloc-r0drv-linux.cĤ0 #if (defined(RT_ARCH_AMD64) || defined(DOXYGEN_RUNNING)) & !defined(RTMEMALLOC_EXEC_HEAP)Ĥ1 # if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23)Ĥ3 * Starting with 2.6.23 we can use _get_vm_area and map_vm_area to allocateĤ4 * memory in the moduel range. var/log/vbox-setup.log after running /sbin/vboxconfig in F32 with kernel-5.8.86_64Ġ alloc-r0drv-linux.c 43 * Starting with 2.6.23 we can use _get_vm_area and map_vm_area to allocateġ alloc-r0drv-linux.c 171 pVmArea = _get_vm_area(cbAlloc, VM_ALLOC, MODULES_VADDR, MODULES_END)
#Doxygen linux kernel Patch
I think the code could use vm_map_ram() to map the papPages arrayĭirectly, but I would appreciate any help the developers could provide.Īpply fixes needed for kernel 5.8 difference in struct mm_structįixes associated with hiding of cpu tlbstate fixes_for_module_memory.patchĬhanges needed for kernel 5.8 for patch to module_memory to work # if LINUX_VERSION_CODE nr_pages = papPagesIterator - papPages If (!map_vm_area(pVmArea, PAGE_KERNEL_EXEC, # if LINUX_VERSION_CODE nr_pages = cPages * they provide a very convenient place for storing something we * Not entirely sure we really need to set nr_pages and pages Src/vboxdrv/r0drv/linux/alloc-r0drv-linux.c:

The first of these are used in this snippet found in In the associated patch entitled "mm: only allow page table mappings for built-in zsmalloc", symbols map_vm_area() and unmap_kernel_range() are no longer exported.

Get_vm_area_caller(), which has one additional argument that is always " builtin_return_address(0)."Ī second API change is more complicated, and above my understanding. Thus far, I have found two incompatibilities with the 5.8 APIs. Unless I have patched our copy of the code for the VB kernel modules, my mailbox will be flooded with build failure messages. Thereafter, openSUSE Tumbleweed will start builds using that kernel. In a little over one week, Linus will release Kernel 5.8.0-rc1.
