diff options
author | Sebastian Ott <sebott@linux.vnet.ibm.com> | 2010-10-25 10:10:28 -0400 |
---|---|---|
committer | Martin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com> | 2010-10-25 10:10:18 -0400 |
commit | 34aec07c170b972a29c954b37047184bd0f9f294 (patch) | |
tree | 3fad31043f548eac6321814b3c5f55b0bb3c0a0e /drivers/s390/cio/css.c | |
parent | b730f3a933958362ee1080c257f2cc158149310a (diff) |
[S390] chsc: initialization fixes
This patch fixes:
* kfree vs. free_page usage
* structure definition for determine_css_characteristics
* naming convention for the chsc init function
* deregistration of crw handlers in the cleanup path
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio/css.c')
-rw-r--r-- | drivers/s390/cio/css.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c index 064d3003ed20..fa1ad3aab66f 100644 --- a/drivers/s390/cio/css.c +++ b/drivers/s390/cio/css.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * driver for channel subsystem | 2 | * driver for channel subsystem |
3 | * | 3 | * |
4 | * Copyright IBM Corp. 2002, 2009 | 4 | * Copyright IBM Corp. 2002, 2010 |
5 | * | 5 | * |
6 | * Author(s): Arnd Bergmann (arndb@de.ibm.com) | 6 | * Author(s): Arnd Bergmann (arndb@de.ibm.com) |
7 | * Cornelia Huck (cornelia.huck@de.ibm.com) | 7 | * Cornelia Huck (cornelia.huck@de.ibm.com) |
@@ -863,14 +863,14 @@ static int __init css_bus_init(void) | |||
863 | { | 863 | { |
864 | int ret, i; | 864 | int ret, i; |
865 | 865 | ||
866 | ret = chsc_init(); | ||
867 | if (ret) | ||
868 | return ret; | ||
869 | |||
866 | ret = chsc_determine_css_characteristics(); | 870 | ret = chsc_determine_css_characteristics(); |
867 | if (ret == -ENOMEM) | 871 | if (ret == -ENOMEM) |
868 | goto out; | 872 | goto out; |
869 | 873 | ||
870 | ret = chsc_alloc_sei_area(); | ||
871 | if (ret) | ||
872 | goto out; | ||
873 | |||
874 | /* Try to enable MSS. */ | 874 | /* Try to enable MSS. */ |
875 | ret = chsc_enable_facility(CHSC_SDA_OC_MSS); | 875 | ret = chsc_enable_facility(CHSC_SDA_OC_MSS); |
876 | if (ret) | 876 | if (ret) |
@@ -956,9 +956,9 @@ out_unregister: | |||
956 | } | 956 | } |
957 | bus_unregister(&css_bus_type); | 957 | bus_unregister(&css_bus_type); |
958 | out: | 958 | out: |
959 | crw_unregister_handler(CRW_RSC_CSS); | 959 | crw_unregister_handler(CRW_RSC_SCH); |
960 | chsc_free_sei_area(); | ||
961 | idset_free(slow_subchannel_set); | 960 | idset_free(slow_subchannel_set); |
961 | chsc_init_cleanup(); | ||
962 | pr_alert("The CSS device driver initialization failed with " | 962 | pr_alert("The CSS device driver initialization failed with " |
963 | "errno=%d\n", ret); | 963 | "errno=%d\n", ret); |
964 | return ret; | 964 | return ret; |
@@ -978,9 +978,9 @@ static void __init css_bus_cleanup(void) | |||
978 | device_unregister(&css->device); | 978 | device_unregister(&css->device); |
979 | } | 979 | } |
980 | bus_unregister(&css_bus_type); | 980 | bus_unregister(&css_bus_type); |
981 | crw_unregister_handler(CRW_RSC_CSS); | 981 | crw_unregister_handler(CRW_RSC_SCH); |
982 | chsc_free_sei_area(); | ||
983 | idset_free(slow_subchannel_set); | 982 | idset_free(slow_subchannel_set); |
983 | chsc_init_cleanup(); | ||
984 | isc_unregister(IO_SCH_ISC); | 984 | isc_unregister(IO_SCH_ISC); |
985 | } | 985 | } |
986 | 986 | ||