• Heiko Carstens's avatar
    s390/irq: fix reading of ext_params2 field from lowcore · 85012e76
    Heiko Carstens authored
    The contents of the ext_params2 field of the lowcore should just be
    copied to the pt_regs structure, not dereferenced.
    
    Fixes crashes / program check loops like this:
    
    Krnl PSW : 0404c00180000000 00000000d6d02b3c (do_ext_irq+0x74/0x170)
               R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:3 CC:0 PM:0 RI:0 EA:3
    Krnl GPRS: 0000000000000000 80000000000b974e 00000000d71abee0 00000000d71abee0
               0000000080030000 000000000000000f 0000000000000000 0000000000000000
               0000000000000001 00000380000bf918 00000000d73ef780 00000380000bf518
               0000000080348000 00000000d6d13350 00000000d6d02b1e 00000380000bf428
    Krnl Code: 00000000d6d02b2e: 58100080            l       %r1,128
               00000000d6d02b32: 5010b0a4            st      %r1,164(%r11)
              #00000000d6d02b36: e31001b80104        lg      %r1,4536
              >00000000d6d02b3c: e31010000004        lg      %r1,0(%r1)
               00000000d6d02b42: e310b0a80024        stg     %r1,168(%r11)
               00000000d6d02b48: c01000242270        larl    %r1,00000000d7187028
               00000000d6d02b4e: d5071000b010        clc     0(8,%r1),16(%r11)
               00000000d6d02b54: a784001b            brc     8,00000000d6d02b8a
    Call Trace:
     [<00000000d6d02b3c>] do_ext_irq+0x74/0x170
     [<00000000d6d0ea5c>] ext_int_handler+0xc4/0xf4
     [<00000000d621d266>] die+0x106/0x188
     [<00000000d62305b8>] do_no_context+0xc8/0x100
     [<00000000d6d02790>] __do_pgm_check+0xe0/0x1f0
     [<00000000d6d0e950>] pgm_check_handler+0x118/0x160
     [<00000000d6d02b3c>] do_ext_irq+0x74/0x170
     [<00000000d6d0ea5c>] ext_int_handler+0xc4/0xf4
     [<00000000d621d266>] die+0x106/0x188
     [<00000000d62305b8>] do_no_context+0xc8/0x100
     [<00000000d6d02790>] __do_pgm_check+0xe0/0x1f0
     [<00000000d6d0e950>] pgm_check_handler+0x118/0x160
     [<00000000d6d02b3c>] do_ext_irq+0x74/0x170
     [<00000000d6d0ea5c>] ext_int_handler+0xc4/0xf4
     [<0000000000000000>] 0x0
     [<00000000d6d0e57a>] default_idle_call+0x42/0x110
     [<00000000d629856e>] do_idle+0xce/0x160
     [<00000000d62987be>] cpu_startup_entry+0x36/0x40
     [<00000000d621f2f2>] smp_start_secondary+0x82/0x88
    
    Cc: Sven Schnelle <svens@linux.ibm.com>
    Cc: Vasily Gorbik <gor@linux.ibm.com>
    Fixes: 56e62a73 ("s390: convert to generic entry")
    Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
    85012e76
irq.c 11.4 KB