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

Juergen Gross
2022-04-27T06:37:37Z

[-- Attachment #1.1.1: Type: text/plain, Size: 1522 bytes --]

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.

Looking at it in more detail it might be preferable to do it in
sev_setup_arch() instead.

Juergen

[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3149 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]