402 Star 1.4K Fork 1.4K

GVPopenEuler / kernel

 / 详情

[OLK-6.6] irqchip/gic-v3: Fix one race condition due to NMI withdraw

已完成
任务
创建于  
2024-05-20 10:13

The introduce of FEAT_NMI/FEAT_GICv3_NMI will cause a race problem that
we may handle the normal interrupt in interrupt disabled context due to
the withdraw of NMI interrupt. The flow will be like below:

[interrupt disabled]
<- normal interrupt pending, for example timer interrupt
<- NMI occurs, ISR_EL1.nmi = 1
do_el1_interrupt()
<- NMI withdraw, ISR_EL1.nmi = 0
ISR_EL1.nmi = 0, not an NMI interrupt
gic_handle_irq()
__gic_handle_irq_from_irqson()
irqnr = gic_read_iar() <- Oops, ack and handle an normal interrupt
in interrupt disabled context!

Fix this by checking the interrupt status in __gic_handle_irq_from_irqson()
and ignore the interrupt if we're in interrupt disabled context.

Fixes: 0408b5bc4300 ("irqchip/gic-v3: Implement FEAT_GICv3_NMI support")

评论 (1)

刘杰 创建了Task

Hi liujie-248683921, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: Kernel, and any of the maintainers.

openeuler-ci-bot 添加了
 
sig/Kernel
标签
刘杰 任务类型Task 修改为任务
刘杰 修改了描述
刘杰 修改了描述
刘杰 通过openeuler/kernel Pull Request !7537任务状态待办的 修改为已完成

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(2)
5329419 openeuler ci bot 1632792936
C
1
https://gitee.com/openeuler/kernel.git
git@gitee.com:openeuler/kernel.git
openeuler
kernel
kernel

搜索帮助

344bd9b3 5694891 D2dac590 5694891