Merge tag 'libnvdimm-for-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm...
[linux-2.6-microblaze.git] / kernel / entry / common.c
index 063068a..846add8 100644 (file)
@@ -5,6 +5,7 @@
 #include <linux/resume_user_mode.h>
 #include <linux/highmem.h>
 #include <linux/jump_label.h>
+#include <linux/kmsan.h>
 #include <linux/livepatch.h>
 #include <linux/audit.h>
 #include <linux/tick.h>
@@ -24,6 +25,7 @@ static __always_inline void __enter_from_user_mode(struct pt_regs *regs)
        user_exit_irqoff();
 
        instrumentation_begin();
+       kmsan_unpoison_entry_regs(regs);
        trace_hardirqs_off_finish();
        instrumentation_end();
 }
@@ -352,6 +354,7 @@ noinstr irqentry_state_t irqentry_enter(struct pt_regs *regs)
                lockdep_hardirqs_off(CALLER_ADDR0);
                ct_irq_enter();
                instrumentation_begin();
+               kmsan_unpoison_entry_regs(regs);
                trace_hardirqs_off_finish();
                instrumentation_end();
 
@@ -367,6 +370,7 @@ noinstr irqentry_state_t irqentry_enter(struct pt_regs *regs)
         */
        lockdep_hardirqs_off(CALLER_ADDR0);
        instrumentation_begin();
+       kmsan_unpoison_entry_regs(regs);
        rcu_irq_enter_check_tick();
        trace_hardirqs_off_finish();
        instrumentation_end();
@@ -452,6 +456,7 @@ irqentry_state_t noinstr irqentry_nmi_enter(struct pt_regs *regs)
        ct_nmi_enter();
 
        instrumentation_begin();
+       kmsan_unpoison_entry_regs(regs);
        trace_hardirqs_off_finish();
        ftrace_nmi_enter();
        instrumentation_end();