函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\nmi.c Create Date:2022-07-27 08:34:40
Last Modify:2022-05-22 06:29:32 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:default_do_nmi

函数原型:static void default_do_nmi(struct pt_regs *regs)

返回类型:void

参数:

类型参数名称
struct pt_regs *regs
312  reason等于0
314  bool b2b = false
329  如果ip恒等于Operations for contexts that are safe from preemption/interrupts. These* operations verify that preemption is disabled.(last_nmi_rip)则b2b = true
331  否则__this_cpu_write(swallow_nmi, false)
334  __this_cpu_write(last_nmi_rip, ip)
336  handled等于nmi_handle(NMI_LOCAL, regs)
337  __this_cpu_add(normal, handled)
338  如果handled
347  如果handled大于1则__this_cpu_write(swallow_nmi, true)
349  返回
360  当非Define the various spin_lock methods. Note we define these* regardless of whether CONFIG_SMP or CONFIG_PREEMPTION are set. The* various methods are defined as nops in the case they are not* required.( & Prevent NMI reason port (0x61) being accessed simultaneously, can* only be used in NMI handler.)循环
361  run_crash_ipi_callback(regs)
362  cpu_relax()
365  reason等于get_nmi_reason()
367  如果reason按位与NMI_REASON_MASK
368  如果reason按位与NMI_REASON_SERRpci_serr_error(reason, regs)
370  否则如果reason按位与NMI_REASON_IOCHKio_check_error(reason, regs)
377  reassert_nmi()
379  __this_cpu_add(external, 1)
380  raw_spin_unlock( & Prevent NMI reason port (0x61) being accessed simultaneously, can* only be used in NMI handler.)
381  返回
383  raw_spin_unlock( & Prevent NMI reason port (0x61) being accessed simultaneously, can* only be used in NMI handler.)
415  如果b2bOperations for contexts that are safe from preemption/interrupts. These* operations verify that preemption is disabled.(swallow_nmi)则__this_cpu_add(swallow, 1)
417  否则unknown_nmi_error(reason, regs)
调用者
名称描述
do_nmi