]> git.openfabrics.org - ~shefty/rdma-dev.git/commitdiff
[S390] kprobes: forbid probing of stnsm/stosm/epsw
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Wed, 26 May 2010 21:26:20 +0000 (23:26 +0200)
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>
Wed, 26 May 2010 21:26:29 +0000 (23:26 +0200)
The probed instructions will be executed in a single stepped and irq
disabled context. Therefore the results of stnsm, stosm and epsw would
be wrong if probed.
So let's just disallow probing of these functions. If really needed a
fixup could be written for each of them, but I doubt it's worth it.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/kprobes.c

index 3d34eef5a2c3a03987479a28df28e4a415e3c2f0..2a3d2bf6f083070678f4c777b4cea0db00b9ff74 100644 (file)
@@ -63,6 +63,8 @@ int __kprobes is_prohibited_opcode(kprobe_opcode_t *instruction)
        case 0x0b:      /* bsm   */
        case 0x83:      /* diag  */
        case 0x44:      /* ex    */
+       case 0xac:      /* stnsm */
+       case 0xad:      /* stosm */
                return -EINVAL;
        }
        switch (*(__u16 *) instruction) {
@@ -72,6 +74,7 @@ int __kprobes is_prohibited_opcode(kprobe_opcode_t *instruction)
        case 0xb258:    /* bsg   */
        case 0xb218:    /* pc    */
        case 0xb228:    /* pt    */
+       case 0xb98d:    /* epsw  */
                return -EINVAL;
        }
        return 0;