Commit 56e57a84 authored by Hendrik Brueckner's avatar Hendrik Brueckner Committed by Martin Schwidefsky

s390/sclp_early: Replace early_read_info_sccb with sccb_early

Replace early_read_info_sccb and use sccb_early instead.
Also saves some memory.
Signed-off-by: default avatarHendrik Brueckner <brueckner@linux.vnet.ibm.com>
Reviewed-by: default avatarMichael Holzheu <holzheu@linux.vnet.ibm.com>
Reviewed-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 333cce91
...@@ -35,8 +35,7 @@ struct read_info_sccb { ...@@ -35,8 +35,7 @@ struct read_info_sccb {
u8 _reserved5[4096 - 112]; /* 112-4095 */ u8 _reserved5[4096 - 112]; /* 112-4095 */
} __packed __aligned(PAGE_SIZE); } __packed __aligned(PAGE_SIZE);
static __initdata struct read_info_sccb early_read_info_sccb; static char sccb_early[PAGE_SIZE] __aligned(PAGE_SIZE) __initdata;
static __initdata char sccb_early[PAGE_SIZE] __aligned(PAGE_SIZE);
static unsigned long sclp_hsa_size; static unsigned long sclp_hsa_size;
static struct sclp_ipl_info sclp_ipl_info; static struct sclp_ipl_info sclp_ipl_info;
...@@ -63,14 +62,12 @@ static int __init sclp_cmd_sync_early(sclp_cmdw_t cmd, void *sccb) ...@@ -63,14 +62,12 @@ static int __init sclp_cmd_sync_early(sclp_cmdw_t cmd, void *sccb)
return rc; 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; int rc, i;
struct read_info_sccb *sccb;
sclp_cmdw_t commands[] = {SCLP_CMDW_READ_SCP_INFO_FORCED, sclp_cmdw_t commands[] = {SCLP_CMDW_READ_SCP_INFO_FORCED,
SCLP_CMDW_READ_SCP_INFO}; SCLP_CMDW_READ_SCP_INFO};
sccb = &early_read_info_sccb;
for (i = 0; i < ARRAY_SIZE(commands); i++) { for (i = 0; i < ARRAY_SIZE(commands); i++) {
do { do {
memset(sccb, 0, sizeof(*sccb)); memset(sccb, 0, sizeof(*sccb));
...@@ -92,12 +89,11 @@ static int __init sclp_read_info_early(void) ...@@ -92,12 +89,11 @@ static int __init sclp_read_info_early(void)
static void __init sclp_facilities_detect(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; return;
sccb = &early_read_info_sccb;
sclp_facilities = sccb->facilities; sclp_facilities = sccb->facilities;
sclp_fac84 = sccb->fac84; sclp_fac84 = sccb->fac84;
if (sccb->fac85 & 0x02) if (sccb->fac85 & 0x02)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment