On 27.04.22 16:09, Tom Lendacky wrote: > On 4/27/22 07:37, Juergen Gross wrote: >> On 27.04.22 14:28, Borislav Petkov wrote: >>> On Wed, Apr 27, 2022 at 08:37:31AM +0200, Juergen Gross wrote: >>>> On 26.04.22 19:35, Borislav Petkov wrote: >>>>> On Tue, Apr 26, 2022 at 03:40:21PM +0200, Juergen Gross wrote: >>>>>>    /* protected virtualization */ >>>>>>    static void pv_init(void) >>>>>>    { >>>>>>        if (!is_prot_virt_guest()) >>>>>>            return; >>>>>> +    platform_set_feature(PLATFORM_VIRTIO_RESTRICTED_MEM_ACCESS); >>>>> >>>>> Kinda long-ish for my taste. I'll probably call it: >>>>> >>>>>     platform_set() >>>>> >>>>> as it is implicit that it sets a feature bit. >>>> >>>> Okay, fine with me. >>>> >>>>> >>>>>> diff --git a/arch/x86/mm/mem_encrypt_identity.c >>>>>> b/arch/x86/mm/mem_encrypt_identity.c >>>>>> index b43bc24d2bb6..6043ba6cd17d 100644 >>>>>> --- a/arch/x86/mm/mem_encrypt_identity.c >>>>>> +++ b/arch/x86/mm/mem_encrypt_identity.c >>>>>> @@ -40,6 +40,7 @@ >>>>>>    #include >>>>>>    #include >>>>>>    #include >>>>>> +#include >>>>>>    #include >>>>>>    #include >>>>>> @@ -566,6 +567,10 @@ void __init sme_enable(struct boot_params *bp) >>>>>>        } else { >>>>>>            /* SEV state cannot be controlled by a command line option */ >>>>>>            sme_me_mask = me_mask; >>>>>> + >>>>>> +        /* Set restricted memory access for virtio. */ >>>>>> +        platform_set_feature(PLATFORM_VIRTIO_RESTRICTED_MEM_ACCESS); > > This is way early in the boot, but it appears that marking the platform feature > bitmap as __read_mostly puts this in the .data section, so avoids the issue of > bss being cleared. In V2 (not yet posted) I have moved the call to sev_setup_arch(). > > TDX support also uses the arch_has_restricted_virtio_memory_access() function > and will need to be updated. Yes. > Seems like a lot of changes, I just wonder if the the arch_has...() function > couldn't be updated to also include a Xen check? This was not seen to be a nice solution. And TBH, I think this series is making the code much cleaner. Look at the diffstat of this patch. Juergen