Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\unwind_frame.c Create Date:2022-07-28 08:51:27
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:update_stack_state

Proto:static bool update_stack_state(struct unwind_state *state, unsigned long *next_bp)

Type:bool

Parameter:

TypeParameterName
struct unwind_state *state
unsigned long *next_bp
195  info = stack_info
196  prev_type = type
201  If regs Then prev_frame_end = regs + size of regs
203  Else prev_frame_end = bp + FRAME_HEADER_SIZE
207  regs = This determines if the frame pointer actually contains an encoded pointer to* pt_regs on the stack. See ENCODE_FRAME_POINTER.
208  If regs Then
209  frame = regs
210  len = size of regs
211  got_irq = true
212  Else
213  frame = next_bp
214  len = FRAME_HEADER_SIZE
224  When Not on_stack(info, frame, len) cycle
225  If get_stack_info(next_sp, task, info, & stack_mask) Then Return false
230  If orig_sp && type == prev_type && frame < prev_frame_end Then Return false
235  If regs Then
236  regs = regs
237  bp = NULL
238  Else
239  bp = next_bp
240  regs = NULL
244  If regs && ser_mode(regs) determines whether a register set came from user* mode Then ip = 0
246  Else
247  addr_p = unwind_get_return_address_ptr(state)
248  addr = This disables KASAN checking when reading a value from another task's stack,* since the other task could be running on another CPU and could have poisoned* the stack in the meantime.(task, * addr_p)
249  ip = ftrace_graph_ret_addr(task, & graph_idx, addr, addr_p)
254  If Not orig_sp Then orig_sp = frame
257  Return true
Caller
NameDescribe
unwind_next_frame
__unwind_start