diff mbox series

tpm: add stubs for qdev-prop-tpm

Message ID 20171218121635.25494-1-cohuck@redhat.com
State New
Headers show
Series tpm: add stubs for qdev-prop-tpm | expand

Commit Message

Cornelia Huck Dec. 18, 2017, 12:16 p.m. UTC
Building with --disable-tpm yields

../hw/core/qdev-properties-system.o: In function `set_tpm':
/home/cohuck/git/qemu/hw/core/qdev-properties-system.c:274: undefined reference to `qemu_find_tpm_be'
/home/cohuck/git/qemu/hw/core/qdev-properties-system.c:278: undefined reference to `tpm_backend_init'
../hw/core/qdev-properties-system.o: In function `release_tpm':
/home/cohuck/git/qemu/hw/core/qdev-properties-system.c:291: undefined reference to `tpm_backend_reset'

Add some proper stubs for those functions.

Fixes: 493b78303532 ("qdev: add DEFINE_PROP_TPMBE")
Reported-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
 stubs/tpm.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

Comments

Paolo Bonzini Dec. 18, 2017, 12:27 p.m. UTC | #1
On 18/12/2017 13:16, Cornelia Huck wrote:
> Building with --disable-tpm yields
> 
> ../hw/core/qdev-properties-system.o: In function `set_tpm':
> /home/cohuck/git/qemu/hw/core/qdev-properties-system.c:274: undefined reference to `qemu_find_tpm_be'
> /home/cohuck/git/qemu/hw/core/qdev-properties-system.c:278: undefined reference to `tpm_backend_init'
> ../hw/core/qdev-properties-system.o: In function `release_tpm':
> /home/cohuck/git/qemu/hw/core/qdev-properties-system.c:291: undefined reference to `tpm_backend_reset'
> 
> Add some proper stubs for those functions.
> 
> Fixes: 493b78303532 ("qdev: add DEFINE_PROP_TPMBE")
> Reported-by: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Cornelia Huck <cohuck@redhat.com>

Maybe all the new code can be moved from qdev-properties-system.c to
hw/tpm/qdev.c instead?  (Adding stubs should be the last resort,
especially if the stubs are never used outside system emulation).

Thanks,

Paolo

> ---
>  stubs/tpm.c | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/stubs/tpm.c b/stubs/tpm.c
> index c18aac1c73..97457e0646 100644
> --- a/stubs/tpm.c
> +++ b/stubs/tpm.c
> @@ -7,6 +7,7 @@
>  #include "qemu/osdep.h"
>  #include "sysemu/tpm.h"
>  #include "qmp-commands.h"
> +#include "sysemu/tpm_backend.h"
>  
>  int tpm_init(void)
>  {
> @@ -31,3 +32,17 @@ TpmModelList *qmp_query_tpm_models(Error **errp)
>  {
>      return NULL;
>  }
> +
> +TPMBackend *qemu_find_tpm_be(const char *id)
> +{
> +    return NULL;
> +}
> +
> +int tpm_backend_init(TPMBackend *s, TPMIf *tpmif, Error **errp)
> +{
> +    return -1;
> +}
> +
> +void tpm_backend_reset(TPMBackend *s)
> +{
> +}
>
Cornelia Huck Dec. 18, 2017, 12:35 p.m. UTC | #2
On Mon, 18 Dec 2017 13:27:09 +0100
Paolo Bonzini <pbonzini@redhat.com> wrote:

> On 18/12/2017 13:16, Cornelia Huck wrote:
> > Building with --disable-tpm yields
> > 
> > ../hw/core/qdev-properties-system.o: In function `set_tpm':
> > /home/cohuck/git/qemu/hw/core/qdev-properties-system.c:274: undefined reference to `qemu_find_tpm_be'
> > /home/cohuck/git/qemu/hw/core/qdev-properties-system.c:278: undefined reference to `tpm_backend_init'
> > ../hw/core/qdev-properties-system.o: In function `release_tpm':
> > /home/cohuck/git/qemu/hw/core/qdev-properties-system.c:291: undefined reference to `tpm_backend_reset'
> > 
> > Add some proper stubs for those functions.
> > 
> > Fixes: 493b78303532 ("qdev: add DEFINE_PROP_TPMBE")
> > Reported-by: Thomas Huth <thuth@redhat.com>
> > Signed-off-by: Cornelia Huck <cohuck@redhat.com>  
> 
> Maybe all the new code can be moved from qdev-properties-system.c to
> hw/tpm/qdev.c instead?  (Adding stubs should be the last resort,
> especially if the stubs are never used outside system emulation).

Probably hw/tpm/tpm-tis.c?
Marc-André Lureau Dec. 18, 2017, 12:37 p.m. UTC | #3
On Mon, Dec 18, 2017 at 1:35 PM, Cornelia Huck <cohuck@redhat.com> wrote:
> On Mon, 18 Dec 2017 13:27:09 +0100
> Paolo Bonzini <pbonzini@redhat.com> wrote:
>
>> On 18/12/2017 13:16, Cornelia Huck wrote:
>> > Building with --disable-tpm yields
>> >
>> > ../hw/core/qdev-properties-system.o: In function `set_tpm':
>> > /home/cohuck/git/qemu/hw/core/qdev-properties-system.c:274: undefined reference to `qemu_find_tpm_be'
>> > /home/cohuck/git/qemu/hw/core/qdev-properties-system.c:278: undefined reference to `tpm_backend_init'
>> > ../hw/core/qdev-properties-system.o: In function `release_tpm':
>> > /home/cohuck/git/qemu/hw/core/qdev-properties-system.c:291: undefined reference to `tpm_backend_reset'
>> >
>> > Add some proper stubs for those functions.
>> >
>> > Fixes: 493b78303532 ("qdev: add DEFINE_PROP_TPMBE")
>> > Reported-by: Thomas Huth <thuth@redhat.com>
>> > Signed-off-by: Cornelia Huck <cohuck@redhat.com>
>>
>> Maybe all the new code can be moved from qdev-properties-system.c to
>> hw/tpm/qdev.c instead?  (Adding stubs should be the last resort,
>> especially if the stubs are never used outside system emulation).
>
> Probably hw/tpm/tpm-tis.c?

Rather hw/tpm/tpm_util.c (the PROP is going to be shared by various
devices soon)

thanks
Philippe Mathieu-Daudé Dec. 18, 2017, 3:58 p.m. UTC | #4
>> Add some proper stubs for those functions.
>>
>> Fixes: 493b78303532 ("qdev: add DEFINE_PROP_TPMBE")
>> Reported-by: Thomas Huth <thuth@redhat.com>
>> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
>
> Maybe all the new code can be moved from qdev-properties-system.c to
> hw/tpm/qdev.c instead?  (Adding stubs should be the last resort,
> especially if the stubs are never used outside system emulation).

This is worth an entry in HACKING :)
diff mbox series

Patch

diff --git a/stubs/tpm.c b/stubs/tpm.c
index c18aac1c73..97457e0646 100644
--- a/stubs/tpm.c
+++ b/stubs/tpm.c
@@ -7,6 +7,7 @@ 
 #include "qemu/osdep.h"
 #include "sysemu/tpm.h"
 #include "qmp-commands.h"
+#include "sysemu/tpm_backend.h"
 
 int tpm_init(void)
 {
@@ -31,3 +32,17 @@  TpmModelList *qmp_query_tpm_models(Error **errp)
 {
     return NULL;
 }
+
+TPMBackend *qemu_find_tpm_be(const char *id)
+{
+    return NULL;
+}
+
+int tpm_backend_init(TPMBackend *s, TPMIf *tpmif, Error **errp)
+{
+    return -1;
+}
+
+void tpm_backend_reset(TPMBackend *s)
+{
+}