On 02/13/2017 05:28 PM, Masami Hiramatsu wrote:
> Add a prototype of task_struct to fix below warning on arm64.
>
> CC arch/arm64/kernel/probes/kprobes.o
> In file included from /tmp/linux/arch/arm64/kernel/probes/kprobes.c:19:0:
> /tmp/linux/include/linux/kasan.h:81:53: warning: 'struct task_struct'
> declared inside parameter list will not be visible outside of this definition
> or declaration
> static inline void kasan_unpoison_task_stack(struct task_struct *task) {}
> ^~~~~~~~~~~
What tree is that?
I can't see how is this possible on upstream or -next. kasan.h includes
linux/sched.h so it supposed to know about task_struct.
Also <linux/kasan.h> is the first include in kprobes, so it can't be a header
recursion.
BTW, arch/arm64/kernel/probes/kprobes.c no longer needs <linux/kasan.h> since
commit ad05711cec12131e1277ce749a99d08ecf233aa7 ("arm64: Remove stack
duplicating code from jprobes")
> As same as other types (kmem_cache, page, and vm_struct)
> this adds a prototype of task_struct data structure on
> top of kasan.h.
>
> Signed-off-by: Masami Hiramatsu <[email protected]>
> Cc: Andrey Ryabinin <[email protected]>
> Cc: Alexander Potapenko <[email protected]>
> Cc: Dmitry Vyukov <[email protected]>
> ---
> include/linux/kasan.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/include/linux/kasan.h b/include/linux/kasan.h
> index 820c0ad..c9df9e1 100644
> --- a/include/linux/kasan.h
> +++ b/include/linux/kasan.h
> @@ -7,6 +7,7 @@
> struct kmem_cache;
> struct page;
> struct vm_struct;
> +struct task_struct;
>
> #ifdef CONFIG_KASAN
>
>