diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2011-07-24 04:48:28 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2011-07-24 04:48:22 -0400 |
commit | 5beab99100335936f4d845f9ae2f0e25796f2584 (patch) | |
tree | 001c61d9a2250caf3081aea8ab19590fb8fe6f1b | |
parent | 89c9b66b104549a8698e412bf6f4140c1d0786fb (diff) |
[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>
-rw-r--r-- | arch/s390/kernel/head31.S | 2 | ||||
-rw-r--r-- | arch/s390/kernel/head64.S | 2 | ||||
-rw-r--r-- | net/iucv/iucv.c | 7 |
3 files changed, 7 insertions, 4 deletions
diff --git a/arch/s390/kernel/head31.S b/arch/s390/kernel/head31.S index dd0d1e272be9..f21954b44dc1 100644 --- a/arch/s390/kernel/head31.S +++ b/arch/s390/kernel/head31.S | |||
@@ -45,7 +45,7 @@ ENTRY(startup_continue) | |||
45 | # virtual and never return ... | 45 | # virtual and never return ... |
46 | .align 8 | 46 | .align 8 |
47 | .Lentry:.long 0x00080000,0x80000000 + _stext | 47 | .Lentry:.long 0x00080000,0x80000000 + _stext |
48 | .Lctl: .long 0x04b50002 # cr0: various things | 48 | .Lctl: .long 0x04b50000 # cr0: various things |
49 | .long 0 # cr1: primary space segment table | 49 | .long 0 # cr1: primary space segment table |
50 | .long .Lduct # cr2: dispatchable unit control table | 50 | .long .Lduct # cr2: dispatchable unit control table |
51 | .long 0 # cr3: instruction authorization | 51 | .long 0 # cr3: instruction authorization |
diff --git a/arch/s390/kernel/head64.S b/arch/s390/kernel/head64.S index 188602898c17..b6d30135e2ec 100644 --- a/arch/s390/kernel/head64.S +++ b/arch/s390/kernel/head64.S | |||
@@ -46,7 +46,7 @@ ENTRY(startup_continue) | |||
46 | .align 16 | 46 | .align 16 |
47 | .LPG1: | 47 | .LPG1: |
48 | .Lentry:.quad 0x0000000180000000,_stext | 48 | .Lentry:.quad 0x0000000180000000,_stext |
49 | .Lctl: .quad 0x04350002 # cr0: various things | 49 | .Lctl: .quad 0x04350000 # cr0: various things |
50 | .quad 0 # cr1: primary space segment table | 50 | .quad 0 # cr1: primary space segment table |
51 | .quad .Lduct # cr2: dispatchable unit control table | 51 | .quad .Lduct # cr2: dispatchable unit control table |
52 | .quad 0 # cr3: instruction authorization | 52 | .quad 0 # cr3: instruction authorization |
diff --git a/net/iucv/iucv.c b/net/iucv/iucv.c index 7f9124914b13..f2b713847b45 100644 --- a/net/iucv/iucv.c +++ b/net/iucv/iucv.c | |||
@@ -1988,12 +1988,13 @@ static int __init iucv_init(void) | |||
1988 | rc = -EPROTONOSUPPORT; | 1988 | rc = -EPROTONOSUPPORT; |
1989 | goto out; | 1989 | goto out; |
1990 | } | 1990 | } |
1991 | ctl_set_bit(0, 1); | ||
1991 | rc = iucv_query_maxconn(); | 1992 | rc = iucv_query_maxconn(); |
1992 | if (rc) | 1993 | if (rc) |
1993 | goto out; | 1994 | goto out_ctl; |
1994 | rc = register_external_interrupt(0x4000, iucv_external_interrupt); | 1995 | rc = register_external_interrupt(0x4000, iucv_external_interrupt); |
1995 | if (rc) | 1996 | if (rc) |
1996 | goto out; | 1997 | goto out_ctl; |
1997 | iucv_root = root_device_register("iucv"); | 1998 | iucv_root = root_device_register("iucv"); |
1998 | if (IS_ERR(iucv_root)) { | 1999 | if (IS_ERR(iucv_root)) { |
1999 | rc = PTR_ERR(iucv_root); | 2000 | rc = PTR_ERR(iucv_root); |
@@ -2055,6 +2056,8 @@ out_free: | |||
2055 | root_device_unregister(iucv_root); | 2056 | root_device_unregister(iucv_root); |
2056 | out_int: | 2057 | out_int: |
2057 | unregister_external_interrupt(0x4000, iucv_external_interrupt); | 2058 | unregister_external_interrupt(0x4000, iucv_external_interrupt); |
2059 | out_ctl: | ||
2060 | ctl_clear_bit(0, 1); | ||
2058 | out: | 2061 | out: |
2059 | return rc; | 2062 | return rc; |
2060 | } | 2063 | } |