On Wed, Dec 15, 2021 at 12:17:44PM -0600, Venu Busireddy wrote: > Boris & Tom, which implementation would you prefer? I'd like to see how that sme_sev_parse_cpuid() would look like. And that function should be called sev_parse_cpuid(), btw. Because if that function turns out to be a subset of your suggestion, functionality-wise, then we should save us the churn and simply do one generic helper. Btw 2, that helper should be in arch/x86/kernel/sev-shared.c so that it gets shared by both kernel stages instead having an inline function in some random header. Btw 3, I'm not crazy about the feature testing with the @features param either. Maybe that function should return the eYx register directly, like the cpuid_eYx() variants in the kernel do, where Y in { a, b, c, d }. The caller can than do its own testing: eax = sev_parse_cpuid(RET_EAX, ...) if (eax > 0) { if (eax & BIT(1)) ... Something along those lines, for example. But I'd have to see a concrete diff from Michael to get a better idea how that CPUID parsing from the CPUID page is going to look like. Thx. -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette