Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\nmi.c Create Date:2022-07-28 07:35:18
Last Modify:2022-05-22 06:29:32 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:do_nmi

Proto:__attribute__((__externally_visible__)) notrace void do_nmi(struct pt_regs *regs, long error_code)

Type:void

Parameter:

TypeParameterName
struct pt_regs *regs
longerror_code
513  If IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',* 0 otherwise.(CONFIG_SMP) && cpu_is_offline(smp_processor_id()) Then Return
516  If Operations with implied preemption/interrupt protection. These* operations can be used without worrying about preemption or interrupt.(nmi_state) != NMI_NOT_RUNNING Then
517  this_cpu_write(nmi_state, NMI_LATCHED)
518  Return
520  this_cpu_write(nmi_state, NMI_EXECUTING)
521  this_cpu_write(nmi_cr2, read_cr2())
522  nmi_restart :
531  If Value for the false possibility is greater at compile time(is_debug_stack(sp)) Then
532  debug_stack_set_zero()
533  this_cpu_write(In x86_64, we need to handle breakpoint -> NMI -> breakpoint, 1)
537  nmi_enter()
539  inc_irq_stat(__nmi_count)
541  If Not ignore_nmis Then default_do_nmi(regs)
544  nmi_exit()
547  If Value for the false possibility is greater at compile time(Operations with implied preemption/interrupt protection. These* operations can be used without worrying about preemption or interrupt.(In x86_64, we need to handle breakpoint -> NMI -> breakpoint)) Then
548  debug_stack_reset()
549  this_cpu_write(In x86_64, we need to handle breakpoint -> NMI -> breakpoint, 0)
553  If Value for the false possibility is greater at compile time(Operations with implied preemption/interrupt protection. These* operations can be used without worrying about preemption or interrupt.(nmi_cr2) != read_cr2()) Then write_cr2(Operations with implied preemption/interrupt protection. These* operations can be used without worrying about preemption or interrupt.(nmi_cr2))
555  If this_cpu_dec_return(nmi_state) Then Go to nmi_restart
558  If ser_mode(regs) determines whether a register set came from user* mode Then mds_user_clear_cpu_buffers - Mitigation for MDS and TAA vulnerability* Clear CPU buffers if the corresponding static key is enabled