Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:q_destroy_ipi() - unreserve an IPI that was previously allocated*@irq: linux irq number to be destroyed*@dest: cpumask of cpus which should have the IPI removed* The IPIs allocated with irq_reserve_ipi() are retuerned to the system

Proto:int irq_destroy_ipi(unsigned int irq, const struct cpumask *dest)

Type:int

Parameter:

TypeParameterName
unsigned intirq
const struct cpumask *dest
117  data = irq_get_irq_data(irq)
118  struct cpumask * ipimask = data ? irq_data_get_affinity_mask(data) : NULL
122  If Not irq || Not data || Not ipimask Then Return -EINVAL
125  domain = domain
126  If WARN_ON(domain == NULL) Then Return -EINVAL
129  If Not irq_domain_is_ipi(domain) Then
130  pr_warn("Trying to destroy a non IPI domain!\n")
131  Return -EINVAL
134  If WARN_ON(!pumask_subset - (*src1p & ~*src2p) == 0*@src1p: the first input*@src2p: the second input* Returns 1 if *@src1p is a subset of *@src2p, else returns 0) Then Return -EINVAL
141  If irq_domain_is_ipi_per_cpu(domain) Then
142  irq = irq + Uniprocessor. Assume all masks are "1". - ipi_offset
143  nr_irqs = pumask_weight - Count of bits in *srcp*@srcp: the cpumask to count bits (< nr_cpu_ids) in.
144  Else
145  nr_irqs = 1
148  irq_domain_free_irqs(irq, nr_irqs)
149  Return 0