uv_info
struct uv_info __bootdata_preserved(uv_info);
memcpy(uv_info.inst_calls_list, uvcb.inst_calls_list, sizeof(uv_info.inst_calls_list));
uv_info.uv_base_stor_len = uvcb.uv_base_stor_len;
uv_info.guest_base_stor_len = uvcb.conf_base_phys_stor_len;
uv_info.guest_virt_base_stor_len = uvcb.conf_base_virt_stor_len;
uv_info.guest_virt_var_stor_len = uvcb.conf_virt_var_stor_len;
uv_info.guest_cpu_stor_len = uvcb.cpu_stor_len;
uv_info.max_sec_stor_addr = ALIGN(uvcb.max_guest_stor_addr, PAGE_SIZE);
uv_info.max_num_sec_conf = uvcb.max_num_sec_conf;
uv_info.max_guest_cpu_id = uvcb.max_guest_cpu_id;
uv_info.uv_feature_indications = uvcb.uv_feature_indications;
uv_info.supp_se_hdr_ver = uvcb.supp_se_hdr_versions;
uv_info.supp_se_hdr_pcf = uvcb.supp_se_hdr_pcf;
uv_info.conf_dump_storage_state_len = uvcb.conf_dump_storage_state_len;
uv_info.conf_dump_finalize_len = uvcb.conf_dump_finalize_len;
uv_info.supp_att_req_hdr_ver = uvcb.supp_att_req_hdr_ver;
uv_info.supp_att_pflags = uvcb.supp_att_pflags;
uv_info.supp_add_secret_req_ver = uvcb.supp_add_secret_req_ver;
uv_info.supp_add_secret_pcf = uvcb.supp_add_secret_pcf;
uv_info.supp_secret_types = uvcb.supp_secret_types;
uv_info.max_assoc_secrets = uvcb.max_assoc_secrets;
uv_info.max_retr_secrets = uvcb.max_retr_secrets;
if (is_prot_virt_host() && uv_info.max_sec_stor_addr)
limit = min_t(unsigned long, limit, uv_info.max_sec_stor_addr);
extern struct uv_info uv_info;
if (feature_bit >= sizeof(uv_info.uv_feature_indications) * 8)
return test_bit_inv(feature_bit, &uv_info.uv_feature_indications);
struct uv_info __bootdata_preserved(uv_info);
EXPORT_SYMBOL(uv_info);
uv_info.inst_calls_list[0],
uv_info.inst_calls_list[1],
uv_info.inst_calls_list[2],
uv_info.inst_calls_list[3]);
return sysfs_emit(buf, "%lx\n", uv_info.supp_se_hdr_ver);
return sysfs_emit(buf, "%lx\n", uv_info.supp_se_hdr_pcf);
return sysfs_emit(buf, "%lx\n", uv_info.guest_cpu_stor_len);
return sysfs_emit(buf, "%lx\n", uv_info.conf_dump_storage_state_len);
return sysfs_emit(buf, "%lx\n", uv_info.conf_dump_finalize_len);
return sysfs_emit(buf, "%lx\n", uv_info.uv_feature_indications);
return sysfs_emit(buf, "%d\n", uv_info.max_guest_cpu_id + 1);
return sysfs_emit(buf, "%d\n", uv_info.max_num_sec_conf);
return sysfs_emit(buf, "%lx\n", uv_info.max_sec_stor_addr);
return sysfs_emit(buf, "%lx\n", uv_info.supp_att_req_hdr_ver);
return sysfs_emit(buf, "%lx\n", uv_info.supp_att_pflags);
return sysfs_emit(buf, "%lx\n", uv_info.supp_add_secret_req_ver);
return sysfs_emit(buf, "%lx\n", uv_info.supp_add_secret_pcf);
return sysfs_emit(buf, "%lx\n", uv_info.supp_secret_types);
uv_info.max_assoc_secrets + uv_info.max_retr_secrets);
return sysfs_emit(buf, "%d\n", uv_info.max_retr_secrets);
return sysfs_emit(buf, "%d\n", uv_info.max_assoc_secrets);
uv_info.uv_base_stor_len, SZ_1M, SZ_2G,
uv_info.uv_base_stor_len);
if (test_bit_inv(BIT_UVC_CMD_QUERY_KEYS, uv_info.inst_calls_list))
if (uv_init(__pa(uv_stor_base), uv_info.uv_base_stor_len)) {
memblock_free(uv_stor_base, uv_info.uv_base_stor_len);
uv_info.uv_base_stor_len >> 20);
filter = uv_info.uv_feature_indications & KVM_S390_VM_CPU_UV_FEAT_GUEST_MASK;
BUILD_BUG_ON(sizeof(*dst) != sizeof(uv_info.uv_feature_indications));
feat = uv_info.uv_feature_indications & KVM_S390_VM_CPU_UV_FEAT_GUEST_MASK;
uv_info.inst_calls_list,
sizeof(uv_info.inst_calls_list));
info->vm.max_cpus = uv_info.max_guest_cpu_id + 1;
info->vm.max_guests = uv_info.max_num_sec_conf;
info->vm.max_guest_addr = uv_info.max_sec_stor_addr;
info->vm.feature_indication = uv_info.uv_feature_indications;
info->dump.dump_cpu_buffer_len = uv_info.guest_cpu_stor_len;
info->dump.dump_config_mem_buffer_per_1m = uv_info.conf_dump_storage_state_len;
info->dump.dump_config_finalize_len = uv_info.conf_dump_finalize_len;
if (dmp.buff_len < uv_info.conf_dump_finalize_len)
if (dmp.buff_len != uv_info.guest_cpu_stor_len)
data = kvzalloc(uv_info.guest_cpu_stor_len, GFP_KERNEL);
if (!ret && copy_to_user((__u8 __user *)dmp.buff_addr, data, uv_info.guest_cpu_stor_len))
(unsigned long *)&uv_info.inst_calls_list)) {
compl_data = vzalloc(uv_info.conf_dump_finalize_len);
ret = copy_to_user(buff_user, compl_data, uv_info.conf_dump_finalize_len);
get_order(uv_info.guest_cpu_stor_len));
get_order(uv_info.guest_cpu_stor_len));
get_order(uv_info.guest_cpu_stor_len));
get_order(uv_info.guest_base_stor_len));
unsigned long base = uv_info.guest_base_stor_len;
unsigned long virt = uv_info.guest_virt_var_stor_len;
vlen += uv_info.guest_virt_base_stor_len;
free_pages(leftover->stor_base, get_order(uv_info.guest_base_stor_len));
return test_bit_inv(BIT_UVC_CMD_DESTROY_SEC_CONF_FAST, uv_info.inst_calls_list);
const u64 increment_len = uv_info.conf_dump_storage_state_len;
if (!test_bit_inv(ioctl_nr_to_uvc_bit[i], uv_info.inst_calls_list))
if (!test_bit_inv(BIT_UVC_CMD_RETR_SECRET, uv_info.inst_calls_list))