Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:Internal function to unregister an irqaction - used to free* regular and special interrupts that are part of the architecture.

Proto:static struct irqaction *__free_irq(struct irq_desc *desc, void *dev_id)

Type:struct irqaction

Parameter:

TypeParameterName
struct irq_desc *desc
void *dev_id
1674  irq = irq
1678  WARN(in_interrupt(), "Trying to free IRQ %d from IRQ context!\n", irq)
1680  mutex_lock( & request_mutex)
1681  Inline functions for support of irq chips on slow busses
1682  raw_spin_lock_irqsave( & lock, flags)
1688  action_ptr = IRQ action list
1689  cycle
1690  action = action_ptr
1692  If Not action Then
1693  WARN(1, "Trying to free already-free IRQ %d\n", irq)
1697  Return NULL
1700  If dev_id == dev_id Then Break
1702  action_ptr = next
1706  action_ptr = next
1708  irq_pm_remove_action(desc, action)
1711  If Not IRQ action list Then
1712  irq_settings_clr_disable_unlazy(desc)
1714  irq_shutdown(desc)
1723  raw_spin_unlock_irqrestore( & lock, flags)
1738  chip_bus_sync_unlock(desc)
1740  unregister_handler_proc(irq, action)
1747  __synchronize_hardirq(desc, true)
1771  If thread Then
1772  stop a thread
1773  put_task_struct(thread)
1774  If secondary && thread Then
1775  stop a thread
1781  If Not IRQ action list Then
1786  Inline functions for support of irq chips on slow busses
1791  raw_spin_lock_irqsave( & lock, flags)
1792  irq_domain_deactivate_irq( & irq_data)
1793  raw_spin_unlock_irqrestore( & lock, flags)
1795  irq_release_resources(desc)
1796  chip_bus_sync_unlock(desc)
1797  irq_remove_timings(desc)
1800  mutex_unlock - release the mutex*@lock: the mutex to be released* Unlock a mutex that has been locked by this task previously.* This function must not be used in interrupt context. Unlocking* of a not locked mutex is not allowed.
1802  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
1803  module_put(owner)
1804  kfree - free previously allocated memory*@objp: pointer returned by kmalloc.* If @objp is NULL, no operation is performed.* Don't free memory not originally allocated by kmalloc()* or you will run into trouble.
1805  Return action
Caller
NameDescribe
remove_irqmove_irq - free an interrupt*@irq: Interrupt line to free*@act: irqaction for the interrupt* Used to remove interrupts statically setup by the early boot process.
free_irq_irq - free an interrupt allocated with request_irq*@irq: Interrupt line to free*@dev_id: Device identity to free* Remove an interrupt handler