请阅读【ARMv8/v9 ARM64 System Exception】
上篇文章:ARMv8/v9 异常模型入门及渐进 10 – Linux 中断下半部处理方式
1.1 背景
在 Linux 代码中经常会看到 WARN_ON(in_interrupt())
; 或者 BUG_ON(in_interrupt())
; 从名字可以看出这两句的含义是:如果当前处在 中断上下文 那么就会报 错误,并输出错误信息,那么系统是如何判断处当前运行环境是处于中断上下文的的呢?这里就需要跟踪下 in_interrupt
的函数的实现了。
1.1.1 in_interrupt 定义
in_interrupt 的定义位于 preempt.h 文件中
include/linux/preempt.h