• Hendrik Brueckner's avatar
    [S390] hvc_iucv: do not call iucv_unregister if iucv_register failed · c77f7cf7
    Hendrik Brueckner authored
    If the iucv_register() functions fails, the error recovery calls
    iucv_unregister() which might cause the following stack backtrace:
    
    	(<0000000000100ab2> show_trace+0xee/0x144)
    	<00000000004f1842> panic+0xb6/0x248
    	<00000000001010a6> die+0x15a/0x16c
    	<000000000011d936> do_no_context+0xa6/0xe4
    	<00000000004f84dc> do_protection_exception+0x2e8/0x3a4
    	<0000000000113afc> pgm_exit+0x0/0x14
    	<00000000004e786e> iucv_unregister+0x5a/0x17c
    	(<00000000004e785e> iucv_unregister+0x4a/0x17c)
    	<000000000076de74> hvc_iucv_init+0x228/0x5dc
    	<00000000001000c2> do_one_initcall+0x3e/0x19c
    	<00000000007524a2> kernel_init+0x28e/0x404
    	<0000000000105dd6> kernel_thread_starter+0x6/0xc
    	<0000000000105dd0> kernel_thread_starter+0x0/0xc
    
    Remove the call to iucv_unregister() and remove the goto label
    as unregistering is the last step in the hvc_iucv initialization.
    If iucv_register() fails, simply clean up hvc terminals and free
    resources.
    Signed-off-by: default avatarHendrik Brueckner <brueckner@linux.vnet.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    c77f7cf7
hvc_iucv.c 37.4 KB