Opened 5 years ago
Last modified 5 years ago
#18783 new defect
Patch VirtualBox 6.0.10 for Linux kernel 5.3.y
Reported by: | Andy Lavr | Owned by: | |
---|---|---|---|
Component: | other | Version: | VirtualBox 6.0.10 |
Keywords: | Cc: | ||
Guest type: | all | Host type: | Linux |
Description
Patch VirtualBox 6.0.10 for Linux kernel 5.3.y
diff -ruN ./virtualbox-6.0.10.orig/r0drv/linux/mp-r0drv-linux.c ./virtualbox-6.0.10/r0drv/linux/mp-r0drv-linux.c --- ./virtualbox-6.0.10.orig/r0drv/linux/mp-r0drv-linux.c 2019-07-12 11:38:58.000000000 +0300 +++ ./virtualbox-6.0.10/r0drv/linux/mp-r0drv-linux.c 2019-07-22 21:03:06.993331834 +0300 @@ -283,12 +283,7 @@ if (RTCpuSetCount(&OnlineSet) > 1) { /* Fire the function on all other CPUs without waiting for completion. */ -# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) - int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */); -# else - int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* retry */, 0 /* wait */); -# endif - Assert(!rc); NOREF(rc); + NOREF(smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */)); } #endif @@ -326,7 +321,6 @@ { #ifdef CONFIG_SMP IPRT_LINUX_SAVE_EFL_AC(); - int rc; RTMPARGS Args; RTTHREADPREEMPTSTATE PreemptState = RTTHREADPREEMPTSTATE_INITIALIZER; @@ -337,14 +331,11 @@ Args.cHits = 0; RTThreadPreemptDisable(&PreemptState); -# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) - rc = smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */); -# else /* older kernels */ - rc = smp_call_function(rtmpLinuxWrapper, &Args, 0 /* retry */, 1 /* wait */); -# endif /* older kernels */ + + NOREF(smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */)); + RTThreadPreemptRestore(&PreemptState); - Assert(rc == 0); NOREF(rc); IPRT_LINUX_RESTORE_EFL_AC(); #else RT_NOREF(pfnWorker, pvUser1, pvUser2); diff -ruN ./virtualbox-6.0.10.orig/vboxnetflt/linux/VBoxNetFlt-linux.c ./virtualbox-6.0.10/vboxnetflt/linux/VBoxNetFlt-linux.c --- ./virtualbox-6.0.10.orig/vboxnetflt/linux/VBoxNetFlt-linux.c 2019-07-22 21:05:55.545025085 +0300 +++ ./virtualbox-6.0.10/vboxnetflt/linux/VBoxNetFlt-linux.c 2019-07-22 21:06:08.743978844 +0300 @@ -2107,6 +2107,8 @@ struct in_device *in_dev; struct inet6_dev *in6_dev; + const struct in_ifaddr *ifa; + if (ulEventType != NETDEV_REGISTER) return NOTIFY_OK; @@ -2123,7 +2125,8 @@ #endif if (in_dev != NULL) { - for_ifa(in_dev) { + rcu_read_lock(); + in_dev_for_each_ifa_rcu(ifa, in_dev) { if (VBOX_IPV4_IS_LOOPBACK(ifa->ifa_address)) return NOTIFY_OK; @@ -2137,7 +2140,8 @@ pThis->pSwitchPort->pfnNotifyHostAddress(pThis->pSwitchPort, /* :fAdded */ true, kIntNetAddrType_IPv4, &ifa->ifa_address); - } endfor_ifa(in_dev); + } + rcu_read_unlock(); } /*
Best regards, Andy Lavr.
Attachments (1)
Change History (2)
by , 5 years ago
Attachment: | virtualbox_6.0.y.patch added |
---|
comment:1 by , 5 years ago
Need to compare it with a patch provided in the mailing list: https://www.virtualbox.org/pipermail/vbox-dev/2019-July/015297.html
Note:
See TracTickets
for help on using tickets.
Patch VirtualBox 6.0.10 for Linux kernel 5.3.y