Commit 5beab99100335936f4d845f9ae2f0e25796f2584
1 parent
89c9b66b10
Exists in
master
and in
38 other branches
[S390] iucv cr0 enablement bit
Do not set the cr0 enablement bit for iucv by default in head[31|64].S, move the enablement to iucv_init in the iucv base layer. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Showing 3 changed files with 7 additions and 4 deletions Side-by-side Diff
arch/s390/kernel/head31.S
... | ... | @@ -45,7 +45,7 @@ |
45 | 45 | # virtual and never return ... |
46 | 46 | .align 8 |
47 | 47 | .Lentry:.long 0x00080000,0x80000000 + _stext |
48 | -.Lctl: .long 0x04b50002 # cr0: various things | |
48 | +.Lctl: .long 0x04b50000 # cr0: various things | |
49 | 49 | .long 0 # cr1: primary space segment table |
50 | 50 | .long .Lduct # cr2: dispatchable unit control table |
51 | 51 | .long 0 # cr3: instruction authorization |
arch/s390/kernel/head64.S
... | ... | @@ -46,7 +46,7 @@ |
46 | 46 | .align 16 |
47 | 47 | .LPG1: |
48 | 48 | .Lentry:.quad 0x0000000180000000,_stext |
49 | -.Lctl: .quad 0x04350002 # cr0: various things | |
49 | +.Lctl: .quad 0x04350000 # cr0: various things | |
50 | 50 | .quad 0 # cr1: primary space segment table |
51 | 51 | .quad .Lduct # cr2: dispatchable unit control table |
52 | 52 | .quad 0 # cr3: instruction authorization |
net/iucv/iucv.c
... | ... | @@ -1988,12 +1988,13 @@ |
1988 | 1988 | rc = -EPROTONOSUPPORT; |
1989 | 1989 | goto out; |
1990 | 1990 | } |
1991 | + ctl_set_bit(0, 1); | |
1991 | 1992 | rc = iucv_query_maxconn(); |
1992 | 1993 | if (rc) |
1993 | - goto out; | |
1994 | + goto out_ctl; | |
1994 | 1995 | rc = register_external_interrupt(0x4000, iucv_external_interrupt); |
1995 | 1996 | if (rc) |
1996 | - goto out; | |
1997 | + goto out_ctl; | |
1997 | 1998 | iucv_root = root_device_register("iucv"); |
1998 | 1999 | if (IS_ERR(iucv_root)) { |
1999 | 2000 | rc = PTR_ERR(iucv_root); |
... | ... | @@ -2055,6 +2056,8 @@ |
2055 | 2056 | root_device_unregister(iucv_root); |
2056 | 2057 | out_int: |
2057 | 2058 | unregister_external_interrupt(0x4000, iucv_external_interrupt); |
2059 | +out_ctl: | |
2060 | + ctl_clear_bit(0, 1); | |
2058 | 2061 | out: |
2059 | 2062 | return rc; |
2060 | 2063 | } |