Commit d25d23e1 authored by Sumanth Korikkar's avatar Sumanth Korikkar Committed by Heiko Carstens

s390/sclp: avoid copy of sclp_info_sccb

For extended sccb support, sccb size could be up to 3 pages. Hence avoid
copy of sclp_info_sccb.
Signed-off-by: default avatarSumanth Korikkar <sumanthk@linux.ibm.com>
Reviewed-by: default avatarVasily Gorbik <gor@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
parent 08ab919d
...@@ -328,7 +328,7 @@ unsigned int sclp_early_con_check_vt220(struct init_sccb *sccb); ...@@ -328,7 +328,7 @@ unsigned int sclp_early_con_check_vt220(struct init_sccb *sccb);
int sclp_early_set_event_mask(struct init_sccb *sccb, int sclp_early_set_event_mask(struct init_sccb *sccb,
sccb_mask_t receive_mask, sccb_mask_t receive_mask,
sccb_mask_t send_mask); sccb_mask_t send_mask);
int sclp_early_get_info(struct read_info_sccb *info); struct read_info_sccb * __init sclp_early_get_info(void);
/* useful inlines */ /* useful inlines */
......
...@@ -22,12 +22,14 @@ static struct sclp_ipl_info sclp_ipl_info; ...@@ -22,12 +22,14 @@ static struct sclp_ipl_info sclp_ipl_info;
struct sclp_info sclp; struct sclp_info sclp;
EXPORT_SYMBOL(sclp); EXPORT_SYMBOL(sclp);
static void __init sclp_early_facilities_detect(struct read_info_sccb *sccb) static void __init sclp_early_facilities_detect(void)
{ {
struct sclp_core_entry *cpue; struct sclp_core_entry *cpue;
struct read_info_sccb *sccb;
u16 boot_cpu_address, cpu; u16 boot_cpu_address, cpu;
if (sclp_early_get_info(sccb)) sccb = sclp_early_get_info();
if (!sccb)
return; return;
sclp.facilities = sccb->facilities; sclp.facilities = sccb->facilities;
...@@ -155,7 +157,7 @@ void __init sclp_early_detect(void) ...@@ -155,7 +157,7 @@ void __init sclp_early_detect(void)
{ {
void *sccb = sclp_early_sccb; void *sccb = sclp_early_sccb;
sclp_early_facilities_detect(sccb); sclp_early_facilities_detect();
/* /*
* Turn off SCLP event notifications. Also save remote masks in the * Turn off SCLP event notifications. Also save remote masks in the
......
...@@ -258,13 +258,12 @@ int __init sclp_early_read_info(void) ...@@ -258,13 +258,12 @@ int __init sclp_early_read_info(void)
return -EIO; return -EIO;
} }
int __init sclp_early_get_info(struct read_info_sccb *info) struct read_info_sccb * __init sclp_early_get_info(void)
{ {
if (!sclp_info_sccb_valid) if (!sclp_info_sccb_valid)
return -EIO; return NULL;
*info = sclp_info_sccb; return &sclp_info_sccb;
return 0;
} }
int __init sclp_early_get_memsize(unsigned long *mem) int __init sclp_early_get_memsize(unsigned long *mem)
......
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