Skip to content

Commit 78d3326

Browse files
steffen-eidenfrankjaa
authored andcommitted
s390/uv: replace scnprintf with sysfs_emit
Replace scnprintf(page, PAGE_SIZE, ...) with the page size aware sysfs_emit(buf, ...) which adds some sanity checks. Signed-off-by: Steffen Eiden <seiden@linux.ibm.com> Reviewed-by: Janosch Frank <frankja@linux.ibm.com> Link: https://lore.kernel.org/r/20230615100533.3996107-7-seiden@linux.ibm.com Signed-off-by: Janosch Frank <frankja@linux.ibm.com> Message-Id: <20230615100533.3996107-7-seiden@linux.ibm.com>
1 parent 2d8a26a commit 78d3326

1 file changed

Lines changed: 26 additions & 32 deletions

File tree

  • arch/s390/kernel

arch/s390/kernel/uv.c

Lines changed: 26 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -468,13 +468,13 @@ EXPORT_SYMBOL_GPL(arch_make_page_accessible);
468468

469469
#if defined(CONFIG_PROTECTED_VIRTUALIZATION_GUEST) || IS_ENABLED(CONFIG_KVM)
470470
static ssize_t uv_query_facilities(struct kobject *kobj,
471-
struct kobj_attribute *attr, char *page)
471+
struct kobj_attribute *attr, char *buf)
472472
{
473-
return scnprintf(page, PAGE_SIZE, "%lx\n%lx\n%lx\n%lx\n",
474-
uv_info.inst_calls_list[0],
475-
uv_info.inst_calls_list[1],
476-
uv_info.inst_calls_list[2],
477-
uv_info.inst_calls_list[3]);
473+
return sysfs_emit(buf, "%lx\n%lx\n%lx\n%lx\n",
474+
uv_info.inst_calls_list[0],
475+
uv_info.inst_calls_list[1],
476+
uv_info.inst_calls_list[2],
477+
uv_info.inst_calls_list[3]);
478478
}
479479

480480
static struct kobj_attribute uv_query_facilities_attr =
@@ -499,30 +499,27 @@ static struct kobj_attribute uv_query_supp_se_hdr_pcf_attr =
499499
__ATTR(supp_se_hdr_pcf, 0444, uv_query_supp_se_hdr_pcf, NULL);
500500

501501
static ssize_t uv_query_dump_cpu_len(struct kobject *kobj,
502-
struct kobj_attribute *attr, char *page)
502+
struct kobj_attribute *attr, char *buf)
503503
{
504-
return scnprintf(page, PAGE_SIZE, "%lx\n",
505-
uv_info.guest_cpu_stor_len);
504+
return sysfs_emit(buf, "%lx\n", uv_info.guest_cpu_stor_len);
506505
}
507506

508507
static struct kobj_attribute uv_query_dump_cpu_len_attr =
509508
__ATTR(uv_query_dump_cpu_len, 0444, uv_query_dump_cpu_len, NULL);
510509

511510
static ssize_t uv_query_dump_storage_state_len(struct kobject *kobj,
512-
struct kobj_attribute *attr, char *page)
511+
struct kobj_attribute *attr, char *buf)
513512
{
514-
return scnprintf(page, PAGE_SIZE, "%lx\n",
515-
uv_info.conf_dump_storage_state_len);
513+
return sysfs_emit(buf, "%lx\n", uv_info.conf_dump_storage_state_len);
516514
}
517515

518516
static struct kobj_attribute uv_query_dump_storage_state_len_attr =
519517
__ATTR(dump_storage_state_len, 0444, uv_query_dump_storage_state_len, NULL);
520518

521519
static ssize_t uv_query_dump_finalize_len(struct kobject *kobj,
522-
struct kobj_attribute *attr, char *page)
520+
struct kobj_attribute *attr, char *buf)
523521
{
524-
return scnprintf(page, PAGE_SIZE, "%lx\n",
525-
uv_info.conf_dump_finalize_len);
522+
return sysfs_emit(buf, "%lx\n", uv_info.conf_dump_finalize_len);
526523
}
527524

528525
static struct kobj_attribute uv_query_dump_finalize_len_attr =
@@ -538,48 +535,45 @@ static struct kobj_attribute uv_query_feature_indications_attr =
538535
__ATTR(feature_indications, 0444, uv_query_feature_indications, NULL);
539536

540537
static ssize_t uv_query_max_guest_cpus(struct kobject *kobj,
541-
struct kobj_attribute *attr, char *page)
538+
struct kobj_attribute *attr, char *buf)
542539
{
543-
return scnprintf(page, PAGE_SIZE, "%d\n",
544-
uv_info.max_guest_cpu_id + 1);
540+
return sysfs_emit(buf, "%d\n", uv_info.max_guest_cpu_id + 1);
545541
}
546542

547543
static struct kobj_attribute uv_query_max_guest_cpus_attr =
548544
__ATTR(max_cpus, 0444, uv_query_max_guest_cpus, NULL);
549545

550546
static ssize_t uv_query_max_guest_vms(struct kobject *kobj,
551-
struct kobj_attribute *attr, char *page)
547+
struct kobj_attribute *attr, char *buf)
552548
{
553-
return scnprintf(page, PAGE_SIZE, "%d\n",
554-
uv_info.max_num_sec_conf);
549+
return sysfs_emit(buf, "%d\n", uv_info.max_num_sec_conf);
555550
}
556551

557552
static struct kobj_attribute uv_query_max_guest_vms_attr =
558553
__ATTR(max_guests, 0444, uv_query_max_guest_vms, NULL);
559554

560555
static ssize_t uv_query_max_guest_addr(struct kobject *kobj,
561-
struct kobj_attribute *attr, char *page)
556+
struct kobj_attribute *attr, char *buf)
562557
{
563-
return scnprintf(page, PAGE_SIZE, "%lx\n",
564-
uv_info.max_sec_stor_addr);
558+
return sysfs_emit(buf, "%lx\n", uv_info.max_sec_stor_addr);
565559
}
566560

567561
static struct kobj_attribute uv_query_max_guest_addr_attr =
568562
__ATTR(max_address, 0444, uv_query_max_guest_addr, NULL);
569563

570564
static ssize_t uv_query_supp_att_req_hdr_ver(struct kobject *kobj,
571-
struct kobj_attribute *attr, char *page)
565+
struct kobj_attribute *attr, char *buf)
572566
{
573-
return scnprintf(page, PAGE_SIZE, "%lx\n", uv_info.supp_att_req_hdr_ver);
567+
return sysfs_emit(buf, "%lx\n", uv_info.supp_att_req_hdr_ver);
574568
}
575569

576570
static struct kobj_attribute uv_query_supp_att_req_hdr_ver_attr =
577571
__ATTR(supp_att_req_hdr_ver, 0444, uv_query_supp_att_req_hdr_ver, NULL);
578572

579573
static ssize_t uv_query_supp_att_pflags(struct kobject *kobj,
580-
struct kobj_attribute *attr, char *page)
574+
struct kobj_attribute *attr, char *buf)
581575
{
582-
return scnprintf(page, PAGE_SIZE, "%lx\n", uv_info.supp_att_pflags);
576+
return sysfs_emit(buf, "%lx\n", uv_info.supp_att_pflags);
583577
}
584578

585579
static struct kobj_attribute uv_query_supp_att_pflags_attr =
@@ -606,26 +600,26 @@ static struct attribute_group uv_query_attr_group = {
606600
};
607601

608602
static ssize_t uv_is_prot_virt_guest(struct kobject *kobj,
609-
struct kobj_attribute *attr, char *page)
603+
struct kobj_attribute *attr, char *buf)
610604
{
611605
int val = 0;
612606

613607
#ifdef CONFIG_PROTECTED_VIRTUALIZATION_GUEST
614608
val = prot_virt_guest;
615609
#endif
616-
return scnprintf(page, PAGE_SIZE, "%d\n", val);
610+
return sysfs_emit(buf, "%d\n", val);
617611
}
618612

619613
static ssize_t uv_is_prot_virt_host(struct kobject *kobj,
620-
struct kobj_attribute *attr, char *page)
614+
struct kobj_attribute *attr, char *buf)
621615
{
622616
int val = 0;
623617

624618
#if IS_ENABLED(CONFIG_KVM)
625619
val = prot_virt_host;
626620
#endif
627621

628-
return scnprintf(page, PAGE_SIZE, "%d\n", val);
622+
return sysfs_emit(buf, "%d\n", val);
629623
}
630624

631625
static struct kobj_attribute uv_prot_virt_guest =

0 commit comments

Comments
 (0)