All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Rutland <mark.rutland@arm.com>
To: cuigaosheng <cuigaosheng1@huawei.com>
Cc: Will Deacon <will@kernel.org>,
	catalin.marinas@arm.com, broonie@kernel.org, pcc@google.com,
	keescook@chromium.org, daniel.kiss@arm.com,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, wangweiyang2@huawei.com,
	gongruiqi1@huawei.com
Subject: Re: [PATCH -next] arm64: add missing header dependencies
Date: Wed, 11 May 2022 09:30:31 +0100	[thread overview]
Message-ID: <Ynt0J5daWq7swGP8@FVFF77S0Q05N> (raw)
In-Reply-To: <3b692d9f-0f76-33b8-0c22-909a24377e33@huawei.com>

On Wed, May 11, 2022 at 09:39:55AM +0800, cuigaosheng wrote:
>     Do you know which commit is causing this error?
> 
> 9cce7a435f89 arm64: CPU support I got the error when building a module with
> processor.h on arm64 and the module calls the KSTK_ESP macro,

I assume that's an out-of-tree module?

Looking at v5.18-rc5, the only users of KSTK_ESP() on arm64 are built in:

| [mark@lakrids:~/src/linux]% git grep KSTK_ESP
| arch/alpha/include/asm/processor.h:#define KSTK_ESP(tsk) \
| arch/arc/include/asm/processor.h:#define KSTK_ESP(tsk)   (task_pt_regs(tsk)->sp)
| arch/arm/include/asm/processor.h:#define KSTK_ESP(tsk)  task_pt_regs(tsk)->ARM_sp
| arch/arm64/include/asm/processor.h:#define KSTK_ESP(tsk)        user_stack_pointer(task_pt_regs(tsk))
| arch/csky/include/asm/processor.h:#define KSTK_ESP(tsk)         (task_pt_regs(tsk)->usp)
| arch/h8300/include/asm/processor.h:#define      KSTK_ESP(tsk)   ((tsk) == current ? rdusp() : (tsk)->thread.usp)
| arch/hexagon/include/asm/processor.h:#define KSTK_ESP(tsk) (pt_psp(task_pt_regs(tsk)))
| arch/ia64/include/asm/processor.h:#define KSTK_ESP(tsk)  ((tsk)->thread.ksp)
| arch/m68k/include/asm/processor.h:#define       KSTK_ESP(tsk)   ((tsk) == current ? rdusp() : (tsk)->thread.usp)
| arch/microblaze/include/asm/processor.h:#  define KSTK_ESP(task)        (task_sp(task))
| arch/mips/include/asm/processor.h:#define KSTK_ESP(tsk) (task_pt_regs(tsk)->regs[29])
| arch/nios2/include/asm/processor.h:#define KSTK_ESP(tsk)        ((tsk)->thread.kregs->sp)
| arch/openrisc/include/asm/processor.h:#define KSTK_ESP(tsk)   (task_pt_regs(tsk)->sp)
| arch/parisc/include/asm/processor.h:#define KSTK_ESP(tsk)       ((tsk)->thread.regs.gr[30])
| arch/powerpc/include/asm/processor.h:#define KSTK_ESP(tsk)  ((tsk)->thread.regs? (tsk)->thread.regs->gpr[1]: 0)
| arch/riscv/include/asm/processor.h:#define KSTK_ESP(tsk)                (task_pt_regs(tsk)->sp)
| arch/s390/include/asm/processor.h:#define KSTK_ESP(tsk) (task_pt_regs(tsk)->gprs[15])
| arch/sh/include/asm/processor_32.h:#define KSTK_ESP(tsk)  (task_pt_regs(tsk)->regs[15])
| arch/sparc/include/asm/processor_32.h:#define KSTK_ESP(tsk)  ((tsk)->thread.kregs->u_regs[UREG_FP])
| arch/sparc/include/asm/processor_64.h:#define KSTK_ESP(tsk)  (task_pt_regs(tsk)->u_regs[UREG_FP])
| arch/um/include/asm/stacktrace.h:       return (unsigned long *)KSTK_ESP(task);
| arch/x86/include/asm/processor.h:#define KSTK_ESP(task)         (task_pt_regs(task)->sp)
| arch/x86/include/asm/processor.h:extern unsigned long KSTK_ESP(struct task_struct *task);
| arch/x86/kernel/process_64.c:unsigned long KSTK_ESP(struct task_struct *task)
| arch/x86/um/asm/processor.h:#define KSTK_ESP(tsk) KSTK_REG(tsk, HOST_SP)
| arch/xtensa/include/asm/processor.h:#define KSTK_ESP(tsk)               (task_pt_regs(tsk)->areg[1])
| fs/proc/array.c:                                esp = KSTK_ESP(task);
| mm/util.c:      return (vma->vm_start <= KSTK_ESP(t) && vma->vm_end >= KSTK_ESP(t));

... or is that module being added in another tree at the moment?

Thanks,
Mark.

> we can also add
> additional header file dependencies(linux/sched/task_stack.h) in the module to
> avoid this error. Maybe perfecting header file dependencies of processor.h is a
> better option? Thanks,
> 
> 在 2022/5/10 18:40, Will Deacon 写道:
> 
>     On Mon, May 09, 2022 at 02:17:51PM +0800, Gaosheng Cui wrote:
> 
>         We get one error when building module with processor.h:
> 
>         ./arch/arm64/include/asm/processor.h:263:36: error: implicit declaration of function ‘task_stack_page’;
>           ((struct pt_regs *)(THREAD_SIZE + task_stack_page(p)) - 1)
>         ./arch/arm64/include/asm/processor.h:266:42: note: in expansion of macro ‘task_pt_regs’
>          #define KSTK_ESP(tsk) user_stack_pointer(task_pt_regs(tsk))
> 
>         task_stack_page is declared in linux/sched/task_stack.h, so this patch
>         add the missing header dependencies.
> 
>         Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com>
>         ---
>          arch/arm64/include/asm/processor.h | 1 +
>          1 file changed, 1 insertion(+)
> 
>     Do you know which commit is causing this error? I haven't seen any other
>     reports, but it's hard to know which tree should take your patch as it
>     stands.
> 
>     Thanks,
> 
>     Will
> 
> 
>         diff --git a/arch/arm64/include/asm/processor.h b/arch/arm64/include/asm/processor.h
>         index 73e38d9a540c..1c239841c4d6 100644
>         --- a/arch/arm64/include/asm/processor.h
>         +++ b/arch/arm64/include/asm/processor.h
>         @@ -28,6 +28,7 @@
>          #include <linux/build_bug.h>
>          #include <linux/cache.h>
>          #include <linux/init.h>
>         +#include <linux/sched/task_stack.h>
>          #include <linux/stddef.h>
>          #include <linux/string.h>
>          #include <linux/thread_info.h>
>         --
>         2.25.1
> 
> 
>     .
> 

WARNING: multiple messages have this Message-ID (diff)
From: Mark Rutland <mark.rutland@arm.com>
To: cuigaosheng <cuigaosheng1@huawei.com>
Cc: Will Deacon <will@kernel.org>,
	catalin.marinas@arm.com, broonie@kernel.org, pcc@google.com,
	keescook@chromium.org, daniel.kiss@arm.com,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, wangweiyang2@huawei.com,
	gongruiqi1@huawei.com
Subject: Re: [PATCH -next] arm64: add missing header dependencies
Date: Wed, 11 May 2022 09:30:31 +0100	[thread overview]
Message-ID: <Ynt0J5daWq7swGP8@FVFF77S0Q05N> (raw)
In-Reply-To: <3b692d9f-0f76-33b8-0c22-909a24377e33@huawei.com>

On Wed, May 11, 2022 at 09:39:55AM +0800, cuigaosheng wrote:
>     Do you know which commit is causing this error?
> 
> 9cce7a435f89 arm64: CPU support I got the error when building a module with
> processor.h on arm64 and the module calls the KSTK_ESP macro,

I assume that's an out-of-tree module?

Looking at v5.18-rc5, the only users of KSTK_ESP() on arm64 are built in:

| [mark@lakrids:~/src/linux]% git grep KSTK_ESP
| arch/alpha/include/asm/processor.h:#define KSTK_ESP(tsk) \
| arch/arc/include/asm/processor.h:#define KSTK_ESP(tsk)   (task_pt_regs(tsk)->sp)
| arch/arm/include/asm/processor.h:#define KSTK_ESP(tsk)  task_pt_regs(tsk)->ARM_sp
| arch/arm64/include/asm/processor.h:#define KSTK_ESP(tsk)        user_stack_pointer(task_pt_regs(tsk))
| arch/csky/include/asm/processor.h:#define KSTK_ESP(tsk)         (task_pt_regs(tsk)->usp)
| arch/h8300/include/asm/processor.h:#define      KSTK_ESP(tsk)   ((tsk) == current ? rdusp() : (tsk)->thread.usp)
| arch/hexagon/include/asm/processor.h:#define KSTK_ESP(tsk) (pt_psp(task_pt_regs(tsk)))
| arch/ia64/include/asm/processor.h:#define KSTK_ESP(tsk)  ((tsk)->thread.ksp)
| arch/m68k/include/asm/processor.h:#define       KSTK_ESP(tsk)   ((tsk) == current ? rdusp() : (tsk)->thread.usp)
| arch/microblaze/include/asm/processor.h:#  define KSTK_ESP(task)        (task_sp(task))
| arch/mips/include/asm/processor.h:#define KSTK_ESP(tsk) (task_pt_regs(tsk)->regs[29])
| arch/nios2/include/asm/processor.h:#define KSTK_ESP(tsk)        ((tsk)->thread.kregs->sp)
| arch/openrisc/include/asm/processor.h:#define KSTK_ESP(tsk)   (task_pt_regs(tsk)->sp)
| arch/parisc/include/asm/processor.h:#define KSTK_ESP(tsk)       ((tsk)->thread.regs.gr[30])
| arch/powerpc/include/asm/processor.h:#define KSTK_ESP(tsk)  ((tsk)->thread.regs? (tsk)->thread.regs->gpr[1]: 0)
| arch/riscv/include/asm/processor.h:#define KSTK_ESP(tsk)                (task_pt_regs(tsk)->sp)
| arch/s390/include/asm/processor.h:#define KSTK_ESP(tsk) (task_pt_regs(tsk)->gprs[15])
| arch/sh/include/asm/processor_32.h:#define KSTK_ESP(tsk)  (task_pt_regs(tsk)->regs[15])
| arch/sparc/include/asm/processor_32.h:#define KSTK_ESP(tsk)  ((tsk)->thread.kregs->u_regs[UREG_FP])
| arch/sparc/include/asm/processor_64.h:#define KSTK_ESP(tsk)  (task_pt_regs(tsk)->u_regs[UREG_FP])
| arch/um/include/asm/stacktrace.h:       return (unsigned long *)KSTK_ESP(task);
| arch/x86/include/asm/processor.h:#define KSTK_ESP(task)         (task_pt_regs(task)->sp)
| arch/x86/include/asm/processor.h:extern unsigned long KSTK_ESP(struct task_struct *task);
| arch/x86/kernel/process_64.c:unsigned long KSTK_ESP(struct task_struct *task)
| arch/x86/um/asm/processor.h:#define KSTK_ESP(tsk) KSTK_REG(tsk, HOST_SP)
| arch/xtensa/include/asm/processor.h:#define KSTK_ESP(tsk)               (task_pt_regs(tsk)->areg[1])
| fs/proc/array.c:                                esp = KSTK_ESP(task);
| mm/util.c:      return (vma->vm_start <= KSTK_ESP(t) && vma->vm_end >= KSTK_ESP(t));

... or is that module being added in another tree at the moment?

Thanks,
Mark.

> we can also add
> additional header file dependencies(linux/sched/task_stack.h) in the module to
> avoid this error. Maybe perfecting header file dependencies of processor.h is a
> better option? Thanks,
> 
> 在 2022/5/10 18:40, Will Deacon 写道:
> 
>     On Mon, May 09, 2022 at 02:17:51PM +0800, Gaosheng Cui wrote:
> 
>         We get one error when building module with processor.h:
> 
>         ./arch/arm64/include/asm/processor.h:263:36: error: implicit declaration of function ‘task_stack_page’;
>           ((struct pt_regs *)(THREAD_SIZE + task_stack_page(p)) - 1)
>         ./arch/arm64/include/asm/processor.h:266:42: note: in expansion of macro ‘task_pt_regs’
>          #define KSTK_ESP(tsk) user_stack_pointer(task_pt_regs(tsk))
> 
>         task_stack_page is declared in linux/sched/task_stack.h, so this patch
>         add the missing header dependencies.
> 
>         Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com>
>         ---
>          arch/arm64/include/asm/processor.h | 1 +
>          1 file changed, 1 insertion(+)
> 
>     Do you know which commit is causing this error? I haven't seen any other
>     reports, but it's hard to know which tree should take your patch as it
>     stands.
> 
>     Thanks,
> 
>     Will
> 
> 
>         diff --git a/arch/arm64/include/asm/processor.h b/arch/arm64/include/asm/processor.h
>         index 73e38d9a540c..1c239841c4d6 100644
>         --- a/arch/arm64/include/asm/processor.h
>         +++ b/arch/arm64/include/asm/processor.h
>         @@ -28,6 +28,7 @@
>          #include <linux/build_bug.h>
>          #include <linux/cache.h>
>          #include <linux/init.h>
>         +#include <linux/sched/task_stack.h>
>          #include <linux/stddef.h>
>          #include <linux/string.h>
>          #include <linux/thread_info.h>
>         --
>         2.25.1
> 
> 
>     .
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2022-05-11  8:31 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-09  6:17 [PATCH -next] arm64: add missing header dependencies Gaosheng Cui
2022-05-09  6:17 ` Gaosheng Cui
2022-05-10 10:40 ` Will Deacon
2022-05-10 10:40   ` Will Deacon
     [not found]   ` <3b692d9f-0f76-33b8-0c22-909a24377e33@huawei.com>
2022-05-11  8:30     ` Mark Rutland [this message]
2022-05-11  8:30       ` Mark Rutland
2022-05-13  2:57 ` kernel test robot
2022-05-13  2:57   ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Ynt0J5daWq7swGP8@FVFF77S0Q05N \
    --to=mark.rutland@arm.com \
    --cc=broonie@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=cuigaosheng1@huawei.com \
    --cc=daniel.kiss@arm.com \
    --cc=gongruiqi1@huawei.com \
    --cc=keescook@chromium.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pcc@google.com \
    --cc=wangweiyang2@huawei.com \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.