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/chsc.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/chsc.c')
-rw-r--r-- | drivers/s390/cio/chsc.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/s390/cio/chsc.c b/drivers/s390/cio/chsc.c index 4cbb1a6ca33c..f26cc3e16181 100644 --- a/drivers/s390/cio/chsc.c +++ b/drivers/s390/cio/chsc.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * drivers/s390/cio/chsc.c | 2 | * drivers/s390/cio/chsc.c |
3 | * S/390 common I/O routines -- channel subsystem call | 3 | * S/390 common I/O routines -- channel subsystem call |
4 | * | 4 | * |
5 | * Copyright IBM Corp. 1999,2008 | 5 | * Copyright IBM Corp. 1999,2010 |
6 | * Author(s): Ingo Adlung (adlung@de.ibm.com) | 6 | * Author(s): Ingo Adlung (adlung@de.ibm.com) |
7 | * Cornelia Huck (cornelia.huck@de.ibm.com) | 7 | * Cornelia Huck (cornelia.huck@de.ibm.com) |
8 | * Arnd Bergmann (arndb@de.ibm.com) | 8 | * Arnd Bergmann (arndb@de.ibm.com) |
@@ -813,7 +813,7 @@ out: | |||
813 | return ret; | 813 | return ret; |
814 | } | 814 | } |
815 | 815 | ||
816 | int __init chsc_alloc_sei_area(void) | 816 | int __init chsc_init(void) |
817 | { | 817 | { |
818 | int ret; | 818 | int ret; |
819 | 819 | ||
@@ -825,14 +825,14 @@ int __init chsc_alloc_sei_area(void) | |||
825 | } | 825 | } |
826 | ret = crw_register_handler(CRW_RSC_CSS, chsc_process_crw); | 826 | ret = crw_register_handler(CRW_RSC_CSS, chsc_process_crw); |
827 | if (ret) | 827 | if (ret) |
828 | kfree(sei_page); | 828 | free_page((unsigned long)sei_page); |
829 | return ret; | 829 | return ret; |
830 | } | 830 | } |
831 | 831 | ||
832 | void __init chsc_free_sei_area(void) | 832 | void __init chsc_init_cleanup(void) |
833 | { | 833 | { |
834 | crw_unregister_handler(CRW_RSC_CSS); | 834 | crw_unregister_handler(CRW_RSC_CSS); |
835 | kfree(sei_page); | 835 | free_page((unsigned long)sei_page); |
836 | } | 836 | } |
837 | 837 | ||
838 | int chsc_enable_facility(int operation_code) | 838 | int chsc_enable_facility(int operation_code) |
@@ -895,7 +895,7 @@ chsc_determine_css_characteristics(void) | |||
895 | struct chsc_header response; | 895 | struct chsc_header response; |
896 | u32 reserved4; | 896 | u32 reserved4; |
897 | u32 general_char[510]; | 897 | u32 general_char[510]; |
898 | u32 chsc_char[518]; | 898 | u32 chsc_char[508]; |
899 | } __attribute__ ((packed)) *scsc_area; | 899 | } __attribute__ ((packed)) *scsc_area; |
900 | 900 | ||
901 | scsc_area = (void *)get_zeroed_page(GFP_KERNEL | GFP_DMA); | 901 | scsc_area = (void *)get_zeroed_page(GFP_KERNEL | GFP_DMA); |