On Sun, May 30, 2021 at 11:06:18AM -0400, Tianyu Lan wrote:
+ if (ms_hyperv.ghcb_base) {
+ rdmsrl(MSR_AMD64_SEV_ES_GHCB, ghcb_gpa);
+
+ ghcb_va = ioremap_cache(ghcb_gpa, HV_HYP_PAGE_SIZE);
+ if (!ghcb_va)
+ return -ENOMEM;
Can you explain this a bit more? We've very much deprecated
ioremap_cache in favor of memremap. Why yo you need a __iomem address
here? Why do we need the remap here at all?
Does the data structure at this address not have any types that we
could use a struct for?
+
+ rdmsrl(MSR_AMD64_SEV_ES_GHCB, ghcb_gpa);
+ ghcb_va = ioremap_cache(ghcb_gpa, HV_HYP_PAGE_SIZE);
+ if (!ghcb_va) {
This seems to duplicate the above code.
+bool hv_isolation_type_snp(void)
+{
+ return static_branch_unlikely(&isolation_type_snp);
+}
+EXPORT_SYMBOL_GPL(hv_isolation_type_snp);
This probably wants a kerneldoc explaining when it should be used.