Re: [PATCH v14 04/19] x86/cpufeatures: Add SGX feature bits

From: Jarkko Sakkinen
Date: Wed Sep 26 2018 - 07:11:53 EST


On Tue, Sep 25, 2018 at 06:48:54PM +0200, Borislav Petkov wrote:
> > + eax = cpuid_eax(SGX_CPUID);
> > +
> > + if (eax & _X86_FEATURE_SGX1)
> > + set_cpu_cap(c, X86_FEATURE_SGX1);
> > +
> > + if (eax & _X86_FEATURE_SGX2)
> > + set_cpu_cap(c, X86_FEATURE_SGX2);
> > +
> > + if (eax & _X86_FEATURE_SGX_ENCLV)
> > + set_cpu_cap(c, X86_FEATURE_SGX_ENCLV);
> > +
> > + if (eax & _X86_FEATURE_SGX_ENCLS_C)
> > + set_cpu_cap(c, X86_FEATURE_SGX_ENCLS_C);
>
>
> Look at arch/x86/kernel/cpu/scattered.c for how to do this properly.

Thank you. I guess I understand what you want me to do i.e.

+ { X86_FEATURE_SGX1, CPUID_EAX, 0, 0x00000012, 0 },
+ { X86_FEATURE_SGX2, CPUID_EAX, 1, 0x00000012, 0 },
+ { X86_FEATURE_ENCLV, CPUID_EAX, 5, 0x00000012, 0 },
+ { X86_FEATURE_ENCLS_C, CPUID_EAX, 6, 0x00000012, 0 },

What puzzles me is that I cannot find any call site for
get_scattered_cpuid_leaf():

$ git grep get_scattered
arch/x86/kernel/cpu/cpu.h:extern u32 get_scattered_cpuid_leaf(unsigned int level,
arch/x86/kernel/cpu/scattered.c:u32 get_scattered_cpuid_leaf(unsigned int level, unsigned int sub_leaf,
arch/x86/kernel/cpu/scattered.c:EXPORT_SYMBOL_GPL(get_scattered_cpuid_leaf);

/Jarkko