All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] stacktrace: Move documentation for arch_stack_walk_reliable() to header
@ 2021-03-09 19:41 Mark Brown
  2021-03-09 21:36 ` Randy Dunlap
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Mark Brown @ 2021-03-09 19:41 UTC (permalink / raw)
  To: linux-kernel
  Cc: Mark Brown, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
	H. Peter Anvin, Heiko Carstens, Christian Borntraeger,
	Josh Poimboeuf, Jiri Kosina, Petr Mladek, Joe Lawrence, x86,
	linux-s390, live-patching, Vasily Gorbik, Miroslav Benes

Currently arch_stack_wallk_reliable() is documented with an identical
comment in both x86 and S/390 implementations which is a bit redundant.
Move this to the header and convert to kerneldoc while we're at it.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Jiri Kosina <jikos@kernel.org>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Joe Lawrence <joe.lawrence@redhat.com>
Cc: x86@kernel.org
Cc: linux-s390@vger.kernel.org
Cc: live-patching@vger.kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Acked-by: Vasily Gorbik <gor@linux.ibm.com>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
---
 arch/s390/kernel/stacktrace.c |  6 ------
 arch/x86/kernel/stacktrace.c  |  6 ------
 include/linux/stacktrace.h    | 19 +++++++++++++++++++
 3 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/arch/s390/kernel/stacktrace.c b/arch/s390/kernel/stacktrace.c
index 7f1266c24f6b..101477b3e263 100644
--- a/arch/s390/kernel/stacktrace.c
+++ b/arch/s390/kernel/stacktrace.c
@@ -24,12 +24,6 @@ void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
 	}
 }
 
-/*
- * This function returns an error if it detects any unreliable features of the
- * stack.  Otherwise it guarantees that the stack trace is reliable.
- *
- * If the task is not 'current', the caller *must* ensure the task is inactive.
- */
 int arch_stack_walk_reliable(stack_trace_consume_fn consume_entry,
 			     void *cookie, struct task_struct *task)
 {
diff --git a/arch/x86/kernel/stacktrace.c b/arch/x86/kernel/stacktrace.c
index 8627fda8d993..15b058eefc4e 100644
--- a/arch/x86/kernel/stacktrace.c
+++ b/arch/x86/kernel/stacktrace.c
@@ -29,12 +29,6 @@ void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
 	}
 }
 
-/*
- * This function returns an error if it detects any unreliable features of the
- * stack.  Otherwise it guarantees that the stack trace is reliable.
- *
- * If the task is not 'current', the caller *must* ensure the task is inactive.
- */
 int arch_stack_walk_reliable(stack_trace_consume_fn consume_entry,
 			     void *cookie, struct task_struct *task)
 {
diff --git a/include/linux/stacktrace.h b/include/linux/stacktrace.h
index 50e2df30b0aa..9edecb494e9e 100644
--- a/include/linux/stacktrace.h
+++ b/include/linux/stacktrace.h
@@ -52,8 +52,27 @@ typedef bool (*stack_trace_consume_fn)(void *cookie, unsigned long addr);
  */
 void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
 		     struct task_struct *task, struct pt_regs *regs);
+
+/**
+ * arch_stack_walk_reliable - Architecture specific function to walk the
+ *			      stack reliably
+ *
+ * @consume_entry:	Callback which is invoked by the architecture code for
+ *			each entry.
+ * @cookie:		Caller supplied pointer which is handed back to
+ *			@consume_entry
+ * @task:		Pointer to a task struct, can be NULL
+ *
+ * This function returns an error if it detects any unreliable
+ * features of the stack. Otherwise it guarantees that the stack
+ * trace is reliable.
+ *
+ * If the task is not 'current', the caller *must* ensure the task is
+ * inactive and its stack is pinned.
+ */
 int arch_stack_walk_reliable(stack_trace_consume_fn consume_entry, void *cookie,
 			     struct task_struct *task);
+
 void arch_stack_walk_user(stack_trace_consume_fn consume_entry, void *cookie,
 			  const struct pt_regs *regs);
 
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] stacktrace: Move documentation for arch_stack_walk_reliable() to header
  2021-03-09 19:41 [PATCH] stacktrace: Move documentation for arch_stack_walk_reliable() to header Mark Brown
@ 2021-03-09 21:36 ` Randy Dunlap
  2021-03-10  5:24 ` Borislav Petkov
  2021-03-10 14:59 ` [tip: x86/cleanups] " tip-bot2 for Mark Brown
  2 siblings, 0 replies; 5+ messages in thread
From: Randy Dunlap @ 2021-03-09 21:36 UTC (permalink / raw)
  To: Mark Brown, linux-kernel
  Cc: Thomas Gleixner, Ingo Molnar, Borislav Petkov, H. Peter Anvin,
	Heiko Carstens, Christian Borntraeger, Josh Poimboeuf,
	Jiri Kosina, Petr Mladek, Joe Lawrence, x86, linux-s390,
	live-patching, Vasily Gorbik, Miroslav Benes

On 3/9/21 11:41 AM, Mark Brown wrote:
> Currently arch_stack_wallk_reliable() is documented with an identical
> comment in both x86 and S/390 implementations which is a bit redundant.
> Move this to the header and convert to kerneldoc while we're at it.
> 
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: Borislav Petkov <bp@alien8.de>
> Cc: "H. Peter Anvin" <hpa@zytor.com>
> Cc: Heiko Carstens <hca@linux.ibm.com>
> Cc: Christian Borntraeger <borntraeger@de.ibm.com>
> Cc: Josh Poimboeuf <jpoimboe@redhat.com>
> Cc: Jiri Kosina <jikos@kernel.org>
> Cc: Petr Mladek <pmladek@suse.com>
> Cc: Joe Lawrence <joe.lawrence@redhat.com>
> Cc: x86@kernel.org
> Cc: linux-s390@vger.kernel.org
> Cc: live-patching@vger.kernel.org
> Signed-off-by: Mark Brown <broonie@kernel.org>
> Acked-by: Vasily Gorbik <gor@linux.ibm.com>
> Reviewed-by: Miroslav Benes <mbenes@suse.cz>

Acked-by: Randy Dunlap <rdunlap@infradead.org>

Looks good. Thanks.

> ---
>  arch/s390/kernel/stacktrace.c |  6 ------
>  arch/x86/kernel/stacktrace.c  |  6 ------
>  include/linux/stacktrace.h    | 19 +++++++++++++++++++
>  3 files changed, 19 insertions(+), 12 deletions(-)
> 
> diff --git a/arch/s390/kernel/stacktrace.c b/arch/s390/kernel/stacktrace.c
> index 7f1266c24f6b..101477b3e263 100644
> --- a/arch/s390/kernel/stacktrace.c
> +++ b/arch/s390/kernel/stacktrace.c
> @@ -24,12 +24,6 @@ void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
>  	}
>  }
>  
> -/*
> - * This function returns an error if it detects any unreliable features of the
> - * stack.  Otherwise it guarantees that the stack trace is reliable.
> - *
> - * If the task is not 'current', the caller *must* ensure the task is inactive.
> - */
>  int arch_stack_walk_reliable(stack_trace_consume_fn consume_entry,
>  			     void *cookie, struct task_struct *task)
>  {
> diff --git a/arch/x86/kernel/stacktrace.c b/arch/x86/kernel/stacktrace.c
> index 8627fda8d993..15b058eefc4e 100644
> --- a/arch/x86/kernel/stacktrace.c
> +++ b/arch/x86/kernel/stacktrace.c
> @@ -29,12 +29,6 @@ void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
>  	}
>  }
>  
> -/*
> - * This function returns an error if it detects any unreliable features of the
> - * stack.  Otherwise it guarantees that the stack trace is reliable.
> - *
> - * If the task is not 'current', the caller *must* ensure the task is inactive.
> - */
>  int arch_stack_walk_reliable(stack_trace_consume_fn consume_entry,
>  			     void *cookie, struct task_struct *task)
>  {
> diff --git a/include/linux/stacktrace.h b/include/linux/stacktrace.h
> index 50e2df30b0aa..9edecb494e9e 100644
> --- a/include/linux/stacktrace.h
> +++ b/include/linux/stacktrace.h
> @@ -52,8 +52,27 @@ typedef bool (*stack_trace_consume_fn)(void *cookie, unsigned long addr);
>   */
>  void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
>  		     struct task_struct *task, struct pt_regs *regs);
> +
> +/**
> + * arch_stack_walk_reliable - Architecture specific function to walk the
> + *			      stack reliably
> + *
> + * @consume_entry:	Callback which is invoked by the architecture code for
> + *			each entry.
> + * @cookie:		Caller supplied pointer which is handed back to
> + *			@consume_entry
> + * @task:		Pointer to a task struct, can be NULL
> + *
> + * This function returns an error if it detects any unreliable
> + * features of the stack. Otherwise it guarantees that the stack
> + * trace is reliable.
> + *
> + * If the task is not 'current', the caller *must* ensure the task is
> + * inactive and its stack is pinned.
> + */
>  int arch_stack_walk_reliable(stack_trace_consume_fn consume_entry, void *cookie,
>  			     struct task_struct *task);
> +
>  void arch_stack_walk_user(stack_trace_consume_fn consume_entry, void *cookie,
>  			  const struct pt_regs *regs);
>  
> 


-- 
~Randy


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] stacktrace: Move documentation for arch_stack_walk_reliable() to header
  2021-03-09 19:41 [PATCH] stacktrace: Move documentation for arch_stack_walk_reliable() to header Mark Brown
  2021-03-09 21:36 ` Randy Dunlap
@ 2021-03-10  5:24 ` Borislav Petkov
  2021-03-10 13:26   ` Mark Brown
  2021-03-10 14:59 ` [tip: x86/cleanups] " tip-bot2 for Mark Brown
  2 siblings, 1 reply; 5+ messages in thread
From: Borislav Petkov @ 2021-03-10  5:24 UTC (permalink / raw)
  To: Mark Brown
  Cc: linux-kernel, Thomas Gleixner, Ingo Molnar, H. Peter Anvin,
	Heiko Carstens, Christian Borntraeger, Josh Poimboeuf,
	Jiri Kosina, Petr Mladek, Joe Lawrence, x86, linux-s390,
	live-patching, Vasily Gorbik, Miroslav Benes

On Tue, Mar 09, 2021 at 07:41:25PM +0000, Mark Brown wrote:
> Currently arch_stack_wallk_reliable() is documented with an identical
> comment in both x86 and S/390 implementations which is a bit redundant.
> Move this to the header and convert to kerneldoc while we're at it.
> 
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: Borislav Petkov <bp@alien8.de>
> Cc: "H. Peter Anvin" <hpa@zytor.com>
> Cc: Heiko Carstens <hca@linux.ibm.com>
> Cc: Christian Borntraeger <borntraeger@de.ibm.com>
> Cc: Josh Poimboeuf <jpoimboe@redhat.com>
> Cc: Jiri Kosina <jikos@kernel.org>
> Cc: Petr Mladek <pmladek@suse.com>
> Cc: Joe Lawrence <joe.lawrence@redhat.com>
> Cc: x86@kernel.org
> Cc: linux-s390@vger.kernel.org
> Cc: live-patching@vger.kernel.org
> Signed-off-by: Mark Brown <broonie@kernel.org>
> Acked-by: Vasily Gorbik <gor@linux.ibm.com>
> Reviewed-by: Miroslav Benes <mbenes@suse.cz>
> ---
>  arch/s390/kernel/stacktrace.c |  6 ------
>  arch/x86/kernel/stacktrace.c  |  6 ------
>  include/linux/stacktrace.h    | 19 +++++++++++++++++++
>  3 files changed, 19 insertions(+), 12 deletions(-)

LGTM.

Holler if I should take this through tip.

Thx.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] stacktrace: Move documentation for arch_stack_walk_reliable() to header
  2021-03-10  5:24 ` Borislav Petkov
@ 2021-03-10 13:26   ` Mark Brown
  0 siblings, 0 replies; 5+ messages in thread
From: Mark Brown @ 2021-03-10 13:26 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: linux-kernel, Thomas Gleixner, Ingo Molnar, H. Peter Anvin,
	Heiko Carstens, Christian Borntraeger, Josh Poimboeuf,
	Jiri Kosina, Petr Mladek, Joe Lawrence, x86, linux-s390,
	live-patching, Vasily Gorbik, Miroslav Benes

[-- Attachment #1: Type: text/plain, Size: 408 bytes --]

On Wed, Mar 10, 2021 at 06:24:36AM +0100, Borislav Petkov wrote:
> On Tue, Mar 09, 2021 at 07:41:25PM +0000, Mark Brown wrote:
> > Currently arch_stack_wallk_reliable() is documented with an identical

> LGTM.

> Holler if I should take this through tip.

Yes please, though there's a typo Peter pointed out in the commit log
above - should be walk not wallk.  Let me know if you want me to resend
for that.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [tip: x86/cleanups] stacktrace: Move documentation for arch_stack_walk_reliable() to header
  2021-03-09 19:41 [PATCH] stacktrace: Move documentation for arch_stack_walk_reliable() to header Mark Brown
  2021-03-09 21:36 ` Randy Dunlap
  2021-03-10  5:24 ` Borislav Petkov
@ 2021-03-10 14:59 ` tip-bot2 for Mark Brown
  2 siblings, 0 replies; 5+ messages in thread
From: tip-bot2 for Mark Brown @ 2021-03-10 14:59 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: Mark Brown, Borislav Petkov, Miroslav Benes, Vasily Gorbik,
	Randy Dunlap, x86, linux-kernel

The following commit has been merged into the x86/cleanups branch of tip:

Commit-ID:     b18adee4ce4443399963826b5d28d9e63d40740c
Gitweb:        https://git.kernel.org/tip/b18adee4ce4443399963826b5d28d9e63d40740c
Author:        Mark Brown <broonie@kernel.org>
AuthorDate:    Tue, 09 Mar 2021 19:41:25 
Committer:     Borislav Petkov <bp@suse.de>
CommitterDate: Wed, 10 Mar 2021 15:52:31 +01:00

stacktrace: Move documentation for arch_stack_walk_reliable() to header

Currently arch_stack_walk_reliable() is documented with an identical
comment in both x86 and S/390 implementations which is a bit redundant.
Move this to the header and convert to kerneldoc while we're at it.

Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Acked-by: Vasily Gorbik <gor@linux.ibm.com>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://lkml.kernel.org/r/20210309194125.652-1-broonie@kernel.org
---
 arch/s390/kernel/stacktrace.c |  6 ------
 arch/x86/kernel/stacktrace.c  |  6 ------
 include/linux/stacktrace.h    | 19 +++++++++++++++++++
 3 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/arch/s390/kernel/stacktrace.c b/arch/s390/kernel/stacktrace.c
index 7f1266c..101477b 100644
--- a/arch/s390/kernel/stacktrace.c
+++ b/arch/s390/kernel/stacktrace.c
@@ -24,12 +24,6 @@ void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
 	}
 }
 
-/*
- * This function returns an error if it detects any unreliable features of the
- * stack.  Otherwise it guarantees that the stack trace is reliable.
- *
- * If the task is not 'current', the caller *must* ensure the task is inactive.
- */
 int arch_stack_walk_reliable(stack_trace_consume_fn consume_entry,
 			     void *cookie, struct task_struct *task)
 {
diff --git a/arch/x86/kernel/stacktrace.c b/arch/x86/kernel/stacktrace.c
index 8627fda..15b058e 100644
--- a/arch/x86/kernel/stacktrace.c
+++ b/arch/x86/kernel/stacktrace.c
@@ -29,12 +29,6 @@ void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
 	}
 }
 
-/*
- * This function returns an error if it detects any unreliable features of the
- * stack.  Otherwise it guarantees that the stack trace is reliable.
- *
- * If the task is not 'current', the caller *must* ensure the task is inactive.
- */
 int arch_stack_walk_reliable(stack_trace_consume_fn consume_entry,
 			     void *cookie, struct task_struct *task)
 {
diff --git a/include/linux/stacktrace.h b/include/linux/stacktrace.h
index 50e2df3..9edecb4 100644
--- a/include/linux/stacktrace.h
+++ b/include/linux/stacktrace.h
@@ -52,8 +52,27 @@ typedef bool (*stack_trace_consume_fn)(void *cookie, unsigned long addr);
  */
 void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
 		     struct task_struct *task, struct pt_regs *regs);
+
+/**
+ * arch_stack_walk_reliable - Architecture specific function to walk the
+ *			      stack reliably
+ *
+ * @consume_entry:	Callback which is invoked by the architecture code for
+ *			each entry.
+ * @cookie:		Caller supplied pointer which is handed back to
+ *			@consume_entry
+ * @task:		Pointer to a task struct, can be NULL
+ *
+ * This function returns an error if it detects any unreliable
+ * features of the stack. Otherwise it guarantees that the stack
+ * trace is reliable.
+ *
+ * If the task is not 'current', the caller *must* ensure the task is
+ * inactive and its stack is pinned.
+ */
 int arch_stack_walk_reliable(stack_trace_consume_fn consume_entry, void *cookie,
 			     struct task_struct *task);
+
 void arch_stack_walk_user(stack_trace_consume_fn consume_entry, void *cookie,
 			  const struct pt_regs *regs);
 

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-03-10 15:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-09 19:41 [PATCH] stacktrace: Move documentation for arch_stack_walk_reliable() to header Mark Brown
2021-03-09 21:36 ` Randy Dunlap
2021-03-10  5:24 ` Borislav Petkov
2021-03-10 13:26   ` Mark Brown
2021-03-10 14:59 ` [tip: x86/cleanups] " tip-bot2 for Mark Brown

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.