提交 2e149805 编写于 作者: Y Yipeng Zou 提交者: Yongqiang Liu

genirq: Remove irqd_irq_disabled in __irq_move_irq

hulk inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I6BO2R
CVE: NA

--------------------------------

CONFIG_GENERIC_PENDING_IRQ has been enable in ARM64 for LPI, which can
delay set irq affinity ops in chip->irq_eoi process. While drivers call
disable_irq_nosync in irq handler, __irq_move_irq would judge irq
is disabled and return directly, which cause set affinity failed.

To fix this issue, remove the irq status judgement in __irq_move_irq
for ARM64, cause there is no relationship between irq affinity and irq
disabled, and irq_set_affinity does not judge it either.

Fixes: 6ea55196 ("irqchip/gic-v3-its: introduce CONFIG_GENERIC_PENDING_IRQ")
Signed-off-by: NZhang Jianhua <chris.zjh@huawei.com>
Signed-off-by: NYipeng Zou <zouyipeng@huawei.com>
Reviewed-by: NLiao Chang <liaochang1@huawei.com>
Reviewed-by: NZhang Jianhua <chris.zjh@huawei.com>
Signed-off-by: NYongqiang Liu <liuyongqiang13@huawei.com>
上级 cc6fb9a6
......@@ -105,8 +105,10 @@ void __irq_move_irq(struct irq_data *idata)
*/
idata = irq_desc_get_irq_data(irq_data_to_desc(idata));
#ifndef CONFIG_ARM64
if (unlikely(irqd_irq_disabled(idata)))
return;
#endif
/*
* Be careful vs. already masked interrupts. If this is a
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册