• Home
  • Raw
  • Download

Lines Matching refs:a

8 The kernel CONFIG_STACK_VALIDATION option enables a host tool named
9 objtool which runs at compile time. It has a "check" subcommand which
11 It enforces a set of rules on asm code and C inline assembly code so
19 alternative execution paths to a given instruction (or set of
33 a) More reliable stack traces for frame pointer enabled kernels
52 functions which call other functions must first create a stack frame
53 and update the frame pointer. If a first function doesn't properly
54 create a stack frame before calling a second function, the *caller*
90 skipped on a stack trace.
93 beginning of a function before the stack frame has been created,
123 ENTRY/ENDPROC macros. If objtool finds a return instruction
124 outside of a function, it flags an error since that usually indicates
143 designed. If function A doesn't create a stack frame before calling
149 a) the jump is part of a switch statement; or
154 This rule is needed so that objtool can reliably analyze all of a
155 function's code paths. If a function jumps to code in another file,
156 and it's not a sibling call, objtool has no way to follow the jump
157 because it only analyzes a single file at a time.
163 This rule is just a sanity check to ensure that callable functions
185 The func() function made a function call without first saving and/or
188 If the error is for an asm file, and func() is indeed a callable
190 FRAME_END macros. Otherwise, if it's not a callable function, remove
194 If it's a GCC-compiled .c file, the error may be because the function
195 uses an inline asm() statement which has a "call" instruction. An
196 asm() statement with a call instruction must declare the use of the
207 Objtool couldn't find a code path to reach the instruction.
210 reachable from) a callable function, the function should be annotated
217 a just a bad person, you can tell objtool to ignore it. See the
220 If it's not actually in a callable function (e.g. kernel entry code),
228 Does the file have data in a text section? If so, that can confuse
229 objtool's instruction decoder. Move the data to a more appropriate
235 This is a kernel entry/exit instruction like sysenter or iret. Such
236 instructions aren't allowed in a callable function, and are most
244 This is a dynamic jump or a jump to an undefined symbol. Objtool
245 assumed it's a sibling call and detected that the frame pointer
248 If it's not really a sibling call, you may need to move the
251 If the instruction is not actually in a callable function (e.g.
275 This means that funcA() doesn't end with a return instruction or an
280 1) funcA()'s last instruction is a call to a "noreturn" function like
283 objtool maintainer, or you can submit a patch.
285 2) funcA() uses the unreachable() annotation in a section of code
289 might be corrupt due to a gcc bug. For more details, see:
293 If the error doesn't seem to make sense, it could be a bug in objtool.
304 - To skip validation of a function, use the STACK_FRAME_NON_STANDARD
307 - To skip validation of a file, add
313 - To skip validation of a directory, add