Re: [PATCH 2/2] virtio: replace arch_has_restricted_virtio_memory_access()

Borislav Petkov
2022-04-27T12:28:52Z

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 <linux/mm.h>
> > > #include <linux/mem_encrypt.h>
> > > #include <linux/cc_platform.h>
> > > +#include <linux/platform-feature.h>
> > > #include <asm/setup.h>
> > > #include <asm/sections.h>
> > > @@ -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);
> >
> > Huh, what does that have to do with SME?
>
> I picked the function where sev_status is being set, as this seemed to be
> the correct place to set the feature bit.

What I don't understand is what does restricted memory access have to do
with AMD SEV and how does play together with what you guys are trying to
do?

The big picture pls.

--
Regards/Gruss,
Boris.