Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:note_interrupt

Proto:void note_interrupt(struct irq_desc *desc, irqreturn_t action_ret)

Type:void

Parameter:

TypeParameterName
struct irq_desc *desc
irqreturn_taction_ret
275  If istate & IRQS_POLL_INPROGRESS || irq_settings_is_polled(desc) Then Return
279  If bad_action_ret(action_ret) Then
280  report_bad_irq(desc, action_ret)
281  Return
304  If action_ret & IRQ_WAKE_THREAD Then
311  If action_ret == IRQ_WAKE_THREAD Then
321  If Not (threads_handled_last & SPURIOUS_DEFERRED) Then
323  Return
339  If handled != threads_handled_last Then
350  Else
362  Else
384  If Value for the false possibility is greater at compile time(action_ret == IRQ_NONE) Then
391  If These inlines deal with timer wrapping correctly. You are * strongly encouraged to use them* 1. Because people otherwise forget* 2. Because if the timer wrap changes in future you won't have to* alter your driver code.(jiffies, Aging timer for unhandled count + HZ / 10) Then irqs_unhandled = 1
393  Else irqs_unhandled++
395  Aging timer for unhandled count = jiffies
398  irq = irq_desc_get_irq(desc)
399  If Value for the false possibility is greater at compile time(try_misrouted_irq(irq, desc, action_ret)) Then
400  ok = misrouted_irq(irq)
401  If action_ret == IRQ_NONE Then irqs_unhandled -= ok
405  For detecting broken IRQs ++
406  If Value is more likely to compile time( For detecting broken IRQs < 100000) Then Return
409  For detecting broken IRQs = 0
410  If Value for the false possibility is greater at compile time(irqs_unhandled > 99900) Then
414  If 99,900 of the previous 100,000 interrupts have not been handled* then assume that the IRQ is stuck in some manner
418  printk - print a kernel message*@fmt: format string* This is printk(). It can be called from any context. We want it to work.* We try to grab the console_lock. If we succeed, it's easy - we log the* output and call the console drivers
419  istate |= IRQS_SPURIOUS_DISABLED
420  nested irq disables ++
421  q_disable - Mark interrupt disabled*@desc: irq descriptor which should be disabled* If the chip does not implement the irq_disable callback, we* use a lazy disable approach. That means we mark the interrupt* disabled, but leave the hardware unmasked
423  mod_timer( & poll_spurious_irq_timer, jiffies + POLL_SPURIOUS_IRQ_INTERVAL)
426  irqs_unhandled = 0
Caller
NameDescribe
handle_nested_irqhandle_nested_irq - Handle a nested irq from a irq thread*@irq: the interrupt number* Handle interrupts which are nested into a threaded interrupt* handler. The handler function is called inside the calling* threads context.
handle_irq_event_percpu