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:30
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:unwind_next_frame

Proto:bool unwind_next_frame(struct unwind_state *state)

Type:bool

Parameter:

TypeParameterName
struct unwind_state *state
265  If unwind_done(state) Then Return false
269  If regs && ser_mode(regs) determines whether a register set came from user* mode Then Go to the_end
272  If is_last_task_frame(state) Then
273  regs = task_pt_regs(task)
286  If Not ser_mode(regs) determines whether a register set came from user* mode Then Go to the_end
294  regs = regs
295  bp = NULL
296  ip = 0
297  Return true
301  If next_bp Then
302  next_bp = next_bp
303  next_bp = NULL
304  Else if regs Then
305  next_bp = bp
306  Else
307  next_bp = 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, * bp)
311  If Not update_stack_state(state, next_bp) Then Go to bad_address
314  Return true
316  bad_address :
317  error = true
326  If task != current process Then Go to the_end
333  If got_irq && in_entry_code(ip) Then Go to the_end
335  If regs && sp >= last_aligned_frame(state) && sp < task_pt_regs(task) Then Go to the_end
344  If IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',* 0 otherwise.(CONFIG_X86_32) Then Go to the_end
347  If regs Then
348  printk_deferred_once(warning conditions "WARNING: kernel stack regs at %p in %s:%d has bad 'bp' value %p\n", regs, * executable name, excluding path. * - normally initialized setup_new_exec() * - access it with [gs]et_task_comm() * - lock it with task_lock(), process id, next_bp)
352  unwind_dump(state)
353  Else
354  printk_deferred_once(warning conditions "WARNING: kernel stack frame pointer at %p in %s:%d has bad value %p\n", bp, * executable name, excluding path. * - normally initialized setup_new_exec() * - access it with [gs]et_task_comm() * - lock it with task_lock(), process id, next_bp)
358  unwind_dump(state)
360  the_end :
361  type = STACK_TYPE_UNKNOWN
362  Return false
Caller
NameDescribe
show_trace_log_lvl
arch_stack_walk
arch_stack_walk_reliableThis 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.
__unwind_start