Re: [PATCH 4/4] qemu: validate: use domcaps for tpm validation

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

 



On 6/21/22 4:11 AM, Michal Prívozník wrote:
> On 6/18/22 20:32, Cole Robinson wrote:
>> Replace tpm->type and tpm->model qemuCaps validation with the
>> similar logic in domcaps.
>>
>> Signed-off-by: Cole Robinson <crobinso@xxxxxxxxxx>
>> ---
>>  src/qemu/qemu_validate.c | 71 ++++++++++------------------------------
>>  1 file changed, 17 insertions(+), 54 deletions(-)
>>
>> diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
>> index db47fcaa9c..39210ba65b 100644
>> --- a/src/qemu/qemu_validate.c
>> +++ b/src/qemu/qemu_validate.c
>> @@ -4750,7 +4750,7 @@ qemuValidateDomainDeviceDefTPM(virDomainTPMDef *tpm,
>>                                 const virDomainDef *def,
>>                                 virQEMUCaps *qemuCaps)
>>  {
>> -    virQEMUCapsFlags flag;
>> +    virDomainCapsDeviceTPM tpmCaps = { 0 };
>>  
>>      switch (tpm->version) {
>>      case VIR_DOMAIN_TPM_VERSION_1_2:
>> @@ -4781,57 +4781,28 @@ qemuValidateDomainDeviceDefTPM(virDomainTPMDef *tpm,
>>          break;
>>      }
>>  
>> -    switch (tpm->type) {
>> -    case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH:
>> -        if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_TPM_PASSTHROUGH))
>> -            goto no_support;
>> -        break;
>> -
>> -    case VIR_DOMAIN_TPM_TYPE_EMULATOR:
>> -        if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_TPM_EMULATOR))
>> -            goto no_support;
>> +    virQEMUCapsFillDomainDeviceTPMCaps(qemuCaps, &tpmCaps);
>>  
>> -        break;
>> -    case VIR_DOMAIN_TPM_TYPE_LAST:
>> -        break;
>> +    if (!VIR_DOMAIN_CAPS_ENUM_IS_SET(tpmCaps.backendModel, tpm->type)) {
>> +        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
>> +                       _("The QEMU executable %s does not support TPM "
>> +                         "backend type %s"),
>> +                       def->emulator,
>> +                       virDomainTPMBackendTypeToString(tpm->type));
> 
> Whoa, very nice idea! And looking around the file I can see it used
> already. How could this slipped by me? I mean, the more I think about it
> the more possibilities for code deduplication I see. And on the flip
> side - we would be motivated to keep domcaps on the bleeding edge.
> 

Heh, it's your code :)

https://listman.redhat.com/archives/libvir-list/2020-November/211844.html

But yes I agree. domcaps can be a detriment to apps if it's not
reliable, and duplicating the qemuCaps checking is always going to lead
to issues like this. It would be nice if we could normalize adding
domcaps coverage for basic qemuCaps validation cases like this.

Thanks,
Cole




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux