From 22cbd6ef2ec01e233e4cc310bdee9d1a43993737 Mon Sep 17 00:00:00 2001 From: Hans Petter Selasky Date: Fri, 7 Apr 2017 14:43:28 +0000 Subject: [PATCH] Create the LinuxKPI current task structure on the fly if it doesn't exist when the current macro is used. MFC after: 1 week Sponsored by: Mellanox Technologies --- sys/compat/linuxkpi/common/include/linux/sched.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sys/compat/linuxkpi/common/include/linux/sched.h b/sys/compat/linuxkpi/common/include/linux/sched.h index c3de79414c1..4de6f9e2823 100644 --- a/sys/compat/linuxkpi/common/include/linux/sched.h +++ b/sys/compat/linuxkpi/common/include/linux/sched.h @@ -74,7 +74,11 @@ struct task_struct { struct completion exited; }; -#define current ((struct task_struct *)curthread->td_lkpi_task) +#define current ({ \ + struct thread *__td = curthread; \ + linux_set_current(__td); \ + ((struct task_struct *)__td->td_lkpi_task); \ +}) #define task_pid_group_leader(task) (task)->task_thread->td_proc->p_pid #define task_pid(task) ((task)->pid)