On 5/11/21 1:41 PM, Borislav Petkov wrote: > On Tue, May 11, 2021 at 01:29:00PM -0500, Brijesh Singh wrote: >> I ignored it, because I thought I still need to initialize the value to >> zero because it does not go into .bss section which gets initialized to >> zero by kernel on boot. >> >> I guess I was wrong, maybe compiler or kernel build ensures that >> ghcb_version variable to be init'ed to zero because its marked static ? > Yes. > > If in doubt, always look at the generated asm: > > make arch/x86/kernel/sev.s > > You can see the .zero 2 gas directive there, where the variable is > defined. > >> In patch #4, you will see that I increase the GHCB max protocol version >> to 2, and then min_t() will choose the lower value. I didn't combine >> version bump and caching into same patch because I felt I will be asked >> to break them into two logical patches. > Hmm, what would be the reasoning to keep the version bump in a separate > patch? Version 2 of the spec adds bunch of NAEs, and several of them are optional except the hyervisor features NAE. IMO, a guest should bump the GHCB version only after it has implemented all the required NAEs from the version 2. It may help during the git bisect of the guest kernel -- mainly when the hypervisor supports the higher version.