--- kernel/os-interface.c 2017-09-14 23:51:09.000000000 +0300 +++ kernel/os-interface.c 2019-11-05 19:23:48.332089532 +0300 @@ -24,6 +24,7 @@ #include "os-interface.h" #include "nv-linux.h" +#include void NV_API_CALL os_disable_preemption(void) { --- kernel/os-interface.c 2019-11-05 19:34:40.868104129 +0300 +++ kernel/os-interface.c 2019-11-05 19:38:43.529109557 +0300 @@ -26,6 +26,14 @@ #include "nv-linux.h" #include +void do_gettimeofday(struct timeval *tv) +{ +struct timespec64 ts; +ktime_get_real_ts64(&ts); +tv->tv_sec = ts.tv_sec; +tv->tv_usec = ts.tv_nsec; +} + void NV_API_CALL os_disable_preemption(void) { #if defined(preempt_disable) diff --git kernel/nv-linux.h kernel/nv-linux.h index 4043bf1..62f0874 100644 --- kernel/nv-linux.h +++ kernel/nv-linux.h @@ -877,12 +877,21 @@ extern void *nv_stack_t_cache; __ret; \ }) #elif (NV_SMP_CALL_FUNCTION_ARGUMENT_COUNT == 3) +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0) #define NV_SMP_CALL_FUNCTION(func, info, wait) \ ({ \ int __ret = smp_call_function(func, info, wait); \ __ret; \ }) #else +#define NV_SMP_CALL_FUNCTION(func, info, wait) \ + ({ \ + int __ret = 0; \ + smp_call_function(func, info, wait); \ + __ret; \ + }) +#endif +#else #error "NV_SMP_CALL_FUNCTION_ARGUMENT_COUNT value unrecognized!" #endif #elif defined(CONFIG_SMP) @@ -897,12 +906,21 @@ extern void *nv_stack_t_cache; __ret; \ }) #elif (NV_ON_EACH_CPU_ARGUMENT_COUNT == 3) +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0) #define NV_ON_EACH_CPU(func, info, wait) \ ({ \ int __ret = on_each_cpu(func, info, wait); \ __ret; \ }) #else +#define NV_ON_EACH_CPU(func, info, wait) \ + ({ \ + int __ret = 0; \ + on_each_cpu(func, info, wait); \ + __ret; \ + }) +#endif +#else #error "NV_ON_EACH_CPU_ARGUMENT_COUNT value unrecognized!" #endif #elif defined(CONFIG_SMP)