[vbox-dev] Kernel v4.12 API changes

Larry Finger Larry.Finger at lwfinger.net
Fri May 19 18:43:08 GMT 2017


On 05/19/2017 04:57 AM, Frank Mehnert wrote:
> On Mittwoch, 17. Mai 2017 20:49:42 CEST Frank Mehnert wrote:
>> Hi Larry,
>>
>> On Montag, 15. Mai 2017 16:35:30 CEST Larry Finger wrote:
>>> Has anyone found the magic elixir to allow VB to run with kernel 4.12-rc1?
>>>
>>> Adding #include <asm/set_memory.h> to vboxdrv/r0drv/linux/alloc-r0drv-linux.c is
>>> trivial; however, I'm having trouble with changes in the page table walk code in
>>> vboxdrv/r0drv/linux/memobj-r0drv-linux.c. I followed the changes in the kernel
>>> and I have code that compiles cleanly, but as soon as I try to start a VM, the
>>> system locks up and panics a few seconds later. At this point, I have no
>>> diagnostics concerning where the fault happened.
>>
>> we are working on a fix. The obvious fixes can be found in r66927, r66928
>> and r66930. These changes make the modules compile against Linux 4.12-rc1
>> but as you noticed, the kernel panics when starting a VM. We are debugging
>> this issue.
> 
> quick fix for the remaining issue (freeze on VM start) is the following:
> 
> --- src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c   (revision 115504)
> +++ src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c   (working copy)
> @@ -1397,7 +1397,7 @@
>   SUPR0DECL(uint32_t) SUPR0GetKernelFeatures(void)
>   {
>       uint32_t fFlags = 0;
> -#ifdef CONFIG_PAX_KERNEXEC
> +#if defined(CONFIG_PAX_KERNEXEC) || LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
>       fFlags |= SUPKERNELFEATURES_GDT_READ_ONLY;
>   #endif
>   #if defined(VBOX_STRICT) || defined(VBOX_WITH_EFLAGS_AC_SET_IN_VBOXDRV)
> 
> The reason is that the GDT is mapped read-only as of Linux 4.12. We have
> not yet decided if this will be the final fix for the moment or if an
> alternative fix (which requires changes to the VMM part as well) is the
> better choice.

Thanks for this update. At least the current set of patches will allow VB to 
build on my kernel, and when the Kernel:HEAD project at openSUSE switches to 
4.12.0-rcX.

Larry






More information about the vbox-dev mailing list