[PATCH] Documentation: Call out example SYM_FUNC_* usage as x86-specific

From: Will Deacon
Date: Wed Jan 15 2020 - 13:43:14 EST


The example given in asm-annotations.rst to describe the constraints that
a function should meet in order to be annotated with a SYM_FUNC_* macro
is x86-specific, and not necessarily applicable to architectures using
branch-and-link style calling conventions such as arm64.

Tweak the example text to call out the x86-specific text.

Cc: Mark Brown <broonie@xxxxxxxxxx>
Cc: Jiri Slaby <jslaby@xxxxxxxx>
Signed-off-by: Will Deacon <will@xxxxxxxxxx>
---

As an aside: if somebody could explain the high-level guarantees required
here for things like livepatching, then I'd be happy to try to put together
another patch adding an example for arm64. I'm currently not completely sure
about what is required in the face of things like leaf functions and tail calls.

Documentation/asm-annotations.rst | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/Documentation/asm-annotations.rst b/Documentation/asm-annotations.rst
index f55c2bb74d00..32ea57483378 100644
--- a/Documentation/asm-annotations.rst
+++ b/Documentation/asm-annotations.rst
@@ -73,10 +73,11 @@ The new macros are prefixed with the ``SYM_`` prefix and can be divided into
three main groups:

1. ``SYM_FUNC_*`` -- to annotate C-like functions. This means functions with
- standard C calling conventions, i.e. the stack contains a return address at
- the predefined place and a return from the function can happen in a
- standard way. When frame pointers are enabled, save/restore of frame
- pointer shall happen at the start/end of a function, respectively, too.
+ standard C calling conventions. For example, on x86, this means that the
+ stack contains a return address at the predefined place and a return from
+ the function can happen in a standard way. When frame pointers are enabled,
+ save/restore of frame pointer shall happen at the start/end of a function,
+ respectively, too.

Checking tools like ``objtool`` should ensure such marked functions conform
to these rules. The tools can also easily annotate these functions with
--
2.25.0.rc1.283.g88dfdc4193-goog