Re: [PATCH v9 03/24] virt: sev-guest: Make payload a variable length array

Nikunj A. Dadhania
2024-06-23T16:16:21Z

On 6/21/2024 10:24 PM, Borislav Petkov wrote:
> On Fri, May 31, 2024 at 10:00:17AM +0530, Nikunj A Dadhania wrote:
>> Currently, guest message is PAGE_SIZE bytes and payload is hard-coded to
>> 4000 bytes, assuming snp_guest_msg_hdr structure as 96 bytes.
>>
>> Remove the structure size assumption and hard-coding of payload size and
>> instead use variable length array.
>
> I don't understand here what hard-coding is being removed?
>
> It is simply done differently:
>
> from
>
>> - snp_dev->request = alloc_shared_pages(dev, sizeof(struct snp_guest_msg));
>
> to
>
>> + snp_dev->request = alloc_shared_pages(dev, SNP_GUEST_MSG_SIZE);
>
> Maybe I'm missing the point here but do you mean by removing the hard-coding
> this:
>
> +#define SNP_GUEST_MSG_SIZE 4096
> +#define SNP_GUEST_MSG_PAYLOAD_SIZE (SNP_GUEST_MSG_SIZE - sizeof(struct snp_guest_msg))
>
> where the msg payload size will get computed at build time and you won't have
> to do that 4000 in the struct definition:
>
> u8 payload[4000];
>
> ?

Yes, payload was earlier fixed at 4000 bytes, without considering the size of snp_guest_msg.

Regards
Nikunj