diff options
Diffstat (limited to 'arch/i386/kernel/traps.c')
-rw-r--r-- | arch/i386/kernel/traps.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/i386/kernel/traps.c b/arch/i386/kernel/traps.c index 54629bb5893a..029bf94cda7d 100644 --- a/arch/i386/kernel/traps.c +++ b/arch/i386/kernel/traps.c | |||
@@ -657,7 +657,7 @@ fastcall void do_nmi(struct pt_regs * regs, long error_code) | |||
657 | 657 | ||
658 | ++nmi_count(cpu); | 658 | ++nmi_count(cpu); |
659 | 659 | ||
660 | if (!nmi_callback(regs, cpu)) | 660 | if (!rcu_dereference(nmi_callback)(regs, cpu)) |
661 | default_do_nmi(regs); | 661 | default_do_nmi(regs); |
662 | 662 | ||
663 | nmi_exit(); | 663 | nmi_exit(); |
@@ -665,7 +665,7 @@ fastcall void do_nmi(struct pt_regs * regs, long error_code) | |||
665 | 665 | ||
666 | void set_nmi_callback(nmi_callback_t callback) | 666 | void set_nmi_callback(nmi_callback_t callback) |
667 | { | 667 | { |
668 | nmi_callback = callback; | 668 | rcu_assign_pointer(nmi_callback, callback); |
669 | } | 669 | } |
670 | EXPORT_SYMBOL_GPL(set_nmi_callback); | 670 | EXPORT_SYMBOL_GPL(set_nmi_callback); |
671 | 671 | ||