]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
s390/sclp: Consolidate early sclp init calls to sclp_early_detect()
authorMichael Holzheu <holzheu@linux.vnet.ibm.com>
Wed, 13 Nov 2013 09:38:27 +0000 (10:38 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 15 Nov 2013 13:08:41 +0000 (14:08 +0100)
The new function calls the old ones. The sclp_event_mask_early() is removed
and replaced by one invocation of sclp_set_event_mask(0, 0).

Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/include/asm/sclp.h
arch/s390/kernel/early.c
drivers/s390/char/sclp_early.c

index 593069201bb90099da7efd012763b5723f33f3c9..30ef748bc161eb3a7f52084ea763d54fe6ed09fc 100644 (file)
@@ -43,7 +43,6 @@ struct sclp_cpu_info {
 int sclp_get_cpu_info(struct sclp_cpu_info *info);
 int sclp_cpu_configure(u8 cpu);
 int sclp_cpu_deconfigure(u8 cpu);
-void sclp_facilities_detect(void);
 unsigned long long sclp_get_rnmax(void);
 unsigned long long sclp_get_rzm(void);
 int sclp_sdias_blk_count(void);
@@ -57,7 +56,7 @@ bool sclp_has_vt220(void);
 int sclp_pci_configure(u32 fid);
 int sclp_pci_deconfigure(u32 fid);
 int memcpy_hsa(void *dest, unsigned long src, size_t count, int mode);
-void sclp_hsa_size_detect(void);
 unsigned long sclp_get_hsa_size(void);
+void sclp_early_detect(void);
 
 #endif /* _ASM_S390_SCLP_H */
index c0462f45cf1b2fd8e9e5a79851e8fe40969cf6d1..fca20b5fe79e085e4795861edf7f4bb5736c67cb 100644 (file)
@@ -483,8 +483,7 @@ void __init startup_init(void)
        detect_diag44();
        detect_machine_facilities();
        setup_topology();
-       sclp_facilities_detect();
-       sclp_hsa_size_detect();
+       sclp_early_detect();
 #ifdef CONFIG_DYNAMIC_FTRACE
        S390_lowcore.ftrace_func = (unsigned long)ftrace_caller;
 #endif
index cbec45fdcc59241b28b53aed69b57399802a7eac..f7aa080e9b28db1d5b962de7b5380f60ae97cc10 100644 (file)
@@ -93,20 +93,7 @@ static void __init sclp_read_info_early(void)
        }
 }
 
-static void __init sclp_event_mask_early(void)
-{
-       struct init_sccb *sccb = &early_event_mask_sccb;
-       int rc;
-
-       do {
-               memset(sccb, 0, sizeof(*sccb));
-               sccb->header.length = sizeof(*sccb);
-               sccb->mask_length = sizeof(sccb_mask_t);
-               rc = sclp_cmd_sync_early(SCLP_CMDW_WRITE_EVENT_MASK, sccb);
-       } while (rc == -EBUSY);
-}
-
-void __init sclp_facilities_detect(void)
+static void __init sclp_facilities_detect(void)
 {
        struct read_info_sccb *sccb;
 
@@ -122,8 +109,6 @@ void __init sclp_facilities_detect(void)
        sclp_rnmax = sccb->rnmax ? sccb->rnmax : sccb->rnmax2;
        sclp_rzm = sccb->rnsize ? sccb->rnsize : sccb->rnsize2;
        sclp_rzm <<= 20;
-
-       sclp_event_mask_early();
 }
 
 bool __init sclp_has_linemode(void)
@@ -246,7 +231,7 @@ unsigned long sclp_get_hsa_size(void)
        return sclp_hsa_size;
 }
 
-void __init sclp_hsa_size_detect(void)
+static void __init sclp_hsa_size_detect(void)
 {
        long size;
 
@@ -268,6 +253,12 @@ void __init sclp_hsa_size_detect(void)
        if (size < 0)
                return;
 out:
-       sclp_set_event_mask(0, 0);
        sclp_hsa_size = size;
 }
+
+void __init sclp_early_detect(void)
+{
+       sclp_facilities_detect();
+       sclp_hsa_size_detect();
+       sclp_set_event_mask(0, 0);
+}