函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\irq\manage.c Create Date:2022-07-27 11:10:18
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Internal function to unregister a percpu irqaction.

函数原型:static struct irqaction *__free_percpu_irq(unsigned int irq, void __percpu *dev_id)

返回类型:struct irqaction

参数:

类型参数名称
unsigned intirq
void __percpu *dev_id
2270  desc等于中断转换为描述
2274  WARN(in_interrupt(), "Trying to free IRQ %d from IRQ context!\n", irq)
2276  如果非desc则返回:NULL
2279  raw_spin_lock_irqsave( & 自旋锁, flags)
2281  action等于中断服务例程链表
2282  如果非actionpercpu_dev_id不等于dev_id
2283  WARN(1, "Trying to free already-free IRQ %d\n", irq)
2284  转到:bad
2287  如果非pumask_empty - *srcp == 0*@srcp: the cpumask to that all cpus < nr_cpu_ids are clear.
2288  WARN(1, "percpu IRQ %d still enabled on CPU%d!\n", irq, Uniprocessor. Assume all masks are "1". )
2290  转到:bad
2294  中断服务例程链表 = NULL
2296  istate与等于IRQS_NMI的反
2298  raw_spin_unlock_irqrestore( & 自旋锁, flags)
2300  unregister_handler_proc(irq, action)
2302  q_chip_pm_put - Disable power for an IRQ chip*@data: Pointer to interrupt specific data* Disable the power to the IRQ chip referenced by the interrupt data* structure, belongs. Note that power will only be disabled, once this
2303  module_put(owner)
2304  返回:action
2306  bad :
2307  raw_spin_unlock_irqrestore( & 自旋锁, flags)
2308  返回:NULL
调用者
名称描述
remove_percpu_irqmove_percpu_irq - free a per-cpu interrupt*@irq: Interrupt line to free*@act: irqaction for the interrupt* Used to remove interrupts statically setup by the early boot process.
free_percpu_irq_percpu_irq - free an interrupt allocated with request_percpu_irq*@irq: Interrupt line to free*@dev_id: Device identity to free* Remove a percpu interrupt handler. The handler is removed, but* the interrupt line is not disabled. This must be done on each
free_percpu_nmi