Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:Interrupt handler thread

Proto:static int irq_thread(void *data)

Type:int

Parameter:

TypeParameterName
void *data
1063  action = data
1064  desc = Interrupt to descriptor
1065  irqreturn_t( * handler_fn)(struct irq_desc * desc, struct irqaction * action)
1068  If force_irqthreads && st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting from Then handler_fn = Interrupts 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.
1071  Else handler_fn = Interrupts explicitly requested as threaded interrupts want to be* preemtible - many of them need to sleep and wait for slow busses to* complete.
1074  init_task_work( & on_exit_work, irq_thread_dtor)
1075  ask_work_add - ask the @task to execute @work->func()*@task: the task which should run the callback*@work: the callback to run*@notify: send the notification if true* Queue @work for task_work_run() below and notify the @task if @notify.
1077  irq_thread_check_affinity(desc, action)
1079  When Not irq_wait_for_interrupt(action) cycle
1082  irq_thread_check_affinity(desc, action)
1084  action_ret = handler_fn(desc, action)
1085  If action_ret == IRQ_WAKE_THREAD Then irq_wake_secondary(desc, action)
1088  wake_threads_waitq(desc)
1097  ask_work_cancel - cancel a pending work added by task_work_add()*@task: the task which should execute the work*@func: identifies the work to remove* Find the last queued pending work with ->func == @func and remove* it from queue.* RETURNS:
1098  Return 0