Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:Oneshot interrupts keep the irq line masked until the threaded* handler finished. unmask if the interrupt has not been disabled and* is marked MASKED.

Proto:static void irq_finalize_oneshot(struct irq_desc *desc, struct irqaction *action)

Type:void

Parameter:

TypeParameterName
struct irq_desc *desc
struct irqaction *action
880  If Not (istate & IRQS_ONESHOT) || handler == irq_forced_secondary_handler Then Return
883  again :
884  Inline functions for support of irq chips on slow busses
885  raw_spin_lock_irq( & lock)
901  If Value for the false possibility is greater at compile time(irqd_irq_inprogress( & irq_data)) Then
902  raw_spin_unlock_irq( & lock)
903  chip_bus_sync_unlock(desc)
904  cpu_relax()
905  Go to again
913  If st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting from Then Go to out_unlock
916  threads_oneshot &= ~thread_mask
918  If Not threads_oneshot && Not irqd_irq_disabled( & irq_data) && irqd_irq_masked( & irq_data) Then unmask_threaded_irq(desc)
922  out_unlock :
923  raw_spin_unlock_irq( & lock)
924  chip_bus_sync_unlock(desc)
Caller
NameDescribe
irq_forced_thread_fnInterrupts which are not explicitly requested as threaded* interrupts rely on the implicit bh/preempt disable of the hard irq* context. So we need to disable bh here to avoid deadlocks and other* side effects.
irq_thread_fnInterrupts explicitly requested as threaded interrupts want to be* preemtible - many of them need to sleep and wait for slow busses to* complete.
irq_thread_dtor