s390/sclp_early: Replace early_read_info_sccb with sccb_early
authorHendrik Brueckner <brueckner@linux.vnet.ibm.com>
Thu, 5 Dec 2013 18:03:50 +0000 (19:03 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 16 Dec 2013 13:37:48 +0000 (14:37 +0100)
Replace early_read_info_sccb and use sccb_early instead.
Also saves some memory.

Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Reviewed-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/char/sclp_early.c

index e4e5b32c52f2b99884881a363f7da9d02a2ce150..dc4ed04cbf50ff86ff688f71afdd6503826dc8b5 100644 (file)
@@ -35,8 +35,7 @@ struct read_info_sccb {
        u8      _reserved5[4096 - 112]; /* 112-4095 */
 } __packed __aligned(PAGE_SIZE);
 
-static __initdata struct read_info_sccb early_read_info_sccb;
-static __initdata char sccb_early[PAGE_SIZE] __aligned(PAGE_SIZE);
+static char sccb_early[PAGE_SIZE] __aligned(PAGE_SIZE) __initdata;
 static unsigned long sclp_hsa_size;
 static struct sclp_ipl_info sclp_ipl_info;
 
@@ -63,14 +62,12 @@ out:
        return rc;
 }
 
-static int __init sclp_read_info_early(void)
+static int __init sclp_read_info_early(struct read_info_sccb *sccb)
 {
        int rc, i;
-       struct read_info_sccb *sccb;
        sclp_cmdw_t commands[] = {SCLP_CMDW_READ_SCP_INFO_FORCED,
                                  SCLP_CMDW_READ_SCP_INFO};
 
-       sccb = &early_read_info_sccb;
        for (i = 0; i < ARRAY_SIZE(commands); i++) {
                do {
                        memset(sccb, 0, sizeof(*sccb));
@@ -92,12 +89,11 @@ static int __init sclp_read_info_early(void)
 
 static void __init sclp_facilities_detect(void)
 {
-       struct read_info_sccb *sccb;
+       struct read_info_sccb *sccb = (void *) &sccb_early;
 
-       if (sclp_read_info_early())
+       if (sclp_read_info_early(sccb))
                return;
 
-       sccb = &early_read_info_sccb;
        sclp_facilities = sccb->facilities;
        sclp_fac84 = sccb->fac84;
        if (sccb->fac85 & 0x02)