函数源码 |
Source File:arch\x86\kernel\traps.c |
Create Date:2022-07-27 08:31:11 |
首页 | Copyright©Brick |
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | /* * In IST context, we explicitly disable preemption. This serves two * purposes: it makes it much less likely that we would accidentally * schedule in IST context and it will force a warning if we somehow * manage to schedule by accident. */ void ist_enter( struct pt_regs *regs) { if (user_mode(regs)) { RCU_LOCKDEP_WARN(!rcu_is_watching(), "entry code didn't wake RCU" ); } else { /* * We might have interrupted pretty much anything. In * fact, if we're a machine check, we can even interrupt * NMI processing. We don't want in_nmi() to return true, * but we need to notify RCU. */ rcu_nmi_enter(); } preempt_disable(); /* This code is a bit fragile. Test it. */ RCU_LOCKDEP_WARN(!rcu_is_watching(), "ist_enter didn't work" ); } |