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 */ |