s390/kprobes: add exrl to list of prohibited opcodes
"execute relative long" may have all sorts of side effects dependend on the instructions it executes. Therefore prohibit setting a kprobe on exrl just like we do for the regular execute instruction. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
Родитель
8f0ba630af
Коммит
7423435511
|
@ -67,6 +67,11 @@ static int __kprobes is_prohibited_opcode(kprobe_opcode_t *insn)
|
||||||
case 0xac: /* stnsm */
|
case 0xac: /* stnsm */
|
||||||
case 0xad: /* stosm */
|
case 0xad: /* stosm */
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
case 0xc6:
|
||||||
|
switch (insn[0] & 0x0f) {
|
||||||
|
case 0x00: /* exrl */
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
switch (insn[0]) {
|
switch (insn[0]) {
|
||||||
case 0x0101: /* pr */
|
case 0x0101: /* pr */
|
||||||
|
@ -180,7 +185,6 @@ static int __kprobes is_insn_relative_long(kprobe_opcode_t *insn)
|
||||||
break;
|
break;
|
||||||
case 0xc6:
|
case 0xc6:
|
||||||
switch (insn[0] & 0x0f) {
|
switch (insn[0] & 0x0f) {
|
||||||
case 0x00: /* exrl */
|
|
||||||
case 0x02: /* pfdrl */
|
case 0x02: /* pfdrl */
|
||||||
case 0x04: /* cghrl */
|
case 0x04: /* cghrl */
|
||||||
case 0x05: /* chrl */
|
case 0x05: /* chrl */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче