When the management layer queries a binary built using --disable-tpm
for TPM devices, it gets confused by getting empty responses:
{ "execute": "query-tpm" }
{
"return": [
]
}
{ "execute": "query-tpm-types" }
{
"return": [
]
}
{ "execute": "query-tpm-models" }
{
"return": [
]
}
Make it clearer by returning an error, mentioning the feature is
disabled:
{ "execute": "query-tpm" }
{
"error": {
"class": "GenericError",
"desc": "this feature or command is not currently supported"
}
}
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Why not make the qapi schema conditional?
---
stubs/tpm.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/stubs/tpm.c b/stubs/tpm.c
index 9bded191d9d..8c904215b39 100644
--- a/stubs/tpm.c
+++ b/stubs/tpm.c
@@ -7,6 +7,8 @@
#include "qemu/osdep.h"
#include "qapi/qapi-commands-tpm.h"
+#include "qapi/qmp/qerror.h"
+#include "qapi/error.h"
#include "sysemu/tpm.h"
#include "hw/acpi/tpm.h"
@@ -21,16 +23,19 @@ void tpm_cleanup(void)
TPMInfoList *qmp_query_tpm(Error **errp)
{
+ error_setg(errp, QERR_UNSUPPORTED);
return NULL;
}
TpmTypeList *qmp_query_tpm_types(Error **errp)
{
+ error_setg(errp, QERR_UNSUPPORTED);
return NULL;
}
TpmModelList *qmp_query_tpm_models(Error **errp)
{
+ error_setg(errp, QERR_UNSUPPORTED);
return NULL;
}
--
2.31.1