Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\apic\msi.c Create Date:2022-07-28 08:31:15
Last Modify:2020-03-17 10:05:02 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:msi_set_affinity

Proto:static int msi_set_affinity(struct irq_data *irqd, const struct cpumask *mask, bool force)

Type:int

Parameter:

TypeParameterName
struct irq_data *irqd
const struct cpumask *mask
boolforce
64  cfg = irqd_cfg(irqd)
65  parent = parent_data
70  cpu = Uniprocessor. Assume all masks are "1".
71  old_cfg = cfg
74  ret = irq_set_affinity(parent, mask, force)
75  If ret < 0 || ret == IRQ_SET_MASK_OK_DONE Then Return ret
91  If Not irqd_msi_nomask_quirk(irqd) || vector == vector || vector == MANAGED_IRQ_SHUTDOWN_VECTOR || dest_apicid == dest_apicid Then
95  irq_msi_update_msg(irqd, cfg)
96  Return ret
103  If WARN_ON_ONCE(cpu != smp_processor_id()) Then
104  irq_msi_update_msg(irqd, cfg)
105  Return ret
123  lock_vector_lock()
135  If IS_ERR_OR_NULL(Operations with implied preemption/interrupt protection. These* operations can be used without worrying about preemption or interrupt.(vector_irq[vector])) Then this_cpu_write(vector_irq[vector], VECTOR_RETRIGGERED)
139  vector = vector
140  irq_msi_update_msg(irqd, & old_cfg)
143  irq_msi_update_msg(irqd, cfg)
153  unlock_vector_lock()
163  If lapic_vector_set_in_irr(vector) Then irq_retrigger(irqd)
166  Return ret