summaryrefslogtreecommitdiff
path: root/include/linux/linkage.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/linkage.h')
-rw-r--r--include/linux/linkage.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/linux/linkage.h b/include/linux/linkage.h
index fe2a39c489b6..b163c5c40dbc 100644
--- a/include/linux/linkage.h
+++ b/include/linux/linkage.h
@@ -17,6 +17,19 @@
# define asmregparm
#endif
+/*
+ * This is used by architectures to keep arguments on the stack
+ * untouched by the compiler by keeping them live until the end.
+ * The argument stack may be owned by the assembly-language
+ * caller, not the callee, and gcc doesn't always understand
+ * that.
+ *
+ * We have the return value, and a maximum of six arguments.
+ *
+ * This should always be followed by a "return ret" for the
+ * protection to work (ie no more work that the compiler might
+ * end up needing stack temporaries for).
+ */
#ifndef asmlinkage_protect
# define asmlinkage_protect(n, ret, args...) do { } while (0)
#endif