lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 10 Aug 2021 20:25:20 +0800 From: Tianyu Lan <ltykernel@...il.com> To: Wei Liu <wei.liu@...nel.org> Cc: kys@...rosoft.com, haiyangz@...rosoft.com, sthemmin@...rosoft.com, decui@...rosoft.com, tglx@...utronix.de, mingo@...hat.com, bp@...en8.de, x86@...nel.org, hpa@...or.com, dave.hansen@...ux.intel.com, luto@...nel.org, peterz@...radead.org, konrad.wilk@...cle.com, boris.ostrovsky@...cle.com, jgross@...e.com, sstabellini@...nel.org, joro@...tes.org, will@...nel.org, davem@...emloft.net, kuba@...nel.org, jejb@...ux.ibm.com, martin.petersen@...cle.com, arnd@...db.de, hch@....de, m.szyprowski@...sung.com, robin.murphy@....com, thomas.lendacky@....com, brijesh.singh@....com, ardb@...nel.org, Tianyu.Lan@...rosoft.com, pgonda@...gle.com, martin.b.radev@...il.com, akpm@...ux-foundation.org, kirill.shutemov@...ux.intel.com, rppt@...nel.org, sfr@...b.auug.org.au, saravanand@...com, krish.sadhukhan@...cle.com, aneesh.kumar@...ux.ibm.com, xen-devel@...ts.xenproject.org, rientjes@...gle.com, hannes@...xchg.org, tj@...nel.org, michael.h.kelley@...rosoft.com, iommu@...ts.linux-foundation.org, linux-arch@...r.kernel.org, linux-hyperv@...r.kernel.org, linux-kernel@...r.kernel.org, linux-scsi@...r.kernel.org, netdev@...r.kernel.org, vkuznets@...hat.com, parri.andrea@...il.com, dave.hansen@...el.com Subject: Re: [PATCH V3 03/13] x86/HV: Add new hvcall guest address host visibility support On 8/10/2021 7:03 PM, Wei Liu wrote: >> diff --git a/arch/x86/hyperv/hv_init.c b/arch/x86/hyperv/hv_init.c >> index 0bb4d9ca7a55..b3683083208a 100644 >> --- a/arch/x86/hyperv/hv_init.c >> +++ b/arch/x86/hyperv/hv_init.c >> @@ -607,6 +607,12 @@ EXPORT_SYMBOL_GPL(hv_get_isolation_type); >> >> bool hv_is_isolation_supported(void) >> { >> + if (!cpu_feature_enabled(X86_FEATURE_HYPERVISOR)) >> + return 0; > Nit: false instead of 0. > OK. Will fix in the next version. >> +int hv_mark_gpa_visibility(u16 count, const u64 pfn[], >> + enum hv_mem_host_visibility visibility) >> +{ >> + struct hv_gpa_range_for_visibility **input_pcpu, *input; >> + u16 pages_processed; >> + u64 hv_status; >> + unsigned long flags; >> + >> + /* no-op if partition isolation is not enabled */ >> + if (!hv_is_isolation_supported()) >> + return 0; >> + >> + if (count > HV_MAX_MODIFY_GPA_REP_COUNT) { >> + pr_err("Hyper-V: GPA count:%d exceeds supported:%lu\n", count, >> + HV_MAX_MODIFY_GPA_REP_COUNT); >> + return -EINVAL; >> + } >> + >> + local_irq_save(flags); >> + input_pcpu = (struct hv_gpa_range_for_visibility **) >> + this_cpu_ptr(hyperv_pcpu_input_arg); >> + input = *input_pcpu; >> + if (unlikely(!input)) { >> + local_irq_restore(flags); >> + return -EINVAL; >> + } >> + >> + input->partition_id = HV_PARTITION_ID_SELF; >> + input->host_visibility = visibility; >> + input->reserved0 = 0; >> + input->reserved1 = 0; >> + memcpy((void *)input->gpa_page_list, pfn, count * sizeof(*pfn)); >> + hv_status = hv_do_rep_hypercall( >> + HVCALL_MODIFY_SPARSE_GPA_PAGE_HOST_VISIBILITY, count, >> + 0, input, &pages_processed); >> + local_irq_restore(flags); >> + >> + if (!(hv_status & HV_HYPERCALL_RESULT_MASK)) >> + return 0; >> + >> + return hv_status & HV_HYPERCALL_RESULT_MASK; > Joseph introduced a few helper functions in 753ed9c95c37d. They will > make the code simpler. OK. Will update in the next version. Thanks.
Powered by blists - more mailing lists