Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:do_IRQ handles all normal device IRQ's (the special* SMP cross-CPU interrupts have their own specific* handlers).

Proto:__visible unsigned int __irq_entry do_IRQ(struct pt_regs *regs)

Type:unsigned int

Parameter:

TypeParameterName
struct pt_regs *regs
235  old_regs = set_irq_regs(regs)
238  vector = ~orig_ax
240  entering_irq()
243  RCU_LOCKDEP_WARN(!_is_watching - see if RCU thinks that the current CPU is not idle* Return true if RCU is watching the running CPU, which means that this* CPU can safely enter RCU read-side critical sections, "IRQ failed to wake up RCU")
245  desc = Operations for contexts that are safe from preemption/interrupts. These* operations verify that preemption is disabled.(vector_irq[vector])
246  If Value is more likely to compile time(!IS_ERR_OR_NULL(desc)) Then
247  If IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',* 0 otherwise.(CONFIG_X86_32) Then handle_irq(desc, regs)
249  Else Architectures call this to let the generic IRQ layer* handle an interrupt.
251  Else
252  ack_APIC_irq()
254  If desc == VECTOR_UNUSED Then
255  pr_emerg_ratelimited("%s: %d.%d No irq handler for vector\n", __func__, smp_processor_id(), vector)
258  Else
263  exiting_irq()
265  set_irq_regs(old_regs)
266  Return 1