summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorTianyang Zhang <zhangtianyang@loongson.cn>2026-05-13 09:28:34 +0800
committerThomas Gleixner <tglx@kernel.org>2026-06-03 22:28:11 +0200
commitd9ba741cd168649a768e9f95fe9db3d3596a6ae6 (patch)
tree50b41cdc451bdeec003e57e57101e672a8965638 /include/linux
parent4b522d3cf4777531023c6d18679ab5a5d3552c04 (diff)
irqchip/loongarch-avec: Return IRQ_SET_MASK_OK_DONE when keep affinity
Interrupt redirection support requires a new redirect domain, which will appear as a child domain of avecintc domain. For each interrupt source, avecintc domain only provides the CPU/interrupt vectors, while redirect domain provides other operations to synchronize the interrupt affinity information among multiple cores. When modifying the affinity of an interrupt associated with the redirect domain, if the avecintc domain detects that the actual interrupt affinity hasn't been changed, then the redirect domain doesn't need to perform any operations. To achieve the above purpose, in avecintc_set_affinity() when the current affinity remains valid, then return value is set to IRQ_SET_MASK_OK_DONE. This doesn't introduce any compatibility issues, even if the new return value causing msi_domain_set_affinity() to no longer perform the call to irq_chip_write_msi_msg(): 1) When both avecintc and redirect exist in the system, the msg_address and msg_data no longer change after the allocation phase, so it does not actually require updating the MSI message info. 2) When only avecintc exists in the system, the irq_domain_activate_irq() interface will be responsible for the initial configuration of the MSI message info, which is unconditional. After that, if unnecessary, there is no modification to the MSI message info. Signed-off-by: Tianyang Zhang <zhangtianyang@loongson.cn> Signed-off-by: Thomas Gleixner <tglx@kernel.org> Acked-by: Huacai Chen <chenhuacai@loongson.cn> Link: https://patch.msgid.link/20260513012839.2856463-4-zhangtianyang@loongson.cn
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions