s390/dis: Fix printing of the register numbers
authorChristian Borntraeger <borntraeger@de.ibm.com>
Wed, 18 Nov 2015 16:00:10 +0000 (17:00 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 27 Nov 2015 08:24:16 +0000 (09:24 +0100)
Since commit b006f19b055f ("lib/vsprintf.c: handle invalid format
specifiers more robustly") I get errors like
[...]
Krnl Code: 00000000004e2410c00400000000        brcl 0,4e2410
Please remove unsupported %r in format string
[    8.179483] ------------[ cut here ]------------
[    8.179484] WARNING: at lib/vsprintf.c:1781

Turns out that our disassembler relied on %r not being used as format
string. Let's do the proper escaping of our decode buffers.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/dis.c

index 8140d10c67850902d9f60c967000dff7bdcd26a7..8cb9bfdd3ea8ad38e0eb6eda84d55cb7fc22bccb 100644 (file)
@@ -2015,7 +2015,7 @@ void show_code(struct pt_regs *regs)
                        *ptr++ = '\t';
                ptr += print_insn(ptr, code + start, addr);
                start += opsize;
-               printk(buffer);
+               printk("%s", buffer);
                ptr = buffer;
                ptr += sprintf(ptr, "\n          ");
                hops++;
@@ -2042,7 +2042,7 @@ void print_fn_code(unsigned char *code, unsigned long len)
                ptr += print_insn(ptr, code, (unsigned long) code);
                *ptr++ = '\n';
                *ptr++ = 0;
-               printk(buffer);
+               printk("%s", buffer);
                code += opsize;
                len -= opsize;
        }