Loading arch/s390/include/asm/dis.h +6 −0 Original line number Original line Diff line number Diff line Loading @@ -42,5 +42,11 @@ static inline int insn_length(unsigned char code) void show_code(struct pt_regs *regs); void show_code(struct pt_regs *regs); void print_fn_code(unsigned char *code, unsigned long len); void print_fn_code(unsigned char *code, unsigned long len); int insn_to_mnemonic(unsigned char *instruction, char *buf, unsigned int len); int insn_to_mnemonic(unsigned char *instruction, char *buf, unsigned int len); struct s390_insn *find_insn(unsigned char *code); static inline int is_known_insn(unsigned char *code) { return !!find_insn(code); } #endif /* __ASM_S390_DIS_H__ */ #endif /* __ASM_S390_DIS_H__ */ arch/s390/kernel/dis.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -1586,7 +1586,7 @@ static unsigned int extract_operand(unsigned char *code, return val; return val; } } static struct s390_insn *find_insn(unsigned char *code) struct s390_insn *find_insn(unsigned char *code) { { unsigned char opfrag = code[1]; unsigned char opfrag = code[1]; unsigned char opmask; unsigned char opmask; Loading arch/s390/kernel/kprobes.c +2 −0 Original line number Original line Diff line number Diff line Loading @@ -60,6 +60,8 @@ struct kprobe_insn_cache kprobe_dmainsn_slots = { static int __kprobes is_prohibited_opcode(kprobe_opcode_t *insn) static int __kprobes is_prohibited_opcode(kprobe_opcode_t *insn) { { if (!is_known_insn((unsigned char *)insn)) return -EINVAL; switch (insn[0] >> 8) { switch (insn[0] >> 8) { case 0x0c: /* bassm */ case 0x0c: /* bassm */ case 0x0b: /* bsm */ case 0x0b: /* bsm */ Loading Loading
arch/s390/include/asm/dis.h +6 −0 Original line number Original line Diff line number Diff line Loading @@ -42,5 +42,11 @@ static inline int insn_length(unsigned char code) void show_code(struct pt_regs *regs); void show_code(struct pt_regs *regs); void print_fn_code(unsigned char *code, unsigned long len); void print_fn_code(unsigned char *code, unsigned long len); int insn_to_mnemonic(unsigned char *instruction, char *buf, unsigned int len); int insn_to_mnemonic(unsigned char *instruction, char *buf, unsigned int len); struct s390_insn *find_insn(unsigned char *code); static inline int is_known_insn(unsigned char *code) { return !!find_insn(code); } #endif /* __ASM_S390_DIS_H__ */ #endif /* __ASM_S390_DIS_H__ */
arch/s390/kernel/dis.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -1586,7 +1586,7 @@ static unsigned int extract_operand(unsigned char *code, return val; return val; } } static struct s390_insn *find_insn(unsigned char *code) struct s390_insn *find_insn(unsigned char *code) { { unsigned char opfrag = code[1]; unsigned char opfrag = code[1]; unsigned char opmask; unsigned char opmask; Loading
arch/s390/kernel/kprobes.c +2 −0 Original line number Original line Diff line number Diff line Loading @@ -60,6 +60,8 @@ struct kprobe_insn_cache kprobe_dmainsn_slots = { static int __kprobes is_prohibited_opcode(kprobe_opcode_t *insn) static int __kprobes is_prohibited_opcode(kprobe_opcode_t *insn) { { if (!is_known_insn((unsigned char *)insn)) return -EINVAL; switch (insn[0] >> 8) { switch (insn[0] >> 8) { case 0x0c: /* bassm */ case 0x0c: /* bassm */ case 0x0b: /* bsm */ case 0x0b: /* bsm */ Loading