[PATCH v3 06/12] conf: Add tpm helpers for future use

Luke Yue lukedyue at gmail.com
Mon Nov 29 14:19:00 UTC 2021


On Fri, 2021-11-26 at 16:43 +0100, Martin Kletzander wrote:
> On Wed, Nov 10, 2021 at 10:24:25PM +0800, Luke Yue wrote:
> > Currently it will only be used in the test driver.
> > 
> > Signed-off-by: Luke Yue <lukedyue at gmail.com>
> > ---
> > src/conf/domain_conf.c   | 67
> > ++++++++++++++++++++++++++++++++++++++++
> > src/conf/domain_conf.h   |  6 ++++
> > src/libvirt_private.syms |  2 ++
> > 3 files changed, 75 insertions(+)
> > 
> > diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> > index 3193120b79..512bfab9e9 100644
> > --- a/src/conf/domain_conf.c
> > +++ b/src/conf/domain_conf.c
> > @@ -16931,6 +16931,73 @@ virDomainVsockDefEquals(const
> > virDomainVsockDef *a,
> > }
> > 
> > 
> > +static bool
> > +virDomainTPMDefEquals(const virDomainTPMDef *a,
> > +                      const virDomainTPMDef *b)
> > +{
> > +    if (a->type != b->type)
> > +        return false;
> > +
> > +    if (a->model != b->model)
> > +        return false;
> > +
> > +    if (a->version != b->version)
> > +        return false;
> > +
> > +    if (a->type == VIR_DOMAIN_TPM_TYPE_PASSTHROUGH) {
> > +        if (STRNEQ_NULLABLE(a-
> > >data.passthrough.source.data.file.path,
> > +                            b-
> > >data.passthrough.source.data.file.path))
> 
> This will not compile as `source` is a pointer here.
> 

I just noticed in commit 42b0000, the `source` was changed to be a
pointer, will fix in next version.

> > +            return false;
> > +    } else {
> > +        if (a->data.emulator.hassecretuuid != b-
> > >data.emulator.hassecretuuid)
> > +            return false;
> > +
> > +        if (a->data.emulator.hassecretuuid == true &&
> > +            memcmp(a->data.emulator.secretuuid,
> > +                   b->data.emulator.secretuuid,
> > +                   VIR_UUID_BUFLEN))
> > +            return false;
> > +
> > +        if (a->data.emulator.persistent_state !=
> > +            b->data.emulator.persistent_state)
> 
> Also it would make sense to try to detach a device without all the
> information, e.g. those that libvirt itself adds by default if they
> are
> missing, or in this case when persistent_state is set to the
> specified
> default (in formatdomain.html this is said to be "no" currently, but
> not
> filled in).  Luckily the test driver itself does not do any of this,
> so
> I guess it's fine here.

Hmm, I will look into how libvirt adds these default devices and refine
this function in next version or in the future.

Thanks,
Luke




More information about the libvir-list mailing list