alternative.h (fa6f2cc77081792e4edca9168420a3422299ef15) alternative.h (bf5438fca2950b03c21ad868090cc1a8fcd49536)
1#ifndef _ASM_X86_ALTERNATIVE_H
2#define _ASM_X86_ALTERNATIVE_H
3
4#include <linux/types.h>
5#include <linux/stddef.h>
6#include <linux/stringify.h>
1#ifndef _ASM_X86_ALTERNATIVE_H
2#define _ASM_X86_ALTERNATIVE_H
3
4#include <linux/types.h>
5#include <linux/stddef.h>
6#include <linux/stringify.h>
7#include <linux/jump_label.h>
7#include <asm/asm.h>
8
9/*
10 * Alternative inline assembly for SMP.
11 *
12 * The LOCK_PREFIX macro defined here replaces the LOCK and
13 * LOCK_PREFIX macros used everywhere in the source tree.
14 *

--- 162 unchanged lines hidden (view full) ---

177 * Intel's errata. text_poke_smp() takes care that errata, but still
178 * doesn't support NMI/MCE handler code modifying.
179 * On the local CPU you need to be protected again NMI or MCE handlers seeing an
180 * inconsistent instruction while you patch.
181 */
182extern void *text_poke(void *addr, const void *opcode, size_t len);
183extern void *text_poke_smp(void *addr, const void *opcode, size_t len);
184
8#include <asm/asm.h>
9
10/*
11 * Alternative inline assembly for SMP.
12 *
13 * The LOCK_PREFIX macro defined here replaces the LOCK and
14 * LOCK_PREFIX macros used everywhere in the source tree.
15 *

--- 162 unchanged lines hidden (view full) ---

178 * Intel's errata. text_poke_smp() takes care that errata, but still
179 * doesn't support NMI/MCE handler code modifying.
180 * On the local CPU you need to be protected again NMI or MCE handlers seeing an
181 * inconsistent instruction while you patch.
182 */
183extern void *text_poke(void *addr, const void *opcode, size_t len);
184extern void *text_poke_smp(void *addr, const void *opcode, size_t len);
185
185#if defined(CONFIG_DYNAMIC_FTRACE)
186#if defined(CONFIG_DYNAMIC_FTRACE) || defined(HAVE_JUMP_LABEL)
186#define IDEAL_NOP_SIZE_5 5
187extern unsigned char ideal_nop5[IDEAL_NOP_SIZE_5];
188extern void arch_init_ideal_nop5(void);
189#else
190static inline void arch_init_ideal_nop5(void) {}
191#endif
192
193#endif /* _ASM_X86_ALTERNATIVE_H */
187#define IDEAL_NOP_SIZE_5 5
188extern unsigned char ideal_nop5[IDEAL_NOP_SIZE_5];
189extern void arch_init_ideal_nop5(void);
190#else
191static inline void arch_init_ideal_nop5(void) {}
192#endif
193
194#endif /* _ASM_X86_ALTERNATIVE_H */