qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] hw/i386/pc: Document pc_system_ovmf_table_find


From: Tom Lendacky
Subject: Re: [PATCH] hw/i386/pc: Document pc_system_ovmf_table_find
Date: Mon, 28 Jun 2021 17:03:31 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1

On 6/22/21 7:58 AM, Dov Murik wrote:
> +cc: Tom Lendacky
> 
> On 22/06/2021 15:47, Philippe Mathieu-Daudé wrote:
>> On 6/22/21 2:44 PM, Dov Murik wrote:
>>> Suggested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>>> Signed-off-by: Dov Murik <dovmurik@linux.ibm.com>
>>> ---
>>>  hw/i386/pc_sysfw.c | 14 ++++++++++++++
>>>  1 file changed, 14 insertions(+)
>>>
>>> diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c
>>> index 6ce37a2b05..e8d20cb83f 100644
>>> --- a/hw/i386/pc_sysfw.c
>>> +++ b/hw/i386/pc_sysfw.c
>>> @@ -176,6 +176,20 @@ static void pc_system_parse_ovmf_flash(uint8_t 
>>> *flash_ptr, size_t flash_size)
>>>      ovmf_table += tot_len;
>>>  }
>>>  
>>> +/**
>>> + * pc_system_ovmf_table_find - Find the data associated with an entry in 
>>> OVMF's
>>> + * reset vector GUIDed table.
>>> + *
>>> + * @entry: GUID string of the entry to lookup
>>> + * @data: Filled with a pointer to the entry's value (if not NULL)
>>> + * @data_len: Filled with the length of the entry's value (if not NULL). 
>>> Pass
>>> + *            NULL here if the length of data is known.
>>> + *
>>> + * Note that this function must be called after the OVMF table was found 
>>> and
>>> + * copied by pc_system_parse_ovmf_flash().
>>
>> What about replacing this comment by:
>>
>>   assert(ovmf_table && ovmf_table_len);
>>
> 
> I think this will break things: in target/i386/sev.c we have SEV-ES code
> that calls pc_system_ovmf_table_find() and can deal with the case when
> there's no OVMF table.  An assert will break it.

Right, what would be best is to differentiate between an OVMF table that
isn't present in the flash vs the fact that pc_system_parse_ovmf_flash()
wasn't called, asserting only on the latter.

Thanks,
Tom

> 
> 
>> Otherwise,
>>
>> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>>
> 
> Thanks!
> 
> -Dov
> 
> 
> 
>> Thanks!
>>
>>> + *
>>> + * Return: true if the entry was found in the OVMF table; false otherwise.
>>> + */
>>>  bool pc_system_ovmf_table_find(const char *entry, uint8_t **data,
>>>                                 int *data_len)
>>>  {
>>>
>>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]