On Wed, Jul 08, 2020 at 10:19:11 -0400, Stefan Berger wrote: > On 7/8/20 10:10 AM, Peter Krempa wrote: > > On Wed, Jul 08, 2020 at 09:57:56 -0400, Stefan Berger wrote: > > > From: Stefan Berger <stefanb@xxxxxxxxxxxxx> > > > > > > The firmware (SLOF) on QEMU for ppc64 does not support TPM 1.2, so > > > prevent the choice of TPM 1.2 when the SPAPR device model is chosen > > > and use a default of '2.0' (TPM 2) for the backend. > > > > > > Signed-off-by: Stefan Berger <stefanb@xxxxxxxxxxxxx> > > > --- > > > src/qemu/qemu_validate.c | 14 ++++++++++++-- > > > 1 file changed, 12 insertions(+), 2 deletions(-) > > > > > > diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c > > > index bd7590a00a..f4d71aebf5 100644 > > > --- a/src/qemu/qemu_validate.c > > > +++ b/src/qemu/qemu_validate.c > > > @@ -3645,8 +3645,12 @@ qemuValidateDomainDeviceDefTPM(virDomainTPMDef *tpm, > > > virQEMUCapsFlags flag; > > > /* TPM 1.2 and 2 are not compatible, so we choose a specific version here */ > > > - if (tpm->version == VIR_DOMAIN_TPM_VERSION_DEFAULT) > > > - tpm->version = VIR_DOMAIN_TPM_VERSION_1_2; > > > + if (tpm->version == VIR_DOMAIN_TPM_VERSION_DEFAULT) { > > > + if (tpm->model == VIR_DOMAIN_TPM_MODEL_SPAPR) > > > + tpm->version = VIR_DOMAIN_TPM_VERSION_2_0; > > > + else > > > + tpm->version = VIR_DOMAIN_TPM_VERSION_1_2; > > > + } > > This is the validation callback, which must not modify the config. > > > > qemuDomainDefTPMsPostParse is the correct place. Beaware that the > > function has a short-circuit condition at the beginning. > > > So should I remove the existing code that already set the version to > VIR_DOMAIN_TPM_VERSION_1_2 and move this into that other function? Ideally yes as a refactor prior to your change. The XML parser shouldn't really be setting defaults or validating any form of interdependance of values.