Linux kernel 如果在中断上下文中启用了下半部,会出现什么问题

Linux kernel 如果在中断上下文中启用了下半部,会出现什么问题,linux-kernel,linux-device-driver,device-driver,Linux Kernel,Linux Device Driver,Device Driver,在kernel/softirq.c:140的local_bh_enable函数中有一个安全检查,在local_bh_enable中有一种警告消息Badness,如果在中断上下文中调用该函数,它会转储堆栈跟踪。如果在中断上下文中启用了下半部分,会发生什么情况?它们是否影响系统执行路径?下半部分是延迟中断处理,在中断上下文之外完成。如果它们在中断上下文中意外启用,则可能会导致非常奇怪的行为、数据丢失、硬件故障等。因为上半部分中断处理程序尚未将硬件置于良好状态时,下半部分将尝试运行,拉入寄存器状态或屏

在kernel/softirq.c:140的local_bh_enable函数中有一个安全检查,在local_bh_enable中有一种警告消息Badness,如果在中断上下文中调用该函数,它会转储堆栈跟踪。如果在中断上下文中启用了下半部分,会发生什么情况?它们是否影响系统执行路径?

下半部分是延迟中断处理,在中断上下文之外完成。如果它们在中断上下文中意外启用,则可能会导致非常奇怪的行为、数据丢失、硬件故障等。因为上半部分中断处理程序尚未将硬件置于良好状态时,下半部分将尝试运行,拉入寄存器状态或屏蔽中断。

softirq在中断上下文中运行,并启用中断