[Qemu-devel] [PATCH] Fix compile with --disable-tpm

BALATON Zoltan posted 1 patch 6 years, 5 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20171023102903.256AF7456A0@zero.eik.bme.hu
Test s390x passed
There is a newer version of this series
tpm.c | 7 ++++---
vl.c  | 2 ++
2 files changed, 6 insertions(+), 3 deletions(-)
[Qemu-devel] [PATCH] Fix compile with --disable-tpm
Posted by BALATON Zoltan 6 years, 5 months ago
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
---
 tpm.c | 7 ++++---
 vl.c  | 2 ++
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/tpm.c b/tpm.c
index 45520f5..b625cd4 100644
--- a/tpm.c
+++ b/tpm.c
@@ -30,8 +30,6 @@ void tpm_register_model(enum TpmModel model)
     tpm_models[model] = true;
 }
 
-#ifdef CONFIG_TPM
-
 static const TPMBackendClass *
 tpm_be_find_by_type(enum TpmType type)
 {
@@ -48,6 +46,8 @@ tpm_be_find_by_type(enum TpmType type)
     return TPM_BACKEND_CLASS(oc);
 }
 
+#ifdef CONFIG_TPM
+
 /*
  * Walk the list of available TPM backend drivers and display them on the
  * screen.
@@ -208,8 +208,9 @@ TPMInfoList *qmp_query_tpm(Error **errp)
             continue;
         }
         info = g_new0(TPMInfoList, 1);
+#ifdef CONFIG_TPM
         info->value = tpm_backend_query_tpm(drv);
-
+#endif
         if (!cur_item) {
             head = cur_item = info;
         } else {
diff --git a/vl.c b/vl.c
index 0723835..dbfd06d 100644
--- a/vl.c
+++ b/vl.c
@@ -4905,7 +4905,9 @@ int main(int argc, char **argv, char **envp)
     res_free();
 
     /* vhost-user must be cleaned up before chardevs.  */
+#ifdef CONFIG_TPM
     tpm_cleanup();
+#endif
     net_cleanup();
     audio_cleanup();
     monitor_cleanup();
-- 
2.7.6


Re: [Qemu-devel] [PATCH] Fix compile with --disable-tpm
Posted by Philippe Mathieu-Daudé 6 years, 5 months ago
Hi Zoltan,

On 10/23/2017 07:24 AM, BALATON Zoltan wrote:
> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
> ---
>  tpm.c | 7 ++++---
>  vl.c  | 2 ++
>  2 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/tpm.c b/tpm.c
> index 45520f5..b625cd4 100644
> --- a/tpm.c
> +++ b/tpm.c
> @@ -30,8 +30,6 @@ void tpm_register_model(enum TpmModel model)
>      tpm_models[model] = true;
>  }
>  
> -#ifdef CONFIG_TPM
> -
>  static const TPMBackendClass *
>  tpm_be_find_by_type(enum TpmType type)
>  {
> @@ -48,6 +46,8 @@ tpm_be_find_by_type(enum TpmType type)
>      return TPM_BACKEND_CLASS(oc);
>  }
>  
> +#ifdef CONFIG_TPM
> +
>  /*
>   * Walk the list of available TPM backend drivers and display them on the
>   * screen.
> @@ -208,8 +208,9 @@ TPMInfoList *qmp_query_tpm(Error **errp)
>              continue;
>          }
>          info = g_new0(TPMInfoList, 1);
> +#ifdef CONFIG_TPM
>          info->value = tpm_backend_query_tpm(drv);
> -
> +#endif
>          if (!cur_item) {
>              head = cur_item = info;
>          } else {
> diff --git a/vl.c b/vl.c
> index 0723835..dbfd06d 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -4905,7 +4905,9 @@ int main(int argc, char **argv, char **envp)
>      res_free();
>  
>      /* vhost-user must be cleaned up before chardevs.  */
> +#ifdef CONFIG_TPM
>      tpm_cleanup();
> +#endif
>      net_cleanup();
>      audio_cleanup();
>      monitor_cleanup();

Can you instead add tpm_cleanup() in stubs/tpm.c?

Regards,

Phil.

Re: [Qemu-devel] [PATCH] Fix compile with --disable-tpm
Posted by Philippe Mathieu-Daudé 6 years, 5 months ago
On 10/23/2017 08:09 AM, Philippe Mathieu-Daudé wrote:
> On 10/23/2017 07:24 AM, BALATON Zoltan wrote:
[...]
>>          info = g_new0(TPMInfoList, 1);
>> +#ifdef CONFIG_TPM
>>          info->value = tpm_backend_query_tpm(drv);
>> -
>> +#endif
>>          if (!cur_item) {
>>              head = cur_item = info;
>>          } else {
>> diff --git a/vl.c b/vl.c
>> index 0723835..dbfd06d 100644
>> --- a/vl.c
>> +++ b/vl.c
>> @@ -4905,7 +4905,9 @@ int main(int argc, char **argv, char **envp)
>>      res_free();
>>  
>>      /* vhost-user must be cleaned up before chardevs.  */
>> +#ifdef CONFIG_TPM
>>      tpm_cleanup();
>> +#endif
>>      net_cleanup();
>>      audio_cleanup();
>>      monitor_cleanup();
> 
> Can you instead add tpm_cleanup() in stubs/tpm.c?

and tpm_backend_query_tpm() ;)

Re: [Qemu-devel] [PATCH] Fix compile with --disable-tpm
Posted by BALATON Zoltan 6 years, 5 months ago
On Mon, 23 Oct 2017, Philippe Mathieu-Daudé wrote:
> On 10/23/2017 08:09 AM, Philippe Mathieu-Daudé wrote:
>> On 10/23/2017 07:24 AM, BALATON Zoltan wrote:
> [...]
>>>          info = g_new0(TPMInfoList, 1);
>>> +#ifdef CONFIG_TPM
>>>          info->value = tpm_backend_query_tpm(drv);
>>> -
>>> +#endif
>>>          if (!cur_item) {
>>>              head = cur_item = info;
>>>          } else {
>>> diff --git a/vl.c b/vl.c
>>> index 0723835..dbfd06d 100644
>>> --- a/vl.c
>>> +++ b/vl.c
>>> @@ -4905,7 +4905,9 @@ int main(int argc, char **argv, char **envp)
>>>      res_free();
>>>
>>>      /* vhost-user must be cleaned up before chardevs.  */
>>> +#ifdef CONFIG_TPM
>>>      tpm_cleanup();
>>> +#endif
>>>      net_cleanup();
>>>      audio_cleanup();
>>>      monitor_cleanup();
>>
>> Can you instead add tpm_cleanup() in stubs/tpm.c?
>
> and tpm_backend_query_tpm() ;)

The v2 I've sent avoids #ifdefs outside tpm.c so isn't that acceptable? Do 
we still need stubs for these? I don't understand how stubs are compiled 
so if it's needed can you point me to an example what needs to be done to 
add stubs for these? (I'm not familiar with this, just tried to fix a 
compile problem I've met but I don't really know what's the correct way to 
fix this. I'd expect the author of the patch that broke it to fix it 
instead or at least review this to avoid breaking it more.)

Regards,
BALATON Zoltan