--- a/vboxdrv/r0drv/linux/mp-r0drv-linux.c.ORIG 2019-01-23 12:39:29.000000000 +0100 +++ b/vboxdrv/r0drv/linux/mp-r0drv-linux.c 2019-09-17 13:12:18.187037249 +0200 @@ -283,12 +283,16 @@ if (RTCpuSetCount(&OnlineSet) > 1) { /* Fire the function on all other CPUs without waiting for completion. */ -# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0) + smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */); +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */); -# else +#else int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* retry */, 0 /* wait */); # endif +# if LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0) Assert(!rc); NOREF(rc); +#endif } #endif @@ -326,7 +330,9 @@ { #ifdef CONFIG_SMP IPRT_LINUX_SAVE_EFL_AC(); +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0) int rc; +#endif RTMPARGS Args; RTTHREADPREEMPTSTATE PreemptState = RTTHREADPREEMPTSTATE_INITIALIZER; @@ -337,14 +343,18 @@ Args.cHits = 0; RTThreadPreemptDisable(&PreemptState); -# if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0) + smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */); +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) rc = smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */); -# else /* older kernels */ +#else /* older kernels */ rc = smp_call_function(rtmpLinuxWrapper, &Args, 0 /* retry */, 1 /* wait */); -# endif /* older kernels */ +#endif /* older kernels */ RTThreadPreemptRestore(&PreemptState); +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0) Assert(rc == 0); NOREF(rc); +#endif IPRT_LINUX_RESTORE_EFL_AC(); #else RT_NOREF(pfnWorker, pvUser1, pvUser2); --- a/vboxnetflt/linux/VBoxNetFlt-linux.c.ORIG 2019-03-15 17:22:12.000000000 +0100 +++ b/vboxnetflt/linux/VBoxNetFlt-linux.c 2019-09-17 13:19:51.112012291 +0200 @@ -2123,7 +2123,10 @@ #endif if (in_dev != NULL) { - for_ifa(in_dev) { + /* macros for_ifa() and endfor_ifa() disappear for kernel 5.3 + * Code them directly */ + struct in_ifaddr *ifa; + for (ifa = in_dev->ifa_list; ifa; ifa = ifa->ifa_next) { if (VBOX_IPV4_IS_LOOPBACK(ifa->ifa_address)) return NOTIFY_OK; @@ -2137,7 +2140,7 @@ pThis->pSwitchPort->pfnNotifyHostAddress(pThis->pSwitchPort, /* :fAdded */ true, kIntNetAddrType_IPv4, &ifa->ifa_address); - } endfor_ifa(in_dev); + } } /*