s390/sclp: unify basic sclp access by exposing "struct sclp"
authorDavid Hildenbrand <dahi@linux.vnet.ibm.com>
Wed, 6 May 2015 11:18:59 +0000 (13:18 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 13 May 2015 07:58:17 +0000 (09:58 +0200)
Let's unify basic access to sclp fields by storing the data in an external
struct in asm/sclp.h.

The values can now directly be accessed by other components, so there is
no need for most accessor functions and external variables anymore.

The mtid, mtid_max and facility part will be cleaned up separately.

Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
14 files changed:
arch/s390/hypfs/hypfs_sprp.c
arch/s390/include/asm/sclp.h
arch/s390/kernel/crash_dump.c
arch/s390/kernel/setup.c
arch/s390/kernel/smp.c
arch/s390/kvm/interrupt.c
arch/s390/kvm/kvm-s390.c
arch/s390/mm/init.c
arch/s390/mm/mem_detect.c
drivers/s390/char/sclp.h
drivers/s390/char/sclp_cmd.c
drivers/s390/char/sclp_early.c
drivers/s390/char/zcore.c
drivers/s390/kvm/kvm_virtio.c

index f043c3c7e73ccdb5706ac68019921d77df8392f0..dd42a26d049d8ab89f660362144a127019b0ab23 100644 (file)
@@ -128,14 +128,14 @@ static struct hypfs_dbfs_file hypfs_sprp_file = {
 
 int hypfs_sprp_init(void)
 {
-       if (!sclp_has_sprp())
+       if (!sclp.has_sprp)
                return 0;
        return hypfs_dbfs_create_file(&hypfs_sprp_file);
 }
 
 void hypfs_sprp_exit(void)
 {
-       if (!sclp_has_sprp())
+       if (!sclp.has_sprp)
                return;
        hypfs_dbfs_remove_file(&hypfs_sprp_file);
 }
index f1096bab5199aef439c33c75395f86e3f38a6e08..74ba690064f5cf950a8427afcb3f0f0774ab60b0 100644 (file)
@@ -46,33 +46,40 @@ struct sclp_cpu_info {
        struct sclp_cpu_entry cpu[MAX_CPU_ADDRESS + 1];
 };
 
+struct sclp_info {
+       unsigned char has_linemode : 1;
+       unsigned char has_vt220 : 1;
+       unsigned char has_siif : 1;
+       unsigned char has_sigpif : 1;
+       unsigned char has_cpu_type : 1;
+       unsigned char has_sprp : 1;
+       unsigned int ibc;
+       unsigned int mtid;
+       unsigned int mtid_cp;
+       unsigned int mtid_prev;
+       unsigned long long rzm;
+       unsigned long long rnmax;
+       unsigned long long hamax;
+       unsigned int max_cpu;
+       unsigned long hsa_size;
+};
+extern struct sclp_info sclp;
+
 int sclp_get_cpu_info(struct sclp_cpu_info *info);
 int sclp_cpu_configure(u8 cpu);
 int sclp_cpu_deconfigure(u8 cpu);
-unsigned long long sclp_get_rnmax(void);
-unsigned long long sclp_get_rzm(void);
-unsigned int sclp_get_max_cpu(void);
 unsigned int sclp_get_mtid(u8 cpu_type);
 unsigned int sclp_get_mtid_max(void);
-unsigned int sclp_get_mtid_prev(void);
 int sclp_sdias_blk_count(void);
 int sclp_sdias_copy(void *dest, int blk_num, int nr_blks);
 int sclp_chp_configure(struct chp_id chpid);
 int sclp_chp_deconfigure(struct chp_id chpid);
 int sclp_chp_read_info(struct sclp_chp_info *info);
 void sclp_get_ipl_info(struct sclp_ipl_info *info);
-bool __init sclp_has_linemode(void);
-bool __init sclp_has_vt220(void);
-bool sclp_has_sprp(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);
-unsigned long sclp_get_hsa_size(void);
 void sclp_early_detect(void);
-int sclp_has_siif(void);
-int sclp_has_sigpif(void);
-unsigned int sclp_get_ibc(void);
-
 long _sclp_print_early(const char *);
 
 #endif /* _ASM_S390_SCLP_H */
index 9f73c805902291c1619335cb38c4fe0f8492b29a..d9f0dcfcae5eaed275f30bb2fb91cf2ef7c1dd01 100644 (file)
@@ -122,7 +122,7 @@ static ssize_t copy_oldmem_page_zfcpdump(char *buf, size_t csize,
 {
        int rc;
 
-       if (src < sclp_get_hsa_size()) {
+       if (src < sclp.hsa_size) {
                rc = memcpy_hsa(buf, src, csize, userbuf);
        } else {
                if (userbuf)
@@ -215,7 +215,7 @@ static int remap_oldmem_pfn_range_zfcpdump(struct vm_area_struct *vma,
                                           unsigned long pfn,
                                           unsigned long size, pgprot_t prot)
 {
-       unsigned long hsa_end = sclp_get_hsa_size();
+       unsigned long hsa_end = sclp.hsa_size;
        unsigned long size_hsa;
 
        if (pfn < hsa_end >> PAGE_SHIFT) {
@@ -258,7 +258,7 @@ int copy_from_oldmem(void *dest, void *src, size_t count)
                                return rc;
                }
        } else {
-               unsigned long hsa_end = sclp_get_hsa_size();
+               unsigned long hsa_end = sclp.hsa_size;
                if ((unsigned long) src < hsa_end) {
                        copied = min(count, hsa_end - (unsigned long) src);
                        rc = memcpy_hsa(dest, (unsigned long) src, copied, 0);
@@ -609,7 +609,7 @@ int elfcorehdr_alloc(unsigned long long *addr, unsigned long long *size)
        if (elfcorehdr_addr != ELFCORE_ADDR_MAX)
                return 0;
        /* If we cannot get HSA size for zfcpdump return error */
-       if (ipl_info.type == IPL_TYPE_FCP_DUMP && !sclp_get_hsa_size())
+       if (ipl_info.type == IPL_TYPE_FCP_DUMP && !sclp.hsa_size)
                return -ENODEV;
 
        /* For kdump, exclude previous crashkernel memory */
index 7262fe438c9903c58be86f31f0fa93b406c9ce6c..bdde603ee0ac6b19227956b02a3db4ada635c4d6 100644 (file)
@@ -128,9 +128,9 @@ __setup("condev=", condev_setup);
 static void __init set_preferred_console(void)
 {
        if (MACHINE_IS_KVM) {
-               if (sclp_has_vt220())
+               if (sclp.has_vt220)
                        add_preferred_console("ttyS", 1, NULL);
-               else if (sclp_has_linemode())
+               else if (sclp.has_linemode)
                        add_preferred_console("ttyS", 0, NULL);
                else
                        add_preferred_console("hvc", 0, NULL);
@@ -510,8 +510,8 @@ static void reserve_memory_end(void)
 {
 #ifdef CONFIG_CRASH_DUMP
        if (ipl_info.type == IPL_TYPE_FCP_DUMP &&
-           !OLDMEM_BASE && sclp_get_hsa_size()) {
-               memory_end = sclp_get_hsa_size();
+           !OLDMEM_BASE && sclp.hsa_size) {
+               memory_end = sclp.hsa_size;
                memory_end &= PAGE_MASK;
                memory_end_set = 1;
        }
@@ -576,7 +576,7 @@ static void __init reserve_crashkernel(void)
                crash_base = low;
        } else {
                /* Find suitable area in free memory */
-               low = max_t(unsigned long, crash_size, sclp_get_hsa_size());
+               low = max_t(unsigned long, crash_size, sclp.hsa_size);
                high = crash_base ? crash_base + crash_size : ULONG_MAX;
 
                if (crash_base && crash_base < low) {
index a5321d5a02368c8d482cbdaeb407e8e2eeecddde..ac7dda556a7d85df27a48ed23326ab342d233d9a 100644 (file)
@@ -601,7 +601,7 @@ static void __init smp_store_cpu_states(struct sclp_cpu_info *info)
                /* No previous system present, normal boot. */
                return;
        /* Set multi-threading state to the previous system. */
-       pcpu_set_smt(sclp_get_mtid_prev());
+       pcpu_set_smt(sclp.mtid_prev);
        /* Collect CPU states. */
        cpu = 0;
        for (i = 0; i < info->configured; i++) {
@@ -883,7 +883,7 @@ void __init smp_fill_possible_mask(void)
        unsigned int possible, sclp_max, cpu;
 
        sclp_max = min(smp_max_threads, sclp_get_mtid_max() + 1);
-       sclp_max = sclp_get_max_cpu() * sclp_max ?: nr_cpu_ids;
+       sclp_max = sclp.max_cpu * sclp_max ?: nr_cpu_ids;
        possible = setup_possible_cpus ?: nr_cpu_ids;
        possible = min(possible, sclp_max);
        for (cpu = 0; cpu < possible && cpu < nr_cpu_ids; cpu++)
index 9de47265ef73da07ffd7ef37337bf2e44e59bd46..0d3deef6edff49729758be3b4eeb368ca86b7131 100644 (file)
@@ -799,7 +799,7 @@ int kvm_s390_ext_call_pending(struct kvm_vcpu *vcpu)
        struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int;
        uint8_t sigp_ctrl = vcpu->kvm->arch.sca->cpu[vcpu->vcpu_id].sigp_ctrl;
 
-       if (!sclp_has_sigpif())
+       if (!sclp.has_sigpif)
                return test_bit(IRQ_PEND_EXT_EXTERNAL, &li->pending_irqs);
 
        return (sigp_ctrl & SIGP_CTRL_C) &&
@@ -1058,7 +1058,7 @@ static int __inject_extcall(struct kvm_vcpu *vcpu, struct kvm_s390_irq *irq)
            kvm_get_vcpu(vcpu->kvm, src_id) == NULL)
                return -EINVAL;
 
-       if (sclp_has_sigpif())
+       if (sclp.has_sigpif)
                return __inject_extcall_sigpif(vcpu, src_id);
 
        if (!test_and_set_bit(IRQ_PEND_EXT_EXTERNAL, &li->pending_irqs))
index 8cd8e7b288c5db84bf358785bb9aee4510c69050..c4e81b26c1b0fb6a22039d3404fb0bbc94d09c35 100644 (file)
@@ -604,7 +604,7 @@ static int kvm_s390_get_machine(struct kvm *kvm, struct kvm_device_attr *attr)
                goto out;
        }
        get_cpu_id((struct cpuid *) &mach->cpuid);
-       mach->ibc = sclp_get_ibc();
+       mach->ibc = sclp.ibc;
        memcpy(&mach->fac_mask, kvm->arch.model.fac->mask,
               S390_ARCH_FAC_LIST_SIZE_BYTE);
        memcpy((unsigned long *)&mach->fac_list, S390_lowcore.stfle_fac_list,
@@ -1068,7 +1068,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
               S390_ARCH_FAC_LIST_SIZE_BYTE);
 
        kvm_s390_get_cpu_id(&kvm->arch.model.cpu_id);
-       kvm->arch.model.ibc = sclp_get_ibc() & 0x0fff;
+       kvm->arch.model.ibc = sclp.ibc & 0x0fff;
 
        if (kvm_s390_crypto_init(kvm) < 0)
                goto out_err;
@@ -1321,9 +1321,9 @@ int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
 
        vcpu->arch.sie_block->ecb2  = 8;
        vcpu->arch.sie_block->eca   = 0xC1002000U;
-       if (sclp_has_siif())
+       if (sclp.has_siif)
                vcpu->arch.sie_block->eca |= 1;
-       if (sclp_has_sigpif())
+       if (sclp.has_sigpif)
                vcpu->arch.sie_block->eca |= 0x10000000U;
        if (test_kvm_facility(vcpu->kvm, 129)) {
                vcpu->arch.sie_block->eca |= 0x00020000;
index 80875c43a4a4b16c11e8449d5cbf1f4db1b66d75..76e873748b56e91579ad06fd2fece4e2c346a51f 100644 (file)
@@ -213,7 +213,7 @@ unsigned long memory_block_size_bytes(void)
         * Make sure the memory block size is always greater
         * or equal than the memory increment size.
         */
-       return max_t(unsigned long, MIN_MEMORY_BLOCK_SIZE, sclp_get_rzm());
+       return max_t(unsigned long, MIN_MEMORY_BLOCK_SIZE, sclp.rzm);
 }
 
 #ifdef CONFIG_MEMORY_HOTREMOVE
index 0f36043958053f72f190ed338b7592c91f9cf58e..e00f0d5d296d0ce3dd042afcd1cd6d00b14b1f9f 100644 (file)
@@ -31,8 +31,8 @@ void __init detect_memory_memblock(void)
        unsigned long addr, size;
        int type;
 
-       rzm = sclp_get_rzm();
-       rnmax = sclp_get_rnmax();
+       rzm = sclp.rzm;
+       rnmax = sclp.rnmax;
        memsize = rzm * rnmax;
        if (!rzm)
                rzm = 1ULL << 17;
index a88069f8c677e437d4248a757ee33b659aac295a..852f20649f33e84d17669c4b541a346a78891672 100644 (file)
@@ -191,9 +191,6 @@ void sclp_sdias_exit(void);
 extern int sclp_console_pages;
 extern int sclp_console_drop;
 extern unsigned long sclp_console_full;
-extern u8 sclp_fac84;
-extern unsigned long long sclp_rzm;
-extern unsigned long long sclp_rnmax;
 
 /* useful inlines */
 
index 7be782116dab0273641ea7a9cc7bc7d419944702..215e7950fd296aa0b169a93b125127c71c134f2d 100644 (file)
@@ -101,7 +101,7 @@ static void sclp_fill_cpu_info(struct sclp_cpu_info *info,
        info->configured = sccb->nr_configured;
        info->standby = sccb->nr_standby;
        info->combined = sccb->nr_configured + sccb->nr_standby;
-       info->has_cpu_type = sclp_fac84 & 0x1;
+       info->has_cpu_type = sclp.has_cpu_type;
        memcpy(&info->cpu, page + sccb->offset_configured,
               info->combined * sizeof(struct sclp_cpu_entry));
 }
@@ -202,14 +202,14 @@ struct assign_storage_sccb {
 
 int arch_get_memory_phys_device(unsigned long start_pfn)
 {
-       if (!sclp_rzm)
+       if (!sclp.rzm)
                return 0;
-       return PFN_PHYS(start_pfn) >> ilog2(sclp_rzm);
+       return PFN_PHYS(start_pfn) >> ilog2(sclp.rzm);
 }
 
 static unsigned long long rn2addr(u16 rn)
 {
-       return (unsigned long long) (rn - 1) * sclp_rzm;
+       return (unsigned long long) (rn - 1) * sclp.rzm;
 }
 
 static int do_assign_storage(sclp_cmdw_t cmd, u16 rn)
@@ -250,7 +250,7 @@ static int sclp_assign_storage(u16 rn)
        if (rc)
                return rc;
        start = rn2addr(rn);
-       storage_key_init_range(start, start + sclp_rzm);
+       storage_key_init_range(start, start + sclp.rzm);
        return 0;
 }
 
@@ -309,7 +309,7 @@ static int sclp_mem_change_state(unsigned long start, unsigned long size,
                istart = rn2addr(incr->rn);
                if (start + size - 1 < istart)
                        break;
-               if (start > istart + sclp_rzm - 1)
+               if (start > istart + sclp.rzm - 1)
                        continue;
                if (online)
                        rc |= sclp_assign_storage(incr->rn);
@@ -330,7 +330,7 @@ static bool contains_standby_increment(unsigned long start, unsigned long end)
                istart = rn2addr(incr->rn);
                if (end - 1 < istart)
                        continue;
-               if (start > istart + sclp_rzm - 1)
+               if (start > istart + sclp.rzm - 1)
                        continue;
                if (incr->standby)
                        return true;
@@ -415,7 +415,7 @@ static void __init add_memory_merged(u16 rn)
        if (!first_rn)
                goto skip_add;
        start = rn2addr(first_rn);
-       size = (unsigned long long) num * sclp_rzm;
+       size = (unsigned long long) num * sclp.rzm;
        if (start >= VMEM_MAX_PHYS)
                goto skip_add;
        if (start + size > VMEM_MAX_PHYS)
@@ -465,7 +465,7 @@ static void __init insert_increment(u16 rn, int standby, int assigned)
        }
        if (!assigned)
                new_incr->rn = last_rn + 1;
-       if (new_incr->rn > sclp_rnmax) {
+       if (new_incr->rn > sclp.rnmax) {
                kfree(new_incr);
                return;
        }
@@ -550,7 +550,7 @@ static int __init sclp_detect_standby_memory(void)
        }
        if (rc || list_empty(&sclp_mem_list))
                goto out;
-       for (i = 1; i <= sclp_rnmax - assigned; i++)
+       for (i = 1; i <= sclp.rnmax - assigned; i++)
                insert_increment(0, 1, 0);
        rc = register_memory_notifier(&sclp_mem_nb);
        if (rc)
@@ -753,8 +753,3 @@ out:
        free_page((unsigned long) sccb);
        return rc;
 }
-
-bool sclp_has_sprp(void)
-{
-       return !!(sclp_fac84 & 0x2);
-}
index 1efa4fdb7fe212daca1f6562366f2a0d25019a8e..4f6525d5e987ee2fa1dd9e1b1d40b4a89a16a56e 100644 (file)
@@ -48,23 +48,12 @@ struct read_info_sccb {
 } __packed __aligned(PAGE_SIZE);
 
 static char sccb_early[PAGE_SIZE] __aligned(PAGE_SIZE) __initdata;
-static unsigned int sclp_con_has_vt220 __initdata;
-static unsigned int sclp_con_has_linemode __initdata;
-static unsigned long sclp_hsa_size;
-static unsigned int sclp_max_cpu;
 static struct sclp_ipl_info sclp_ipl_info;
-static unsigned char sclp_siif;
-static unsigned char sclp_sigpif;
-static u32 sclp_ibc;
-static unsigned int sclp_mtid;
-static unsigned int sclp_mtid_cp;
 static unsigned int sclp_mtid_max;
-static unsigned int sclp_mtid_prev;
 
+struct sclp_info sclp;
+EXPORT_SYMBOL(sclp);
 u64 sclp_facilities;
-u8 sclp_fac84;
-unsigned long long sclp_rzm;
-unsigned long long sclp_rnmax;
 
 static int __init sclp_cmd_sync_early(sclp_cmdw_t cmd, void *sccb)
 {
@@ -118,21 +107,22 @@ static void __init sclp_facilities_detect(struct read_info_sccb *sccb)
                return;
 
        sclp_facilities = sccb->facilities;
-       sclp_fac84 = sccb->fac84;
+       sclp.has_sprp = !!(sccb->fac84 & 0x02);
+       sclp.has_cpu_type = !!(sccb->fac84 & 0x01);
        if (sccb->fac85 & 0x02)
                S390_lowcore.machine_flags |= MACHINE_FLAG_ESOP;
-       sclp_rnmax = sccb->rnmax ? sccb->rnmax : sccb->rnmax2;
-       sclp_rzm = sccb->rnsize ? sccb->rnsize : sccb->rnsize2;
-       sclp_rzm <<= 20;
-       sclp_ibc = sccb->ibc;
+       sclp.rnmax = sccb->rnmax ? sccb->rnmax : sccb->rnmax2;
+       sclp.rzm = sccb->rnsize ? sccb->rnsize : sccb->rnsize2;
+       sclp.rzm <<= 20;
+       sclp.ibc = sccb->ibc;
 
        if (!sccb->hcpua) {
                if (MACHINE_IS_VM)
-                       sclp_max_cpu = 64;
+                       sclp.max_cpu = 64;
                else
-                       sclp_max_cpu = sccb->ncpurl;
+                       sclp.max_cpu = sccb->ncpurl;
        } else {
-               sclp_max_cpu = sccb->hcpua + 1;
+               sclp.max_cpu = sccb->hcpua + 1;
        }
 
        boot_cpu_address = stap();
@@ -140,8 +130,8 @@ static void __init sclp_facilities_detect(struct read_info_sccb *sccb)
        for (cpu = 0; cpu < sccb->ncpurl; cpue++, cpu++) {
                if (boot_cpu_address != cpue->core_id)
                        continue;
-               sclp_siif = cpue->siif;
-               sclp_sigpif = cpue->sigpif;
+               sclp.has_siif = cpue->siif;
+               sclp.has_sigpif = cpue->sigpif;
                break;
        }
 
@@ -151,58 +141,15 @@ static void __init sclp_facilities_detect(struct read_info_sccb *sccb)
                sclp_ipl_info.has_dump = 1;
        memcpy(&sclp_ipl_info.loadparm, &sccb->loadparm, LOADPARM_LEN);
 
-       sclp_mtid = (sccb->fac42 & 0x80) ? (sccb->fac42 & 31) : 0;
-       sclp_mtid_cp = (sccb->fac42 & 0x80) ? (sccb->fac43 & 31) : 0;
-       sclp_mtid_max = max(sclp_mtid, sclp_mtid_cp);
-       sclp_mtid_prev = (sccb->fac42 & 0x80) ? (sccb->fac66 & 31) : 0;
+       sclp.mtid = (sccb->fac42 & 0x80) ? (sccb->fac42 & 31) : 0;
+       sclp.mtid_cp = (sccb->fac42 & 0x80) ? (sccb->fac43 & 31) : 0;
+       sclp_mtid_max = max(sclp.mtid, sclp.mtid_cp);
+       sclp.mtid_prev = (sccb->fac42 & 0x80) ? (sccb->fac66 & 31) : 0;
 }
 
-bool __init sclp_has_linemode(void)
-{
-       return !!sclp_con_has_linemode;
-}
-
-bool __init sclp_has_vt220(void)
-{
-       return !!sclp_con_has_vt220;
-}
-
-unsigned long long sclp_get_rnmax(void)
-{
-       return sclp_rnmax;
-}
-
-unsigned long long sclp_get_rzm(void)
-{
-       return sclp_rzm;
-}
-
-unsigned int sclp_get_max_cpu(void)
-{
-       return sclp_max_cpu;
-}
-
-int sclp_has_siif(void)
-{
-       return sclp_siif;
-}
-EXPORT_SYMBOL(sclp_has_siif);
-
-int sclp_has_sigpif(void)
-{
-       return sclp_sigpif;
-}
-EXPORT_SYMBOL(sclp_has_sigpif);
-
-unsigned int sclp_get_ibc(void)
-{
-       return sclp_ibc;
-}
-EXPORT_SYMBOL(sclp_get_ibc);
-
 unsigned int sclp_get_mtid(u8 cpu_type)
 {
-       return cpu_type ? sclp_mtid : sclp_mtid_cp;
+       return cpu_type ? sclp.mtid : sclp.mtid_cp;
 }
 
 unsigned int sclp_get_mtid_max(void)
@@ -210,11 +157,6 @@ unsigned int sclp_get_mtid_max(void)
        return sclp_mtid_max;
 }
 
-unsigned int sclp_get_mtid_prev(void)
-{
-       return sclp_mtid_prev;
-}
-
 /*
  * This function will be called after sclp_facilities_detect(), which gets
  * called from early.c code. The sclp_facilities_detect() function retrieves
@@ -286,11 +228,6 @@ static long __init sclp_hsa_copy_wait(struct sccb_header *sccb)
        return (((struct sdias_sccb *) sccb)->evbuf.blk_cnt - 1) * PAGE_SIZE;
 }
 
-unsigned long sclp_get_hsa_size(void)
-{
-       return sclp_hsa_size;
-}
-
 static void __init sclp_hsa_size_detect(void *sccb)
 {
        long size;
@@ -313,7 +250,7 @@ static void __init sclp_hsa_size_detect(void *sccb)
        if (size < 0)
                return;
 out:
-       sclp_hsa_size = size;
+       sclp.hsa_size = size;
 }
 
 static unsigned int __init sclp_con_check_linemode(struct init_sccb *sccb)
@@ -331,10 +268,10 @@ static void __init sclp_console_detect(struct init_sccb *sccb)
                return;
 
        if (sccb->sclp_send_mask & EVTYP_VT220MSG_MASK)
-               sclp_con_has_vt220 = 1;
+               sclp.has_vt220 = 1;
 
        if (sclp_con_check_linemode(sccb))
-               sclp_con_has_linemode = 1;
+               sclp.has_linemode = 1;
 }
 
 void __init sclp_early_detect(void)
index a68fcfd1d48cb79928620a6acac6455e8c6fa79c..9a3dd95029cc8a7ce8d5a43e8b5cd659ca035d95 100644 (file)
@@ -330,9 +330,9 @@ static ssize_t zcore_read(struct file *file, char __user *buf, size_t count,
        mem_offs = 0;
 
        /* Copy from HSA data */
-       if (*ppos < sclp_get_hsa_size() + HEADER_SIZE) {
+       if (*ppos < sclp.hsa_size + HEADER_SIZE) {
                size = min((count - hdr_count),
-                          (size_t) (sclp_get_hsa_size() - mem_start));
+                          (size_t) (sclp.hsa_size - mem_start));
                rc = memcpy_hsa_user(buf + hdr_count, mem_start, size);
                if (rc)
                        goto fail;
@@ -483,7 +483,7 @@ static ssize_t zcore_hsa_read(struct file *filp, char __user *buf,
        static char str[18];
 
        if (hsa_available)
-               snprintf(str, sizeof(str), "%lx\n", sclp_get_hsa_size());
+               snprintf(str, sizeof(str), "%lx\n", sclp.hsa_size);
        else
                snprintf(str, sizeof(str), "0\n");
        return simple_read_from_buffer(buf, count, ppos, str, strlen(str));
@@ -558,7 +558,7 @@ static int __init sys_info_init(enum arch_id arch, unsigned long mem_end)
 
 static int __init check_sdias(void)
 {
-       if (!sclp_get_hsa_size()) {
+       if (!sclp.hsa_size) {
                TRACE("Could not determine HSA size\n");
                return -ENODEV;
        }
@@ -619,7 +619,7 @@ static int __init zcore_reipl_init(void)
        ipl_block = (void *) __get_free_page(GFP_KERNEL);
        if (!ipl_block)
                return -ENOMEM;
-       if (ipib_info.ipib < sclp_get_hsa_size())
+       if (ipib_info.ipib < sclp.hsa_size)
                rc = memcpy_hsa_kernel(ipl_block, ipib_info.ipib, PAGE_SIZE);
        else
                rc = memcpy_real(ipl_block, (void *) ipib_info.ipib, PAGE_SIZE);
index dd65c8b4c7fe983336a7ff1596c7655837d851b7..53fb975c404b19b3f1d50f1f226cd0155accd683 100644 (file)
@@ -450,7 +450,7 @@ static int __init test_devices_support(unsigned long addr)
 static int __init kvm_devices_init(void)
 {
        int rc;
-       unsigned long total_memory_size = sclp_get_rzm() * sclp_get_rnmax();
+       unsigned long total_memory_size = sclp.rzm * sclp.rnmax;
 
        if (!MACHINE_IS_KVM)
                return -ENODEV;
@@ -497,7 +497,7 @@ static __init int early_put_chars(u32 vtermno, const char *buf, int count)
 
 static int __init s390_virtio_console_init(void)
 {
-       if (sclp_has_vt220() || sclp_has_linemode())
+       if (sclp.has_vt220 || sclp.has_linemode)
                return -ENODEV;
        return virtio_cons_early_init(early_put_chars);
 }