I've been facing problems when trying to compiling gator drive using kernel 4.10.
In file included from /gator/driver/gator_main.c:260:0: /gator/driver/gator_hrtimer_gator.c: In function 'gator_hrtimer_online': /gator/driver/gator_hrtimer_gator.c:33:62: error: request for member 'tv64' in something not a structure or union if (per_cpu(hrtimer_is_active, cpu) || profiling_interval.tv64 == 0) ^ /gator/driver/gator_hrtimer_gator.c: In function 'gator_hrtimer_init': /gator/driver/gator_hrtimer_gator.c:72:27: error: request for member 'tv64' in something not a structure or union profiling_interval.tv64 = 0; ^ In file included from /gator/driver/gator_main.c:261:0: /gator/driver/gator_cookies.c: In function 'translate_app_process': /gator/driver/gator_cookies.c:257:57: warning: passing argument 6 of 'get_user_pages_remote' makes pointer from integer without a cast [-Wint-conversion] if (get_user_pages_remote(task, mm, addr, 1, 0, 1, &page, &page_vma) <= 0) ^ In file included from ./include/linux/highmem.h:7:0, from /gator/driver/gator_main.c:21: ./include/linux/mm.h:1267:6: note: expected 'struct page **' but argument is of type 'int' long get_user_pages_remote(struct task_struct *tsk, struct mm_struct *mm, ^~~~~~~~~~~~~~~~~~~~~ In file included from /gator/driver/gator_main.c:261:0: /gator/driver/gator_cookies.c:257:60: error: passing argument 7 of 'get_user_pages_remote' from incompatible pointer type [-Werror=incompatible-pointer-types] if (get_user_pages_remote(task, mm, addr, 1, 0, 1, &page, &page_vma) <= 0) ^ In file included from ./include/linux/highmem.h:7:0, from /gator/driver/gator_main.c:21: ./include/linux/mm.h:1267:6: note: expected 'struct vm_area_struct **' but argument is of type 'struct page **' long get_user_pages_remote(struct task_struct *tsk, struct mm_struct *mm, ^~~~~~~~~~~~~~~~~~~~~ In file included from /gator/driver/gator_main.c:261:0: /gator/driver/gator_cookies.c:257:67: error: passing argument 8 of 'get_user_pages_remote' from incompatible pointer type [-Werror=incompatible-pointer-types] if (get_user_pages_remote(task, mm, addr, 1, 0, 1, &page, &page_vma) <= 0) ^ In file included from ./include/linux/highmem.h:7:0, from /gator/driver/gator_main.c:21: ./include/linux/mm.h:1267:6: note: expected 'int *' but argument is of type 'struct vm_area_struct **' long get_user_pages_remote(struct task_struct *tsk, struct mm_struct *mm, ^~~~~~~~~~~~~~~~~~~~~ /gator/driver/gator_main.c: In function 'gator_hotcpu_notify': /gator/driver/gator_main.c:608:10: error: 'CPU_DOWN_PREPARE' undeclared (first use in this function) case CPU_DOWN_PREPARE: ^~~~~~~~~~~~~~~~ /gator/driver/gator_main.c:608:10: note: each undeclared identifier is reported only once for each function it appears in /gator/driver/gator_main.c: In function 'gator_pm_notify': /gator/driver/gator_main.c:639:9: error: implicit declaration of function 'unregister_hotcpu_notifier' [-Werror=implicit-function-declaration] unregister_hotcpu_notifier(&gator_hotcpu_notifier); ^~~~~~~~~~~~~~~~~~~~~~~~~~ /gator/driver/gator_main.c:664:9: error: implicit declaration of function 'register_hotcpu_notifier' [-Werror=implicit-function-declaration] register_hotcpu_notifier(&gator_hotcpu_notifier); ^~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors make[1]: *** [scripts/Makefile.build:295: /gator/driver/gator_main.o] Error 1 make: *** [Makefile:1490: _module_/gator/driver] Error 2
Googling a found that it may be due to kernel 4.10 as follow here and here.
I'd like to know if anybody else have been facing this problem and if there is any solution for it.