alt_instr
typedef void (*alternative_cb_t)(struct alt_instr *alt,
void alt_cb_patch_nops(struct alt_instr *alt, __le32 *origptr,
void kvm_patch_vector_branch(struct alt_instr *alt,
void kvm_get_kimage_voffset(struct alt_instr *alt,
void kvm_compute_final_ctr_el0(struct alt_instr *alt,
void kvm_update_va_mask(struct alt_instr *alt,
void spectre_v4_patch_fw_mitigation_enable(struct alt_instr *alt, __le32 *origptr,
void smccc_patch_fw_mitigation_conduit(struct alt_instr *alt, __le32 *origptr,
void spectre_bhb_patch_loop_mitigation_enable(struct alt_instr *alt, __le32 *origptr,
void spectre_bhb_patch_fw_mitigation_enabled(struct alt_instr *alt, __le32 *origptr,
void spectre_bhb_patch_loop_iter(struct alt_instr *alt,
void spectre_bhb_patch_wa3(struct alt_instr *alt,
void spectre_bhb_patch_clearbhb(struct alt_instr *alt,
static noinstr void patch_alternative(struct alt_instr *alt,
struct alt_instr *alt;
.begin = (struct alt_instr *)__alt_instructions,
.end = (struct alt_instr *)__alt_instructions_end,
noinstr void alt_cb_patch_nops(struct alt_instr *alt, __le32 *origptr,
struct alt_instr *begin;
struct alt_instr *end;
static __always_inline bool branch_insn_requires_update(struct alt_instr *alt, unsigned long pc)
static __always_inline u32 get_alt_insn(struct alt_instr *alt, __le32 *insnptr, __le32 *altinsnptr)
void __init kasan_hw_tags_enable(struct alt_instr *alt, __le32 *origptr,
void __init kasan_hw_tags_enable(struct alt_instr *alt, __le32 *origptr,
void noinstr spectre_bhb_patch_loop_mitigation_enable(struct alt_instr *alt,
void noinstr spectre_bhb_patch_fw_mitigation_enabled(struct alt_instr *alt,
void noinstr spectre_bhb_patch_loop_iter(struct alt_instr *alt,
void noinstr spectre_bhb_patch_wa3(struct alt_instr *alt,
void __init spectre_bhb_patch_clearbhb(struct alt_instr *alt,
void __init spectre_v4_patch_fw_mitigation_enable(struct alt_instr *alt,
void __init smccc_patch_fw_mitigation_conduit(struct alt_instr *alt,
void __init kvm_update_va_mask(struct alt_instr *alt,
void kvm_patch_vector_branch(struct alt_instr *alt,
void kvm_get_kimage_voffset(struct alt_instr *alt,
void kvm_compute_final_ctr_el0(struct alt_instr *alt,
void noinstr kvm_compute_ich_hcr_trap_bits(struct alt_instr *alt,
void kvm_compute_ich_hcr_trap_bits(struct alt_instr *alt,
extern struct alt_instr __alt_instructions[], __alt_instructions_end[];
extern void apply_alternatives(struct alt_instr *start, struct alt_instr *end);
void __init_or_module apply_alternatives(struct alt_instr *start, struct alt_instr *end)
struct alt_instr *a;
void apply_alternatives(struct alt_instr *start, struct alt_instr *end,
apply_alternatives((struct alt_instr *) &__alt_instructions,
(struct alt_instr *) &__alt_instructions_end, NULL);
void __init_or_module apply_alternatives(struct alt_instr *start,
struct alt_instr *end, const char *module_name)
struct alt_instr *entry;
__apply_alternatives((struct alt_instr *)_vmlinux_info.alt_instructions,
(struct alt_instr *)_vmlinux_info.alt_instructions_end,
extern struct alt_instr __alt_instructions[], __alt_instructions_end[];
void __apply_alternatives(struct alt_instr *start, struct alt_instr *end, unsigned int ctx);
static inline void apply_alternatives(struct alt_instr *start, struct alt_instr *end)
void __apply_alternatives(struct alt_instr *start, struct alt_instr *end, unsigned int ctx)
struct alt_instr *a;
struct alt_instr *start, *end;
DEFINE(ALT_INSTR_SIZE, sizeof(struct alt_instr));
void apply_alternatives(struct alt_instr *start, struct alt_instr *end)
apply_alternatives((struct alt_instr *)(image->data + image->alt),
(struct alt_instr *)(image->data + image->alt +
extern struct alt_instr __alt_instructions[], __alt_instructions_end[];
extern void apply_alternatives(struct alt_instr *start, struct alt_instr *end);
static unsigned int alt_replace_call(u8 *instr, u8 *insn_buff, struct alt_instr *a)
static inline u8 * instr_va(struct alt_instr *i)
struct alt_instr *alt;
static struct alt_instr * __init_or_module analyze_patch_site(struct patch_site *ps,
struct alt_instr *start,
struct alt_instr *end)
struct alt_instr *alt = start;
struct alt_instr *alt = ps->alt;
void __init_or_module noinline apply_alternatives(struct alt_instr *start,
struct alt_instr *end)
struct alt_instr *a;
DEFINE(ALT_INSTR_SIZE, sizeof(struct alt_instr));