mirror of https://github.com/xemu-project/xemu.git
Error reporting patches for 2019-12-17
-----BEGIN PGP SIGNATURE----- iQJGBAABCAAwFiEENUvIs9frKmtoZ05fOHC0AOuRhlMFAl352RQSHGFybWJydUBy ZWRoYXQuY29tAAoJEDhwtADrkYZTQYcQAJlKQf/RatBLXeKTwrm9M4zGFMHf+5el prE+Rq6ve5Njkrtzg6Q59hXrTIoFK7DUpFYWz/YQf+zxaG/kguvneyEaFvLXdQbe peVY20sRF00EUa5nc8B+kGC6UaqPFr7pQKk3LZzQNdHZDMGkPBiKFYLtRv/EW9Ao 1bNq0hc2PcUBdTi1l2HP2dsmvrkiFSZ3SaApNDh/VD5C/HFVnjkDi9+0Uw+l9Y9/ md+lZgJJNDiXoT+vQBn7VKUjOHU6kFdS1RiJu9yWesWr3dL8G6NdQzFo1slidMH3 3LvBKeCuIfjUnD8Whsxi84a5FT1eCRGvm4QHLzG+SmY4D2FlLpnG+cFdLkavFrcI 5s4lukSt3HwK/Y8NJ2kXqODPHcSpdURx5ySkiCx2jz3czw8D6UbWxQ+bYAZ0GUrS 6L8UjLnOCq6z548QSrqE5nirGdl4MRVCWQjLPHxhhA8rkznF3MaNOr1nexae9I2m o/6jRQVFf067mTEUlGEP+UfU/6mp+doxZxj1/cSwZ+tVrAC3AvFnDeiwCCXqGD2u wRxIgr2gtMF9kSIyUc/cIyOcnKePoaZgcpwf03/mVDe4heiq2XThAzQ24sVxntsG sXVF4+4nBegcuZYA87Uw4sW+4HAGt+8BbzazXXIr8RwiSBlj+d6d13RdKv+ztKUN D6OkIujmX926 =sbbP -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2019-12-17-v2' into staging Error reporting patches for 2019-12-17 # gpg: Signature made Wed 18 Dec 2019 07:45:24 GMT # gpg: using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653 # gpg: issuer "armbru@redhat.com" # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" [full] # gpg: aka "Markus Armbruster <armbru@pond.sub.org>" [full] # Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653 * remotes/armbru/tags/pull-error-2019-12-17-v2: (35 commits) nbd: assert that Error** is not NULL in nbd_iter_channel_error hw/vfio/ap: drop local_err from vfio_ap_realize backends/cryptodev: drop local_err from cryptodev_backend_complete() include/qom/object.h: rename Error ** parameter to more common errp hw/usb: rename Error ** parameter to more common errp hw/tpm: rename Error ** parameter to more common errp hw/sd: drop extra whitespace in sdhci_sysbus_realize() header hw/s390x: rename Error ** parameter to more common errp monitor/qmp-cmds: rename Error ** parameter to more common errp qga: rename Error ** parameter to more common errp hw/i386/amd_iommu: rename Error ** parameter to more common errp block/snapshot: rename Error ** parameter to more common errp hw/core/qdev: cleanup Error ** variables 9pfs: make Error **errp const where it is appropriate ppc: make Error **errp const where it is appropriate Revert "ppc: well form kvmppc_hint_smt_possible error hint helper" qdev-monitor: make Error **errp const where it is appropriate vnc: drop Error pointer indirection in vnc_client_io_error hmp: drop Error pointer indirection in hmp_handle_error error: make Error **errp const where it is appropriate ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
31b2bd89b9
|
@ -176,19 +176,10 @@ cryptodev_backend_complete(UserCreatable *uc, Error **errp)
|
||||||
{
|
{
|
||||||
CryptoDevBackend *backend = CRYPTODEV_BACKEND(uc);
|
CryptoDevBackend *backend = CRYPTODEV_BACKEND(uc);
|
||||||
CryptoDevBackendClass *bc = CRYPTODEV_BACKEND_GET_CLASS(uc);
|
CryptoDevBackendClass *bc = CRYPTODEV_BACKEND_GET_CLASS(uc);
|
||||||
Error *local_err = NULL;
|
|
||||||
|
|
||||||
if (bc->init) {
|
if (bc->init) {
|
||||||
bc->init(backend, &local_err);
|
bc->init(backend, errp);
|
||||||
if (local_err) {
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
|
||||||
|
|
||||||
out:
|
|
||||||
error_propagate(errp, local_err);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void cryptodev_backend_set_used(CryptoDevBackend *backend, bool used)
|
void cryptodev_backend_set_used(CryptoDevBackend *backend, bool used)
|
||||||
|
|
|
@ -866,6 +866,7 @@ typedef struct NBDReplyChunkIter {
|
||||||
static void nbd_iter_channel_error(NBDReplyChunkIter *iter,
|
static void nbd_iter_channel_error(NBDReplyChunkIter *iter,
|
||||||
int ret, Error **local_err)
|
int ret, Error **local_err)
|
||||||
{
|
{
|
||||||
|
assert(local_err && *local_err);
|
||||||
assert(ret < 0);
|
assert(ret < 0);
|
||||||
|
|
||||||
if (!iter->ret) {
|
if (!iter->ret) {
|
||||||
|
|
|
@ -426,7 +426,7 @@ fail:
|
||||||
}
|
}
|
||||||
|
|
||||||
int bdrv_all_delete_snapshot(const char *name, BlockDriverState **first_bad_bs,
|
int bdrv_all_delete_snapshot(const char *name, BlockDriverState **first_bad_bs,
|
||||||
Error **err)
|
Error **errp)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
BlockDriverState *bs;
|
BlockDriverState *bs;
|
||||||
|
@ -441,7 +441,7 @@ int bdrv_all_delete_snapshot(const char *name, BlockDriverState **first_bad_bs,
|
||||||
bdrv_snapshot_find(bs, snapshot, name) >= 0)
|
bdrv_snapshot_find(bs, snapshot, name) >= 0)
|
||||||
{
|
{
|
||||||
ret = bdrv_snapshot_delete(bs, snapshot->id_str,
|
ret = bdrv_snapshot_delete(bs, snapshot->id_str,
|
||||||
snapshot->name, err);
|
snapshot->name, errp);
|
||||||
}
|
}
|
||||||
aio_context_release(ctx);
|
aio_context_release(ctx);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
|
|
@ -380,7 +380,7 @@ qcrypto_tls_creds_load_cert(QCryptoTLSCredsX509 *creds,
|
||||||
gnutls_x509_crt_t cert = NULL;
|
gnutls_x509_crt_t cert = NULL;
|
||||||
g_autofree char *buf = NULL;
|
g_autofree char *buf = NULL;
|
||||||
gsize buflen;
|
gsize buflen;
|
||||||
GError *gerr;
|
GError *gerr = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
if (zlib + lzo + snappy + win_dmp > 1) {
|
if (zlib + lzo + snappy + win_dmp > 1) {
|
||||||
error_setg(&err, "only one of '-z|-l|-s|-w' can be set");
|
error_setg(&err, "only one of '-z|-l|-s|-w' can be set");
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
qmp_dump_guest_memory(paging, prot, true, detach, has_begin, begin,
|
qmp_dump_guest_memory(paging, prot, true, detach, has_begin, begin,
|
||||||
has_length, length, true, dump_format, &err);
|
has_length, length, true, dump_format, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
g_free(prot);
|
g_free(prot);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
6
exec.c
6
exec.c
|
@ -1843,6 +1843,7 @@ static void *file_ram_alloc(RAMBlock *block,
|
||||||
bool truncate,
|
bool truncate,
|
||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
|
Error *err = NULL;
|
||||||
MachineState *ms = MACHINE(qdev_get_machine());
|
MachineState *ms = MACHINE(qdev_get_machine());
|
||||||
void *area;
|
void *area;
|
||||||
|
|
||||||
|
@ -1900,8 +1901,9 @@ static void *file_ram_alloc(RAMBlock *block,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mem_prealloc) {
|
if (mem_prealloc) {
|
||||||
os_mem_prealloc(fd, area, memory, ms->smp.cpus, errp);
|
os_mem_prealloc(fd, area, memory, ms->smp.cpus, &err);
|
||||||
if (errp && *errp) {
|
if (err) {
|
||||||
|
error_propagate(errp, err);
|
||||||
qemu_ram_munmap(fd, area, memory);
|
qemu_ram_munmap(fd, area, memory);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1473,7 +1473,7 @@ static void local_cleanup(FsContext *ctx)
|
||||||
g_free(data);
|
g_free(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void error_append_security_model_hint(Error **errp)
|
static void error_append_security_model_hint(Error *const *errp)
|
||||||
{
|
{
|
||||||
error_append_hint(errp, "Valid options are: security_model="
|
error_append_hint(errp, "Valid options are: security_model="
|
||||||
"[passthrough|mapped-xattr|mapped-file|none]\n");
|
"[passthrough|mapped-xattr|mapped-file|none]\n");
|
||||||
|
|
|
@ -1114,7 +1114,7 @@ static int connect_namedsocket(const char *path, Error **errp)
|
||||||
return sockfd;
|
return sockfd;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void error_append_socket_sockfd_hint(Error **errp)
|
static void error_append_socket_sockfd_hint(Error *const *errp)
|
||||||
{
|
{
|
||||||
error_append_hint(errp, "Either specify socket=/some/path where /some/path"
|
error_append_hint(errp, "Either specify socket=/some/path where /some/path"
|
||||||
" points to a listening AF_UNIX socket or sock_fd=fd"
|
" points to a listening AF_UNIX socket or sock_fd=fd"
|
||||||
|
|
|
@ -55,8 +55,7 @@ static const MemoryRegionOps AcpiCpuHotplug_ops = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static void acpi_set_cpu_present_bit(AcpiCpuHotplug *g, CPUState *cpu,
|
static void acpi_set_cpu_present_bit(AcpiCpuHotplug *g, CPUState *cpu)
|
||||||
Error **errp)
|
|
||||||
{
|
{
|
||||||
CPUClass *k = CPU_GET_CLASS(cpu);
|
CPUClass *k = CPU_GET_CLASS(cpu);
|
||||||
int64_t cpu_id;
|
int64_t cpu_id;
|
||||||
|
@ -74,10 +73,7 @@ static void acpi_set_cpu_present_bit(AcpiCpuHotplug *g, CPUState *cpu,
|
||||||
void legacy_acpi_cpu_plug_cb(HotplugHandler *hotplug_dev,
|
void legacy_acpi_cpu_plug_cb(HotplugHandler *hotplug_dev,
|
||||||
AcpiCpuHotplug *g, DeviceState *dev, Error **errp)
|
AcpiCpuHotplug *g, DeviceState *dev, Error **errp)
|
||||||
{
|
{
|
||||||
acpi_set_cpu_present_bit(g, CPU(dev), errp);
|
acpi_set_cpu_present_bit(g, CPU(dev));
|
||||||
if (*errp != NULL) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
acpi_send_event(DEVICE(hotplug_dev), ACPI_CPU_HOTPLUG_STATUS);
|
acpi_send_event(DEVICE(hotplug_dev), ACPI_CPU_HOTPLUG_STATUS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,7 +88,7 @@ void legacy_acpi_cpu_hotplug_init(MemoryRegion *parent, Object *owner,
|
||||||
gpe_cpu->device = owner;
|
gpe_cpu->device = owner;
|
||||||
|
|
||||||
CPU_FOREACH(cpu) {
|
CPU_FOREACH(cpu) {
|
||||||
acpi_set_cpu_present_bit(gpe_cpu, cpu, &error_abort);
|
acpi_set_cpu_present_bit(gpe_cpu, cpu);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -178,11 +178,12 @@ static int fit_load_fdt(const struct fit_loader *ldr, const void *itb,
|
||||||
int cfg, void *opaque, const void *match_data,
|
int cfg, void *opaque, const void *match_data,
|
||||||
hwaddr kernel_end, Error **errp)
|
hwaddr kernel_end, Error **errp)
|
||||||
{
|
{
|
||||||
|
Error *err = NULL;
|
||||||
const char *name;
|
const char *name;
|
||||||
const void *data;
|
const void *data;
|
||||||
const void *load_data;
|
const void *load_data;
|
||||||
hwaddr load_addr;
|
hwaddr load_addr;
|
||||||
int img_off, err;
|
int img_off;
|
||||||
size_t sz;
|
size_t sz;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -197,13 +198,13 @@ static int fit_load_fdt(const struct fit_loader *ldr, const void *itb,
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = fit_image_addr(itb, img_off, "load", &load_addr, errp);
|
ret = fit_image_addr(itb, img_off, "load", &load_addr, &err);
|
||||||
if (err == -ENOENT) {
|
if (ret == -ENOENT) {
|
||||||
load_addr = ROUND_UP(kernel_end, 64 * KiB) + (10 * MiB);
|
load_addr = ROUND_UP(kernel_end, 64 * KiB) + (10 * MiB);
|
||||||
error_free(*errp);
|
error_free(err);
|
||||||
} else if (err) {
|
} else if (ret) {
|
||||||
error_prepend(errp, "unable to read FDT load address from FIT: ");
|
error_propagate_prepend(errp, err,
|
||||||
ret = err;
|
"unable to read FDT load address from FIT: ");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ void hmp_cpu_add(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
cpuid = qdict_get_int(qdict, "id");
|
cpuid = qdict_get_int(qdict, "id");
|
||||||
qmp_cpu_add(cpuid, &err);
|
qmp_cpu_add(cpuid, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict)
|
void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -66,7 +66,7 @@ void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict)
|
||||||
CpuInstanceProperties *c;
|
CpuInstanceProperties *c;
|
||||||
|
|
||||||
if (err != NULL) {
|
if (err != NULL) {
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,7 +135,7 @@ void hmp_info_memdev(Monitor *mon, const QDict *qdict)
|
||||||
monitor_printf(mon, "\n");
|
monitor_printf(mon, "\n");
|
||||||
|
|
||||||
qapi_free_MemdevList(memdev_list);
|
qapi_free_MemdevList(memdev_list);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_info_numa(Monitor *mon, const QDict *qdict)
|
void hmp_info_numa(Monitor *mon, const QDict *qdict)
|
||||||
|
|
|
@ -820,12 +820,12 @@ static bool device_get_realized(Object *obj, Error **errp)
|
||||||
return dev->realized;
|
return dev->realized;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool check_only_migratable(Object *obj, Error **err)
|
static bool check_only_migratable(Object *obj, Error **errp)
|
||||||
{
|
{
|
||||||
DeviceClass *dc = DEVICE_GET_CLASS(obj);
|
DeviceClass *dc = DEVICE_GET_CLASS(obj);
|
||||||
|
|
||||||
if (!vmstate_check_only_migratable(dc->vmsd)) {
|
if (!vmstate_check_only_migratable(dc->vmsd)) {
|
||||||
error_setg(err, "Device %s is not migratable, but "
|
error_setg(errp, "Device %s is not migratable, but "
|
||||||
"--only-migratable was specified",
|
"--only-migratable was specified",
|
||||||
object_get_typename(obj));
|
object_get_typename(obj));
|
||||||
return false;
|
return false;
|
||||||
|
@ -874,10 +874,9 @@ static void device_set_realized(Object *obj, bool value, Error **errp)
|
||||||
|
|
||||||
if (dc->realize) {
|
if (dc->realize) {
|
||||||
dc->realize(dev, &local_err);
|
dc->realize(dev, &local_err);
|
||||||
}
|
if (local_err != NULL) {
|
||||||
|
goto fail;
|
||||||
if (local_err != NULL) {
|
}
|
||||||
goto fail;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DEVICE_LISTENER_CALL(realize, Forward, dev);
|
DEVICE_LISTENER_CALL(realize, Forward, dev);
|
||||||
|
@ -918,27 +917,26 @@ static void device_set_realized(Object *obj, bool value, Error **errp)
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (!value && dev->realized) {
|
} else if (!value && dev->realized) {
|
||||||
Error **local_errp = NULL;
|
/* We want local_err to track only the first error */
|
||||||
QLIST_FOREACH(bus, &dev->child_bus, sibling) {
|
QLIST_FOREACH(bus, &dev->child_bus, sibling) {
|
||||||
local_errp = local_err ? NULL : &local_err;
|
|
||||||
object_property_set_bool(OBJECT(bus), false, "realized",
|
object_property_set_bool(OBJECT(bus), false, "realized",
|
||||||
local_errp);
|
local_err ? NULL : &local_err);
|
||||||
}
|
}
|
||||||
if (qdev_get_vmsd(dev)) {
|
if (qdev_get_vmsd(dev)) {
|
||||||
vmstate_unregister(dev, qdev_get_vmsd(dev), dev);
|
vmstate_unregister(dev, qdev_get_vmsd(dev), dev);
|
||||||
}
|
}
|
||||||
if (dc->unrealize) {
|
if (dc->unrealize) {
|
||||||
local_errp = local_err ? NULL : &local_err;
|
dc->unrealize(dev, local_err ? NULL : &local_err);
|
||||||
dc->unrealize(dev, local_errp);
|
|
||||||
}
|
}
|
||||||
dev->pending_deleted_event = true;
|
dev->pending_deleted_event = true;
|
||||||
DEVICE_LISTENER_CALL(unrealize, Reverse, dev);
|
DEVICE_LISTENER_CALL(unrealize, Reverse, dev);
|
||||||
|
|
||||||
|
if (local_err != NULL) {
|
||||||
|
goto fail;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (local_err != NULL) {
|
assert(local_err == NULL);
|
||||||
goto fail;
|
|
||||||
}
|
|
||||||
|
|
||||||
dev->realized = value;
|
dev->realized = value;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -976,7 +974,7 @@ static bool device_get_hotpluggable(Object *obj, Error **errp)
|
||||||
qbus_is_hotpluggable(dev->parent_bus));
|
qbus_is_hotpluggable(dev->parent_bus));
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool device_get_hotplugged(Object *obj, Error **err)
|
static bool device_get_hotplugged(Object *obj, Error **errp)
|
||||||
{
|
{
|
||||||
DeviceState *dev = DEVICE(obj);
|
DeviceState *dev = DEVICE(obj);
|
||||||
|
|
||||||
|
|
|
@ -1533,7 +1533,7 @@ static void amdvi_reset(DeviceState *dev)
|
||||||
amdvi_init(s);
|
amdvi_init(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void amdvi_realize(DeviceState *dev, Error **err)
|
static void amdvi_realize(DeviceState *dev, Error **errp)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
AMDVIState *s = AMD_IOMMU_DEVICE(dev);
|
AMDVIState *s = AMD_IOMMU_DEVICE(dev);
|
||||||
|
@ -1549,21 +1549,21 @@ static void amdvi_realize(DeviceState *dev, Error **err)
|
||||||
/* This device should take care of IOMMU PCI properties */
|
/* This device should take care of IOMMU PCI properties */
|
||||||
x86_iommu->type = TYPE_AMD;
|
x86_iommu->type = TYPE_AMD;
|
||||||
qdev_set_parent_bus(DEVICE(&s->pci), &bus->qbus);
|
qdev_set_parent_bus(DEVICE(&s->pci), &bus->qbus);
|
||||||
object_property_set_bool(OBJECT(&s->pci), true, "realized", err);
|
object_property_set_bool(OBJECT(&s->pci), true, "realized", errp);
|
||||||
ret = pci_add_capability(&s->pci.dev, AMDVI_CAPAB_ID_SEC, 0,
|
ret = pci_add_capability(&s->pci.dev, AMDVI_CAPAB_ID_SEC, 0,
|
||||||
AMDVI_CAPAB_SIZE, err);
|
AMDVI_CAPAB_SIZE, errp);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
s->capab_offset = ret;
|
s->capab_offset = ret;
|
||||||
|
|
||||||
ret = pci_add_capability(&s->pci.dev, PCI_CAP_ID_MSI, 0,
|
ret = pci_add_capability(&s->pci.dev, PCI_CAP_ID_MSI, 0,
|
||||||
AMDVI_CAPAB_REG_SIZE, err);
|
AMDVI_CAPAB_REG_SIZE, errp);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ret = pci_add_capability(&s->pci.dev, PCI_CAP_ID_HT, 0,
|
ret = pci_add_capability(&s->pci.dev, PCI_CAP_ID_HT, 0,
|
||||||
AMDVI_CAPAB_REG_SIZE, err);
|
AMDVI_CAPAB_REG_SIZE, errp);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1578,8 +1578,8 @@ static void amdvi_realize(DeviceState *dev, Error **err)
|
||||||
sysbus_init_mmio(SYS_BUS_DEVICE(s), &s->mmio);
|
sysbus_init_mmio(SYS_BUS_DEVICE(s), &s->mmio);
|
||||||
sysbus_mmio_map(SYS_BUS_DEVICE(s), 0, AMDVI_BASE_ADDR);
|
sysbus_mmio_map(SYS_BUS_DEVICE(s), 0, AMDVI_BASE_ADDR);
|
||||||
pci_setup_iommu(bus, amdvi_host_dma_iommu, s);
|
pci_setup_iommu(bus, amdvi_host_dma_iommu, s);
|
||||||
s->devid = object_property_get_int(OBJECT(&s->pci), "addr", err);
|
s->devid = object_property_get_int(OBJECT(&s->pci), "addr", errp);
|
||||||
msi_init(&s->pci.dev, 0, 1, true, false, err);
|
msi_init(&s->pci.dev, 0, 1, true, false, errp);
|
||||||
amdvi_init(s);
|
amdvi_init(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -582,20 +582,21 @@ static void kvm_s390_flic_realize(DeviceState *dev, Error **errp)
|
||||||
struct kvm_create_device cd = {0};
|
struct kvm_create_device cd = {0};
|
||||||
struct kvm_device_attr test_attr = {0};
|
struct kvm_device_attr test_attr = {0};
|
||||||
int ret;
|
int ret;
|
||||||
Error *errp_local = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
KVM_S390_FLIC_GET_CLASS(dev)->parent_realize(dev, &errp_local);
|
KVM_S390_FLIC_GET_CLASS(dev)->parent_realize(dev, &err);
|
||||||
if (errp_local) {
|
if (err) {
|
||||||
goto fail;
|
error_propagate(errp, err);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
flic_state->fd = -1;
|
flic_state->fd = -1;
|
||||||
|
|
||||||
cd.type = KVM_DEV_TYPE_FLIC;
|
cd.type = KVM_DEV_TYPE_FLIC;
|
||||||
ret = kvm_vm_ioctl(kvm_state, KVM_CREATE_DEVICE, &cd);
|
ret = kvm_vm_ioctl(kvm_state, KVM_CREATE_DEVICE, &cd);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
error_setg_errno(&errp_local, errno, "Creating the KVM device failed");
|
error_setg_errno(errp, errno, "Creating the KVM device failed");
|
||||||
trace_flic_create_device(errno);
|
trace_flic_create_device(errno);
|
||||||
goto fail;
|
return;
|
||||||
}
|
}
|
||||||
flic_state->fd = cd.fd;
|
flic_state->fd = cd.fd;
|
||||||
|
|
||||||
|
@ -603,9 +604,6 @@ static void kvm_s390_flic_realize(DeviceState *dev, Error **errp)
|
||||||
test_attr.group = KVM_DEV_FLIC_CLEAR_IO_IRQ;
|
test_attr.group = KVM_DEV_FLIC_CLEAR_IO_IRQ;
|
||||||
flic_state->clear_io_supported = !ioctl(flic_state->fd,
|
flic_state->clear_io_supported = !ioctl(flic_state->fd,
|
||||||
KVM_HAS_DEVICE_ATTR, test_attr);
|
KVM_HAS_DEVICE_ATTR, test_attr);
|
||||||
return;
|
|
||||||
fail:
|
|
||||||
error_propagate(errp, errp_local);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void kvm_s390_flic_reset(DeviceState *dev)
|
static void kvm_s390_flic_reset(DeviceState *dev)
|
||||||
|
|
|
@ -70,6 +70,7 @@ static void isa_ipmi_bt_lower_irq(IPMIBT *ib)
|
||||||
|
|
||||||
static void isa_ipmi_bt_realize(DeviceState *dev, Error **errp)
|
static void isa_ipmi_bt_realize(DeviceState *dev, Error **errp)
|
||||||
{
|
{
|
||||||
|
Error *err = NULL;
|
||||||
ISADevice *isadev = ISA_DEVICE(dev);
|
ISADevice *isadev = ISA_DEVICE(dev);
|
||||||
ISAIPMIBTDevice *iib = ISA_IPMI_BT(dev);
|
ISAIPMIBTDevice *iib = ISA_IPMI_BT(dev);
|
||||||
IPMIInterface *ii = IPMI_INTERFACE(dev);
|
IPMIInterface *ii = IPMI_INTERFACE(dev);
|
||||||
|
@ -85,9 +86,11 @@ static void isa_ipmi_bt_realize(DeviceState *dev, Error **errp)
|
||||||
iib->bt.bmc->intf = ii;
|
iib->bt.bmc->intf = ii;
|
||||||
iib->bt.opaque = iib;
|
iib->bt.opaque = iib;
|
||||||
|
|
||||||
iic->init(ii, 0, errp);
|
iic->init(ii, 0, &err);
|
||||||
if (*errp)
|
if (err) {
|
||||||
|
error_propagate(errp, err);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (iib->isairq > 0) {
|
if (iib->isairq > 0) {
|
||||||
isa_init_irq(isadev, &iib->irq, iib->isairq);
|
isa_init_irq(isadev, &iib->irq, iib->isairq);
|
||||||
|
|
|
@ -69,6 +69,7 @@ static void isa_ipmi_kcs_lower_irq(IPMIKCS *ik)
|
||||||
|
|
||||||
static void ipmi_isa_realize(DeviceState *dev, Error **errp)
|
static void ipmi_isa_realize(DeviceState *dev, Error **errp)
|
||||||
{
|
{
|
||||||
|
Error *err = NULL;
|
||||||
ISADevice *isadev = ISA_DEVICE(dev);
|
ISADevice *isadev = ISA_DEVICE(dev);
|
||||||
ISAIPMIKCSDevice *iik = ISA_IPMI_KCS(dev);
|
ISAIPMIKCSDevice *iik = ISA_IPMI_KCS(dev);
|
||||||
IPMIInterface *ii = IPMI_INTERFACE(dev);
|
IPMIInterface *ii = IPMI_INTERFACE(dev);
|
||||||
|
@ -84,9 +85,11 @@ static void ipmi_isa_realize(DeviceState *dev, Error **errp)
|
||||||
iik->kcs.bmc->intf = ii;
|
iik->kcs.bmc->intf = ii;
|
||||||
iik->kcs.opaque = iik;
|
iik->kcs.opaque = iik;
|
||||||
|
|
||||||
iic->init(ii, 0, errp);
|
iic->init(ii, 0, &err);
|
||||||
if (*errp)
|
if (err) {
|
||||||
|
error_propagate(errp, err);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (iik->isairq > 0) {
|
if (iik->isairq > 0) {
|
||||||
isa_init_irq(isadev, &iik->irq, iik->isairq);
|
isa_init_irq(isadev, &iik->irq, iik->isairq);
|
||||||
|
|
|
@ -54,6 +54,7 @@ static void pci_ipmi_lower_irq(IPMIBT *ik)
|
||||||
|
|
||||||
static void pci_ipmi_bt_realize(PCIDevice *pd, Error **errp)
|
static void pci_ipmi_bt_realize(PCIDevice *pd, Error **errp)
|
||||||
{
|
{
|
||||||
|
Error *err = NULL;
|
||||||
PCIIPMIBTDevice *pik = PCI_IPMI_BT(pd);
|
PCIIPMIBTDevice *pik = PCI_IPMI_BT(pd);
|
||||||
IPMIInterface *ii = IPMI_INTERFACE(pd);
|
IPMIInterface *ii = IPMI_INTERFACE(pd);
|
||||||
IPMIInterfaceClass *iic = IPMI_INTERFACE_GET_CLASS(ii);
|
IPMIInterfaceClass *iic = IPMI_INTERFACE_GET_CLASS(ii);
|
||||||
|
@ -74,8 +75,9 @@ static void pci_ipmi_bt_realize(PCIDevice *pd, Error **errp)
|
||||||
pik->bt.raise_irq = pci_ipmi_raise_irq;
|
pik->bt.raise_irq = pci_ipmi_raise_irq;
|
||||||
pik->bt.lower_irq = pci_ipmi_lower_irq;
|
pik->bt.lower_irq = pci_ipmi_lower_irq;
|
||||||
|
|
||||||
iic->init(ii, 8, errp);
|
iic->init(ii, 8, &err);
|
||||||
if (*errp) {
|
if (err) {
|
||||||
|
error_propagate(errp, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
pci_register_bar(pd, 0, PCI_BASE_ADDRESS_SPACE_IO, &pik->bt.io);
|
pci_register_bar(pd, 0, PCI_BASE_ADDRESS_SPACE_IO, &pik->bt.io);
|
||||||
|
|
|
@ -54,6 +54,7 @@ static void pci_ipmi_lower_irq(IPMIKCS *ik)
|
||||||
|
|
||||||
static void pci_ipmi_kcs_realize(PCIDevice *pd, Error **errp)
|
static void pci_ipmi_kcs_realize(PCIDevice *pd, Error **errp)
|
||||||
{
|
{
|
||||||
|
Error *err = NULL;
|
||||||
PCIIPMIKCSDevice *pik = PCI_IPMI_KCS(pd);
|
PCIIPMIKCSDevice *pik = PCI_IPMI_KCS(pd);
|
||||||
IPMIInterface *ii = IPMI_INTERFACE(pd);
|
IPMIInterface *ii = IPMI_INTERFACE(pd);
|
||||||
IPMIInterfaceClass *iic = IPMI_INTERFACE_GET_CLASS(ii);
|
IPMIInterfaceClass *iic = IPMI_INTERFACE_GET_CLASS(ii);
|
||||||
|
@ -74,8 +75,9 @@ static void pci_ipmi_kcs_realize(PCIDevice *pd, Error **errp)
|
||||||
pik->kcs.raise_irq = pci_ipmi_raise_irq;
|
pik->kcs.raise_irq = pci_ipmi_raise_irq;
|
||||||
pik->kcs.lower_irq = pci_ipmi_lower_irq;
|
pik->kcs.lower_irq = pci_ipmi_lower_irq;
|
||||||
|
|
||||||
iic->init(ii, 8, errp);
|
iic->init(ii, 8, &err);
|
||||||
if (*errp) {
|
if (err) {
|
||||||
|
error_propagate(errp, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
pci_register_bar(pd, 0, PCI_BASE_ADDRESS_SPACE_IO, &pik->kcs.io);
|
pci_register_bar(pd, 0, PCI_BASE_ADDRESS_SPACE_IO, &pik->kcs.io);
|
||||||
|
|
|
@ -99,6 +99,7 @@ static uint64_t memory_device_get_free_addr(MachineState *ms,
|
||||||
uint64_t align, uint64_t size,
|
uint64_t align, uint64_t size,
|
||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
|
Error *err = NULL;
|
||||||
GSList *list = NULL, *item;
|
GSList *list = NULL, *item;
|
||||||
Range as, new = range_empty;
|
Range as, new = range_empty;
|
||||||
|
|
||||||
|
@ -123,8 +124,9 @@ static uint64_t memory_device_get_free_addr(MachineState *ms,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
memory_device_check_addable(ms, size, errp);
|
memory_device_check_addable(ms, size, &err);
|
||||||
if (*errp) {
|
if (err) {
|
||||||
|
error_propagate(errp, err);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2042,13 +2042,13 @@ void spapr_phb_dma_reset(SpaprPhbState *sphb)
|
||||||
static void spapr_phb_reset(DeviceState *qdev)
|
static void spapr_phb_reset(DeviceState *qdev)
|
||||||
{
|
{
|
||||||
SpaprPhbState *sphb = SPAPR_PCI_HOST_BRIDGE(qdev);
|
SpaprPhbState *sphb = SPAPR_PCI_HOST_BRIDGE(qdev);
|
||||||
Error *errp = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
spapr_phb_dma_reset(sphb);
|
spapr_phb_dma_reset(sphb);
|
||||||
spapr_phb_nvgpu_free(sphb);
|
spapr_phb_nvgpu_free(sphb);
|
||||||
spapr_phb_nvgpu_setup(sphb, &errp);
|
spapr_phb_nvgpu_setup(sphb, &err);
|
||||||
if (errp) {
|
if (err) {
|
||||||
error_report_err(errp);
|
error_report_err(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Reset the IOMMU state */
|
/* Reset the IOMMU state */
|
||||||
|
@ -2326,7 +2326,7 @@ int spapr_dt_phb(SpaprMachineState *spapr, SpaprPhbState *phb,
|
||||||
cpu_to_be32(phb->numa_node)};
|
cpu_to_be32(phb->numa_node)};
|
||||||
SpaprTceTable *tcet;
|
SpaprTceTable *tcet;
|
||||||
SpaprDrc *drc;
|
SpaprDrc *drc;
|
||||||
Error *errp = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
/* Start populating the FDT */
|
/* Start populating the FDT */
|
||||||
_FDT(bus_off = fdt_add_subnode(fdt, 0, phb->dtbusname));
|
_FDT(bus_off = fdt_add_subnode(fdt, 0, phb->dtbusname));
|
||||||
|
@ -2408,9 +2408,9 @@ int spapr_dt_phb(SpaprMachineState *spapr, SpaprPhbState *phb,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
spapr_phb_nvgpu_populate_dt(phb, fdt, bus_off, &errp);
|
spapr_phb_nvgpu_populate_dt(phb, fdt, bus_off, &err);
|
||||||
if (errp) {
|
if (err) {
|
||||||
error_report_err(errp);
|
error_report_err(err);
|
||||||
}
|
}
|
||||||
spapr_phb_nvgpu_ram_populate_dt(phb, fdt);
|
spapr_phb_nvgpu_ram_populate_dt(phb, fdt);
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ struct SpaprPhbPciNvGpuConfig {
|
||||||
uint64_t nv2_atsd_current;
|
uint64_t nv2_atsd_current;
|
||||||
int num; /* number of non empty (i.e. tgt!=0) entries in slots[] */
|
int num; /* number of non empty (i.e. tgt!=0) entries in slots[] */
|
||||||
SpaprPhbPciNvGpuSlot slots[NVGPU_MAX_NUM];
|
SpaprPhbPciNvGpuSlot slots[NVGPU_MAX_NUM];
|
||||||
Error *errp;
|
Error *err;
|
||||||
};
|
};
|
||||||
|
|
||||||
static SpaprPhbPciNvGpuSlot *
|
static SpaprPhbPciNvGpuSlot *
|
||||||
|
@ -153,7 +153,7 @@ static void spapr_phb_pci_collect_nvgpu(PCIBus *bus, PCIDevice *pdev,
|
||||||
spapr_pci_collect_nvnpu(nvgpus, pdev, tgt, MEMORY_REGION(mr_npu),
|
spapr_pci_collect_nvnpu(nvgpus, pdev, tgt, MEMORY_REGION(mr_npu),
|
||||||
&local_err);
|
&local_err);
|
||||||
}
|
}
|
||||||
error_propagate(&nvgpus->errp, local_err);
|
error_propagate(&nvgpus->err, local_err);
|
||||||
}
|
}
|
||||||
if ((pci_default_read_config(pdev, PCI_HEADER_TYPE, 1) !=
|
if ((pci_default_read_config(pdev, PCI_HEADER_TYPE, 1) !=
|
||||||
PCI_HEADER_TYPE_BRIDGE)) {
|
PCI_HEADER_TYPE_BRIDGE)) {
|
||||||
|
@ -187,9 +187,9 @@ void spapr_phb_nvgpu_setup(SpaprPhbState *sphb, Error **errp)
|
||||||
pci_for_each_device(bus, pci_bus_num(bus),
|
pci_for_each_device(bus, pci_bus_num(bus),
|
||||||
spapr_phb_pci_collect_nvgpu, sphb->nvgpus);
|
spapr_phb_pci_collect_nvgpu, sphb->nvgpus);
|
||||||
|
|
||||||
if (sphb->nvgpus->errp) {
|
if (sphb->nvgpus->err) {
|
||||||
error_propagate(errp, sphb->nvgpus->errp);
|
error_propagate(errp, sphb->nvgpus->err);
|
||||||
sphb->nvgpus->errp = NULL;
|
sphb->nvgpus->err = NULL;
|
||||||
goto cleanup_exit;
|
goto cleanup_exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -441,7 +441,7 @@ static void sclp_event_set_allow_all_mask_sizes(Object *obj, bool value,
|
||||||
ef->allow_all_mask_sizes = value;
|
ef->allow_all_mask_sizes = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool sclp_event_get_allow_all_mask_sizes(Object *obj, Error **e)
|
static bool sclp_event_get_allow_all_mask_sizes(Object *obj, Error **errp)
|
||||||
{
|
{
|
||||||
SCLPEventFacility *ef = (SCLPEventFacility *)obj;
|
SCLPEventFacility *ef = (SCLPEventFacility *)obj;
|
||||||
|
|
||||||
|
|
|
@ -352,7 +352,8 @@ static void s390_stattrib_class_init(ObjectClass *oc, void *data)
|
||||||
dc->realize = s390_stattrib_realize;
|
dc->realize = s390_stattrib_realize;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool s390_stattrib_get_migration_enabled(Object *obj, Error **e)
|
static inline bool s390_stattrib_get_migration_enabled(Object *obj,
|
||||||
|
Error **errp)
|
||||||
{
|
{
|
||||||
S390StAttribState *s = S390_STATTRIB(obj);
|
S390StAttribState *s = S390_STATTRIB(obj);
|
||||||
|
|
||||||
|
|
|
@ -1459,7 +1459,7 @@ static void sdhci_sysbus_finalize(Object *obj)
|
||||||
sdhci_uninitfn(s);
|
sdhci_uninitfn(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sdhci_sysbus_realize(DeviceState *dev, Error ** errp)
|
static void sdhci_sysbus_realize(DeviceState *dev, Error **errp)
|
||||||
{
|
{
|
||||||
SDHCIState *s = SYSBUS_SDHCI(dev);
|
SDHCIState *s = SYSBUS_SDHCI(dev);
|
||||||
SysBusDevice *sbd = SYS_BUS_DEVICE(dev);
|
SysBusDevice *sbd = SYS_BUS_DEVICE(dev);
|
||||||
|
|
|
@ -155,7 +155,7 @@ static int tpm_emulator_unix_tx_bufs(TPMEmulator *tpm_emu,
|
||||||
const uint8_t *in, uint32_t in_len,
|
const uint8_t *in, uint32_t in_len,
|
||||||
uint8_t *out, uint32_t out_len,
|
uint8_t *out, uint32_t out_len,
|
||||||
bool *selftest_done,
|
bool *selftest_done,
|
||||||
Error **err)
|
Error **errp)
|
||||||
{
|
{
|
||||||
ssize_t ret;
|
ssize_t ret;
|
||||||
bool is_selftest = false;
|
bool is_selftest = false;
|
||||||
|
@ -165,20 +165,20 @@ static int tpm_emulator_unix_tx_bufs(TPMEmulator *tpm_emu,
|
||||||
is_selftest = tpm_util_is_selftest(in, in_len);
|
is_selftest = tpm_util_is_selftest(in, in_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = qio_channel_write_all(tpm_emu->data_ioc, (char *)in, in_len, err);
|
ret = qio_channel_write_all(tpm_emu->data_ioc, (char *)in, in_len, errp);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = qio_channel_read_all(tpm_emu->data_ioc, (char *)out,
|
ret = qio_channel_read_all(tpm_emu->data_ioc, (char *)out,
|
||||||
sizeof(struct tpm_resp_hdr), err);
|
sizeof(struct tpm_resp_hdr), errp);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = qio_channel_read_all(tpm_emu->data_ioc,
|
ret = qio_channel_read_all(tpm_emu->data_ioc,
|
||||||
(char *)out + sizeof(struct tpm_resp_hdr),
|
(char *)out + sizeof(struct tpm_resp_hdr),
|
||||||
tpm_cmd_get_size(out) - sizeof(struct tpm_resp_hdr), err);
|
tpm_cmd_get_size(out) - sizeof(struct tpm_resp_hdr), errp);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1342,7 +1342,7 @@ static NetClientInfo net_usbnet_info = {
|
||||||
.cleanup = usbnet_cleanup,
|
.cleanup = usbnet_cleanup,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void usb_net_realize(USBDevice *dev, Error **errrp)
|
static void usb_net_realize(USBDevice *dev, Error **errp)
|
||||||
{
|
{
|
||||||
USBNetState *s = USB_NET(dev);
|
USBNetState *s = USB_NET(dev);
|
||||||
|
|
||||||
|
|
|
@ -89,14 +89,13 @@ static void vfio_ap_realize(DeviceState *dev, Error **errp)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
char *mdevid;
|
char *mdevid;
|
||||||
Error *local_err = NULL;
|
|
||||||
VFIOGroup *vfio_group;
|
VFIOGroup *vfio_group;
|
||||||
APDevice *apdev = AP_DEVICE(dev);
|
APDevice *apdev = AP_DEVICE(dev);
|
||||||
VFIOAPDevice *vapdev = VFIO_AP_DEVICE(apdev);
|
VFIOAPDevice *vapdev = VFIO_AP_DEVICE(apdev);
|
||||||
|
|
||||||
vfio_group = vfio_ap_get_group(vapdev, &local_err);
|
vfio_group = vfio_ap_get_group(vapdev, errp);
|
||||||
if (!vfio_group) {
|
if (!vfio_group) {
|
||||||
goto out_err;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
vapdev->vdev.ops = &vfio_ap_ops;
|
vapdev->vdev.ops = &vfio_ap_ops;
|
||||||
|
@ -113,7 +112,7 @@ static void vfio_ap_realize(DeviceState *dev, Error **errp)
|
||||||
*/
|
*/
|
||||||
vapdev->vdev.balloon_allowed = true;
|
vapdev->vdev.balloon_allowed = true;
|
||||||
|
|
||||||
ret = vfio_get_device(vfio_group, mdevid, &vapdev->vdev, &local_err);
|
ret = vfio_get_device(vfio_group, mdevid, &vapdev->vdev, errp);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
goto out_get_dev_err;
|
goto out_get_dev_err;
|
||||||
}
|
}
|
||||||
|
@ -123,8 +122,6 @@ static void vfio_ap_realize(DeviceState *dev, Error **errp)
|
||||||
out_get_dev_err:
|
out_get_dev_err:
|
||||||
vfio_ap_put_device(vapdev);
|
vfio_ap_put_device(vapdev);
|
||||||
vfio_put_group(vfio_group);
|
vfio_put_group(vfio_group);
|
||||||
out_err:
|
|
||||||
error_propagate(errp, local_err);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void vfio_ap_unrealize(DeviceState *dev, Error **errp)
|
static void vfio_ap_unrealize(DeviceState *dev, Error **errp)
|
||||||
|
|
|
@ -78,7 +78,7 @@ int bdrv_snapshot_load_tmp_by_id_or_name(BlockDriverState *bs,
|
||||||
|
|
||||||
bool bdrv_all_can_snapshot(BlockDriverState **first_bad_bs);
|
bool bdrv_all_can_snapshot(BlockDriverState **first_bad_bs);
|
||||||
int bdrv_all_delete_snapshot(const char *name, BlockDriverState **first_bsd_bs,
|
int bdrv_all_delete_snapshot(const char *name, BlockDriverState **first_bsd_bs,
|
||||||
Error **err);
|
Error **errp);
|
||||||
int bdrv_all_goto_snapshot(const char *name, BlockDriverState **first_bad_bs,
|
int bdrv_all_goto_snapshot(const char *name, BlockDriverState **first_bad_bs,
|
||||||
Error **errp);
|
Error **errp);
|
||||||
int bdrv_all_find_snapshot(const char *name, BlockDriverState **first_bad_bs);
|
int bdrv_all_find_snapshot(const char *name, BlockDriverState **first_bad_bs);
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
*
|
*
|
||||||
* static int mysock_run_tls(int sockfd,
|
* static int mysock_run_tls(int sockfd,
|
||||||
* QCryptoTLSCreds *creds,
|
* QCryptoTLSCreds *creds,
|
||||||
* Error *errp)
|
* Error **errp)
|
||||||
* {
|
* {
|
||||||
* QCryptoTLSSession *sess;
|
* QCryptoTLSSession *sess;
|
||||||
*
|
*
|
||||||
|
|
|
@ -119,7 +119,7 @@ typedef void (*QIOTaskWorker)(QIOTask *task,
|
||||||
* gboolean myobject_operation_timer(gpointer opaque)
|
* gboolean myobject_operation_timer(gpointer opaque)
|
||||||
* {
|
* {
|
||||||
* QIOTask *task = QIO_TASK(opaque);
|
* QIOTask *task = QIO_TASK(opaque);
|
||||||
* Error *err;*
|
* Error *err = NULL;
|
||||||
*
|
*
|
||||||
* ...check something important...
|
* ...check something important...
|
||||||
* if (err) {
|
* if (err) {
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
#include "qemu/readline.h"
|
#include "qemu/readline.h"
|
||||||
|
|
||||||
void hmp_handle_error(Monitor *mon, Error **errp);
|
void hmp_handle_error(Monitor *mon, Error *err);
|
||||||
|
|
||||||
void hmp_info_name(Monitor *mon, const QDict *qdict);
|
void hmp_info_name(Monitor *mon, const QDict *qdict);
|
||||||
void hmp_info_version(Monitor *mon, const QDict *qdict);
|
void hmp_info_version(Monitor *mon, const QDict *qdict);
|
||||||
|
|
|
@ -233,13 +233,13 @@ void error_propagate_prepend(Error **dst_errp, Error *local_err,
|
||||||
* Prepend some text to @errp's human-readable error message.
|
* Prepend some text to @errp's human-readable error message.
|
||||||
* The text is made by formatting @fmt, @ap like vprintf().
|
* The text is made by formatting @fmt, @ap like vprintf().
|
||||||
*/
|
*/
|
||||||
void error_vprepend(Error **errp, const char *fmt, va_list ap);
|
void error_vprepend(Error *const *errp, const char *fmt, va_list ap);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Prepend some text to @errp's human-readable error message.
|
* Prepend some text to @errp's human-readable error message.
|
||||||
* The text is made by formatting @fmt, ... like printf().
|
* The text is made by formatting @fmt, ... like printf().
|
||||||
*/
|
*/
|
||||||
void error_prepend(Error **errp, const char *fmt, ...)
|
void error_prepend(Error *const *errp, const char *fmt, ...)
|
||||||
GCC_FMT_ATTR(2, 3);
|
GCC_FMT_ATTR(2, 3);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -256,7 +256,7 @@ void error_prepend(Error **errp, const char *fmt, ...)
|
||||||
* May be called multiple times. The resulting hint should end with a
|
* May be called multiple times. The resulting hint should end with a
|
||||||
* newline.
|
* newline.
|
||||||
*/
|
*/
|
||||||
void error_append_hint(Error **errp, const char *fmt, ...)
|
void error_append_hint(Error *const *errp, const char *fmt, ...)
|
||||||
GCC_FMT_ATTR(2, 3);
|
GCC_FMT_ATTR(2, 3);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -73,6 +73,7 @@ void error_init(const char *argv0);
|
||||||
})
|
})
|
||||||
|
|
||||||
const char *error_get_progname(void);
|
const char *error_get_progname(void);
|
||||||
extern bool enable_timestamp_msg;
|
|
||||||
|
extern bool error_with_timestamp;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1635,9 +1635,9 @@ void object_class_property_add_uint32_ptr(ObjectClass *klass, const char *name,
|
||||||
* property of type 'uint64'.
|
* property of type 'uint64'.
|
||||||
*/
|
*/
|
||||||
void object_property_add_uint64_ptr(Object *obj, const char *name,
|
void object_property_add_uint64_ptr(Object *obj, const char *name,
|
||||||
const uint64_t *v, Error **Errp);
|
const uint64_t *v, Error **errp);
|
||||||
void object_class_property_add_uint64_ptr(ObjectClass *klass, const char *name,
|
void object_class_property_add_uint64_ptr(ObjectClass *klass, const char *name,
|
||||||
const uint64_t *v, Error **Errp);
|
const uint64_t *v, Error **errp);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* object_property_add_alias:
|
* object_property_add_alias:
|
||||||
|
|
|
@ -60,11 +60,10 @@
|
||||||
#include <spice/enums.h>
|
#include <spice/enums.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void hmp_handle_error(Monitor *mon, Error **errp)
|
void hmp_handle_error(Monitor *mon, Error *err)
|
||||||
{
|
{
|
||||||
assert(errp);
|
if (err) {
|
||||||
if (*errp) {
|
error_reportf_err(err, "Error: ");
|
||||||
error_reportf_err(*errp, "Error: ");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -734,7 +733,7 @@ void hmp_info_vnc(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
info2l = qmp_query_vnc_servers(&err);
|
info2l = qmp_query_vnc_servers(&err);
|
||||||
if (err) {
|
if (err) {
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!info2l) {
|
if (!info2l) {
|
||||||
|
@ -850,7 +849,7 @@ void hmp_info_balloon(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
info = qmp_query_balloon(&err);
|
info = qmp_query_balloon(&err);
|
||||||
if (err) {
|
if (err) {
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1172,7 +1171,7 @@ void hmp_sync_profile(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
error_setg(&err, QERR_INVALID_PARAMETER, op);
|
error_setg(&err, QERR_INVALID_PARAMETER, op);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1191,7 +1190,7 @@ void hmp_exit_preconfig(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_x_exit_preconfig(&err);
|
qmp_x_exit_preconfig(&err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_cpu(Monitor *mon, const QDict *qdict)
|
void hmp_cpu(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1220,7 +1219,7 @@ void hmp_memsave(Monitor *mon, const QDict *qdict)
|
||||||
}
|
}
|
||||||
|
|
||||||
qmp_memsave(addr, size, filename, true, cpu_index, &err);
|
qmp_memsave(addr, size, filename, true, cpu_index, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_pmemsave(Monitor *mon, const QDict *qdict)
|
void hmp_pmemsave(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1231,7 +1230,7 @@ void hmp_pmemsave(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_pmemsave(addr, size, filename, &err);
|
qmp_pmemsave(addr, size, filename, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_ringbuf_write(Monitor *mon, const QDict *qdict)
|
void hmp_ringbuf_write(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1242,7 +1241,7 @@ void hmp_ringbuf_write(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
qmp_ringbuf_write(chardev, data, false, 0, &err);
|
qmp_ringbuf_write(chardev, data, false, 0, &err);
|
||||||
|
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_ringbuf_read(Monitor *mon, const QDict *qdict)
|
void hmp_ringbuf_read(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1255,7 +1254,7 @@ void hmp_ringbuf_read(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
data = qmp_ringbuf_read(chardev, size, false, 0, &err);
|
data = qmp_ringbuf_read(chardev, size, false, 0, &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1280,7 +1279,7 @@ void hmp_cont(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_cont(&err);
|
qmp_cont(&err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_system_wakeup(Monitor *mon, const QDict *qdict)
|
void hmp_system_wakeup(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1288,7 +1287,7 @@ void hmp_system_wakeup(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_system_wakeup(&err);
|
qmp_system_wakeup(&err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_nmi(Monitor *mon, const QDict *qdict)
|
void hmp_nmi(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1296,7 +1295,7 @@ void hmp_nmi(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_inject_nmi(&err);
|
qmp_inject_nmi(&err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_set_link(Monitor *mon, const QDict *qdict)
|
void hmp_set_link(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1306,7 +1305,7 @@ void hmp_set_link(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_set_link(name, up, &err);
|
qmp_set_link(name, up, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_block_passwd(Monitor *mon, const QDict *qdict)
|
void hmp_block_passwd(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1316,7 +1315,7 @@ void hmp_block_passwd(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_block_passwd(true, device, false, NULL, password, &err);
|
qmp_block_passwd(true, device, false, NULL, password, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_balloon(Monitor *mon, const QDict *qdict)
|
void hmp_balloon(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1325,7 +1324,7 @@ void hmp_balloon(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_balloon(value, &err);
|
qmp_balloon(value, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_block_resize(Monitor *mon, const QDict *qdict)
|
void hmp_block_resize(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1335,7 +1334,7 @@ void hmp_block_resize(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_block_resize(true, device, false, NULL, size, &err);
|
qmp_block_resize(true, device, false, NULL, size, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_drive_mirror(Monitor *mon, const QDict *qdict)
|
void hmp_drive_mirror(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1358,11 +1357,11 @@ void hmp_drive_mirror(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
if (!filename) {
|
if (!filename) {
|
||||||
error_setg(&err, QERR_MISSING_PARAMETER, "target");
|
error_setg(&err, QERR_MISSING_PARAMETER, "target");
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
qmp_drive_mirror(&mirror, &err);
|
qmp_drive_mirror(&mirror, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_drive_backup(Monitor *mon, const QDict *qdict)
|
void hmp_drive_backup(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1388,12 +1387,12 @@ void hmp_drive_backup(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
if (!filename) {
|
if (!filename) {
|
||||||
error_setg(&err, QERR_MISSING_PARAMETER, "target");
|
error_setg(&err, QERR_MISSING_PARAMETER, "target");
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
qmp_drive_backup(&backup, &err);
|
qmp_drive_backup(&backup, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict)
|
void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1409,7 +1408,7 @@ void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict)
|
||||||
/* In the future, if 'snapshot-file' is not specified, the snapshot
|
/* In the future, if 'snapshot-file' is not specified, the snapshot
|
||||||
will be taken internally. Today it's actually required. */
|
will be taken internally. Today it's actually required. */
|
||||||
error_setg(&err, QERR_MISSING_PARAMETER, "snapshot-file");
|
error_setg(&err, QERR_MISSING_PARAMETER, "snapshot-file");
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1418,7 +1417,7 @@ void hmp_snapshot_blkdev(Monitor *mon, const QDict *qdict)
|
||||||
filename, false, NULL,
|
filename, false, NULL,
|
||||||
!!format, format,
|
!!format, format,
|
||||||
true, mode, &err);
|
true, mode, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_snapshot_blkdev_internal(Monitor *mon, const QDict *qdict)
|
void hmp_snapshot_blkdev_internal(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1428,7 +1427,7 @@ void hmp_snapshot_blkdev_internal(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_blockdev_snapshot_internal_sync(device, name, &err);
|
qmp_blockdev_snapshot_internal_sync(device, name, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_snapshot_delete_blkdev_internal(Monitor *mon, const QDict *qdict)
|
void hmp_snapshot_delete_blkdev_internal(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1440,7 +1439,7 @@ void hmp_snapshot_delete_blkdev_internal(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
qmp_blockdev_snapshot_delete_internal_sync(device, !!id, id,
|
qmp_blockdev_snapshot_delete_internal_sync(device, !!id, id,
|
||||||
true, name, &err);
|
true, name, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_loadvm(Monitor *mon, const QDict *qdict)
|
void hmp_loadvm(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1454,7 +1453,7 @@ void hmp_loadvm(Monitor *mon, const QDict *qdict)
|
||||||
if (load_snapshot(name, &err) == 0 && saved_vm_running) {
|
if (load_snapshot(name, &err) == 0 && saved_vm_running) {
|
||||||
vm_start();
|
vm_start();
|
||||||
}
|
}
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_savevm(Monitor *mon, const QDict *qdict)
|
void hmp_savevm(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1462,7 +1461,7 @@ void hmp_savevm(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
save_snapshot(qdict_get_try_str(qdict, "name"), &err);
|
save_snapshot(qdict_get_try_str(qdict, "name"), &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_delvm(Monitor *mon, const QDict *qdict)
|
void hmp_delvm(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1476,7 +1475,7 @@ void hmp_delvm(Monitor *mon, const QDict *qdict)
|
||||||
"deleting snapshot on device '%s': ",
|
"deleting snapshot on device '%s': ",
|
||||||
bdrv_get_device_name(bs));
|
bdrv_get_device_name(bs));
|
||||||
}
|
}
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_info_snapshots(Monitor *mon, const QDict *qdict)
|
void hmp_info_snapshots(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1652,7 +1651,7 @@ void hmp_migrate_continue(Monitor *mon, const QDict *qdict)
|
||||||
qmp_migrate_continue(val, &err);
|
qmp_migrate_continue(val, &err);
|
||||||
}
|
}
|
||||||
|
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_migrate_incoming(Monitor *mon, const QDict *qdict)
|
void hmp_migrate_incoming(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1662,7 +1661,7 @@ void hmp_migrate_incoming(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
qmp_migrate_incoming(uri, &err);
|
qmp_migrate_incoming(uri, &err);
|
||||||
|
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_migrate_recover(Monitor *mon, const QDict *qdict)
|
void hmp_migrate_recover(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1672,7 +1671,7 @@ void hmp_migrate_recover(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
qmp_migrate_recover(uri, &err);
|
qmp_migrate_recover(uri, &err);
|
||||||
|
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_migrate_pause(Monitor *mon, const QDict *qdict)
|
void hmp_migrate_pause(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1681,7 +1680,7 @@ void hmp_migrate_pause(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
qmp_migrate_pause(&err);
|
qmp_migrate_pause(&err);
|
||||||
|
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Kept for backwards compatibility */
|
/* Kept for backwards compatibility */
|
||||||
|
@ -1697,7 +1696,7 @@ void hmp_migrate_set_cache_size(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_migrate_set_cache_size(value, &err);
|
qmp_migrate_set_cache_size(value, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Kept for backwards compatibility */
|
/* Kept for backwards compatibility */
|
||||||
|
@ -1728,7 +1727,7 @@ void hmp_migrate_set_capability(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
end:
|
end:
|
||||||
qapi_free_MigrationCapabilityStatusList(caps);
|
qapi_free_MigrationCapabilityStatusList(caps);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict)
|
void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1869,7 +1868,7 @@ void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict)
|
||||||
cleanup:
|
cleanup:
|
||||||
qapi_free_MigrateSetParameters(p);
|
qapi_free_MigrateSetParameters(p);
|
||||||
visit_free(v);
|
visit_free(v);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_client_migrate_info(Monitor *mon, const QDict *qdict)
|
void hmp_client_migrate_info(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1886,14 +1885,14 @@ void hmp_client_migrate_info(Monitor *mon, const QDict *qdict)
|
||||||
qmp_client_migrate_info(protocol, hostname,
|
qmp_client_migrate_info(protocol, hostname,
|
||||||
has_port, port, has_tls_port, tls_port,
|
has_port, port, has_tls_port, tls_port,
|
||||||
!!cert_subject, cert_subject, &err);
|
!!cert_subject, cert_subject, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_migrate_start_postcopy(Monitor *mon, const QDict *qdict)
|
void hmp_migrate_start_postcopy(Monitor *mon, const QDict *qdict)
|
||||||
{
|
{
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
qmp_migrate_start_postcopy(&err);
|
qmp_migrate_start_postcopy(&err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_x_colo_lost_heartbeat(Monitor *mon, const QDict *qdict)
|
void hmp_x_colo_lost_heartbeat(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1901,7 +1900,7 @@ void hmp_x_colo_lost_heartbeat(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_x_colo_lost_heartbeat(&err);
|
qmp_x_colo_lost_heartbeat(&err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_set_password(Monitor *mon, const QDict *qdict)
|
void hmp_set_password(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1912,7 +1911,7 @@ void hmp_set_password(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_set_password(protocol, password, !!connected, connected, &err);
|
qmp_set_password(protocol, password, !!connected, connected, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_expire_password(Monitor *mon, const QDict *qdict)
|
void hmp_expire_password(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1922,7 +1921,7 @@ void hmp_expire_password(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_expire_password(protocol, whenstr, &err);
|
qmp_expire_password(protocol, whenstr, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_eject(Monitor *mon, const QDict *qdict)
|
void hmp_eject(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -1932,7 +1931,7 @@ void hmp_eject(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_eject(true, device, false, NULL, true, force, &err);
|
qmp_eject(true, device, false, NULL, true, force, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_VNC
|
#ifdef CONFIG_VNC
|
||||||
|
@ -1978,7 +1977,7 @@ void hmp_change(Monitor *mon, const QDict *qdict)
|
||||||
read_only,
|
read_only,
|
||||||
BLOCKDEV_CHANGE_READ_ONLY_MODE_RETAIN, &err);
|
BLOCKDEV_CHANGE_READ_ONLY_MODE_RETAIN, &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1988,7 +1987,7 @@ void hmp_change(Monitor *mon, const QDict *qdict)
|
||||||
&err);
|
&err);
|
||||||
}
|
}
|
||||||
|
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_block_set_io_throttle(Monitor *mon, const QDict *qdict)
|
void hmp_block_set_io_throttle(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2016,7 +2015,7 @@ void hmp_block_set_io_throttle(Monitor *mon, const QDict *qdict)
|
||||||
}
|
}
|
||||||
|
|
||||||
qmp_block_set_io_throttle(&throttle, &err);
|
qmp_block_set_io_throttle(&throttle, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_block_stream(Monitor *mon, const QDict *qdict)
|
void hmp_block_stream(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2031,7 +2030,7 @@ void hmp_block_stream(Monitor *mon, const QDict *qdict)
|
||||||
BLOCKDEV_ON_ERROR_REPORT, false, false, false, false,
|
BLOCKDEV_ON_ERROR_REPORT, false, false, false, false,
|
||||||
&error);
|
&error);
|
||||||
|
|
||||||
hmp_handle_error(mon, &error);
|
hmp_handle_error(mon, error);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_block_job_set_speed(Monitor *mon, const QDict *qdict)
|
void hmp_block_job_set_speed(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2042,7 +2041,7 @@ void hmp_block_job_set_speed(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
qmp_block_job_set_speed(device, value, &error);
|
qmp_block_job_set_speed(device, value, &error);
|
||||||
|
|
||||||
hmp_handle_error(mon, &error);
|
hmp_handle_error(mon, error);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_block_job_cancel(Monitor *mon, const QDict *qdict)
|
void hmp_block_job_cancel(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2053,7 +2052,7 @@ void hmp_block_job_cancel(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
qmp_block_job_cancel(device, true, force, &error);
|
qmp_block_job_cancel(device, true, force, &error);
|
||||||
|
|
||||||
hmp_handle_error(mon, &error);
|
hmp_handle_error(mon, error);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_block_job_pause(Monitor *mon, const QDict *qdict)
|
void hmp_block_job_pause(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2063,7 +2062,7 @@ void hmp_block_job_pause(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
qmp_block_job_pause(device, &error);
|
qmp_block_job_pause(device, &error);
|
||||||
|
|
||||||
hmp_handle_error(mon, &error);
|
hmp_handle_error(mon, error);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_block_job_resume(Monitor *mon, const QDict *qdict)
|
void hmp_block_job_resume(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2073,7 +2072,7 @@ void hmp_block_job_resume(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
qmp_block_job_resume(device, &error);
|
qmp_block_job_resume(device, &error);
|
||||||
|
|
||||||
hmp_handle_error(mon, &error);
|
hmp_handle_error(mon, error);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_block_job_complete(Monitor *mon, const QDict *qdict)
|
void hmp_block_job_complete(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2083,7 +2082,7 @@ void hmp_block_job_complete(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
qmp_block_job_complete(device, &error);
|
qmp_block_job_complete(device, &error);
|
||||||
|
|
||||||
hmp_handle_error(mon, &error);
|
hmp_handle_error(mon, error);
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct HMPMigrationStatus
|
typedef struct HMPMigrationStatus
|
||||||
|
@ -2143,7 +2142,7 @@ void hmp_migrate(Monitor *mon, const QDict *qdict)
|
||||||
qmp_migrate(uri, !!blk, blk, !!inc, inc,
|
qmp_migrate(uri, !!blk, blk, !!inc, inc,
|
||||||
false, false, true, resume, &err);
|
false, false, true, resume, &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2181,7 +2180,7 @@ void hmp_netdev_add(Monitor *mon, const QDict *qdict)
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_netdev_del(Monitor *mon, const QDict *qdict)
|
void hmp_netdev_del(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2190,7 +2189,7 @@ void hmp_netdev_del(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_netdev_del(id, &err);
|
qmp_netdev_del(id, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_object_add(Monitor *mon, const QDict *qdict)
|
void hmp_object_add(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2201,7 +2200,7 @@ void hmp_object_add(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
opts = qemu_opts_from_qdict(qemu_find_opts("object"), qdict, &err);
|
opts = qemu_opts_from_qdict(qemu_find_opts("object"), qdict, &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2209,7 +2208,7 @@ void hmp_object_add(Monitor *mon, const QDict *qdict)
|
||||||
qemu_opts_del(opts);
|
qemu_opts_del(opts);
|
||||||
|
|
||||||
if (err) {
|
if (err) {
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
if (obj) {
|
if (obj) {
|
||||||
object_unref(obj);
|
object_unref(obj);
|
||||||
|
@ -2222,7 +2221,7 @@ void hmp_getfd(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_getfd(fdname, &err);
|
qmp_getfd(fdname, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_closefd(Monitor *mon, const QDict *qdict)
|
void hmp_closefd(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2231,7 +2230,7 @@ void hmp_closefd(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_closefd(fdname, &err);
|
qmp_closefd(fdname, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_sendkey(Monitor *mon, const QDict *qdict)
|
void hmp_sendkey(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2290,7 +2289,7 @@ void hmp_sendkey(Monitor *mon, const QDict *qdict)
|
||||||
}
|
}
|
||||||
|
|
||||||
qmp_send_key(head, has_hold_time, hold_time, &err);
|
qmp_send_key(head, has_hold_time, hold_time, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
qapi_free_KeyValueList(head);
|
qapi_free_KeyValueList(head);
|
||||||
|
@ -2309,7 +2308,7 @@ void hmp_screendump(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_screendump(filename, id != NULL, id, id != NULL, head, &err);
|
qmp_screendump(filename, id != NULL, id, id != NULL, head, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_nbd_server_start(Monitor *mon, const QDict *qdict)
|
void hmp_nbd_server_start(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2364,7 +2363,7 @@ void hmp_nbd_server_start(Monitor *mon, const QDict *qdict)
|
||||||
qapi_free_BlockInfoList(block_list);
|
qapi_free_BlockInfoList(block_list);
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
hmp_handle_error(mon, &local_err);
|
hmp_handle_error(mon, local_err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_nbd_server_add(Monitor *mon, const QDict *qdict)
|
void hmp_nbd_server_add(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2376,7 +2375,7 @@ void hmp_nbd_server_add(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
qmp_nbd_server_add(device, !!name, name, true, writable,
|
qmp_nbd_server_add(device, !!name, name, true, writable,
|
||||||
false, NULL, &local_err);
|
false, NULL, &local_err);
|
||||||
hmp_handle_error(mon, &local_err);
|
hmp_handle_error(mon, local_err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_nbd_server_remove(Monitor *mon, const QDict *qdict)
|
void hmp_nbd_server_remove(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2387,7 +2386,7 @@ void hmp_nbd_server_remove(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
/* Rely on NBD_SERVER_REMOVE_MODE_SAFE being the default */
|
/* Rely on NBD_SERVER_REMOVE_MODE_SAFE being the default */
|
||||||
qmp_nbd_server_remove(name, force, NBD_SERVER_REMOVE_MODE_HARD, &err);
|
qmp_nbd_server_remove(name, force, NBD_SERVER_REMOVE_MODE_HARD, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_nbd_server_stop(Monitor *mon, const QDict *qdict)
|
void hmp_nbd_server_stop(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2395,7 +2394,7 @@ void hmp_nbd_server_stop(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_nbd_server_stop(&err);
|
qmp_nbd_server_stop(&err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_chardev_add(Monitor *mon, const QDict *qdict)
|
void hmp_chardev_add(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2411,7 +2410,7 @@ void hmp_chardev_add(Monitor *mon, const QDict *qdict)
|
||||||
qemu_chr_new_from_opts(opts, NULL, &err);
|
qemu_chr_new_from_opts(opts, NULL, &err);
|
||||||
qemu_opts_del(opts);
|
qemu_opts_del(opts);
|
||||||
}
|
}
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_chardev_change(Monitor *mon, const QDict *qdict)
|
void hmp_chardev_change(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2445,7 +2444,7 @@ end:
|
||||||
qapi_free_ChardevReturn(ret);
|
qapi_free_ChardevReturn(ret);
|
||||||
qapi_free_ChardevBackend(backend);
|
qapi_free_ChardevBackend(backend);
|
||||||
qemu_opts_del(opts);
|
qemu_opts_del(opts);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_chardev_remove(Monitor *mon, const QDict *qdict)
|
void hmp_chardev_remove(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2453,7 +2452,7 @@ void hmp_chardev_remove(Monitor *mon, const QDict *qdict)
|
||||||
Error *local_err = NULL;
|
Error *local_err = NULL;
|
||||||
|
|
||||||
qmp_chardev_remove(qdict_get_str(qdict, "id"), &local_err);
|
qmp_chardev_remove(qdict_get_str(qdict, "id"), &local_err);
|
||||||
hmp_handle_error(mon, &local_err);
|
hmp_handle_error(mon, local_err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_chardev_send_break(Monitor *mon, const QDict *qdict)
|
void hmp_chardev_send_break(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2461,7 +2460,7 @@ void hmp_chardev_send_break(Monitor *mon, const QDict *qdict)
|
||||||
Error *local_err = NULL;
|
Error *local_err = NULL;
|
||||||
|
|
||||||
qmp_chardev_send_break(qdict_get_str(qdict, "id"), &local_err);
|
qmp_chardev_send_break(qdict_get_str(qdict, "id"), &local_err);
|
||||||
hmp_handle_error(mon, &local_err);
|
hmp_handle_error(mon, local_err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_qemu_io(Monitor *mon, const QDict *qdict)
|
void hmp_qemu_io(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2517,7 +2516,7 @@ void hmp_qemu_io(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
blk_unref(local_blk);
|
blk_unref(local_blk);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_object_del(Monitor *mon, const QDict *qdict)
|
void hmp_object_del(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2526,7 +2525,7 @@ void hmp_object_del(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
user_creatable_del(id, &err);
|
user_creatable_del(id, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_info_memory_devices(Monitor *mon, const QDict *qdict)
|
void hmp_info_memory_devices(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2576,7 +2575,7 @@ void hmp_info_memory_devices(Monitor *mon, const QDict *qdict)
|
||||||
}
|
}
|
||||||
|
|
||||||
qapi_free_MemoryDeviceInfoList(info_list);
|
qapi_free_MemoryDeviceInfoList(info_list);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_info_iothreads(Monitor *mon, const QDict *qdict)
|
void hmp_info_iothreads(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -2605,7 +2604,7 @@ void hmp_rocker(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
rocker = qmp_query_rocker(name, &err);
|
rocker = qmp_query_rocker(name, &err);
|
||||||
if (err != NULL) {
|
if (err != NULL) {
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2624,7 +2623,7 @@ void hmp_rocker_ports(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
list = qmp_query_rocker_ports(name, &err);
|
list = qmp_query_rocker_ports(name, &err);
|
||||||
if (err != NULL) {
|
if (err != NULL) {
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2653,7 +2652,7 @@ void hmp_rocker_of_dpa_flows(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
list = qmp_query_rocker_of_dpa_flows(name, tbl_id != -1, tbl_id, &err);
|
list = qmp_query_rocker_of_dpa_flows(name, tbl_id != -1, tbl_id, &err);
|
||||||
if (err != NULL) {
|
if (err != NULL) {
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2804,7 +2803,7 @@ void hmp_rocker_of_dpa_groups(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
list = qmp_query_rocker_of_dpa_groups(name, type != 9, type, &err);
|
list = qmp_query_rocker_of_dpa_groups(name, type != 9, type, &err);
|
||||||
if (err != NULL) {
|
if (err != NULL) {
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2911,7 +2910,7 @@ void hmp_info_vm_generation_id(Monitor *mon, const QDict *qdict)
|
||||||
if (info) {
|
if (info) {
|
||||||
monitor_printf(mon, "%s\n", info->guid);
|
monitor_printf(mon, "%s\n", info->guid);
|
||||||
}
|
}
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
qapi_free_GuidInfo(info);
|
qapi_free_GuidInfo(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2930,5 +2929,5 @@ void hmp_info_memory_size_summary(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
qapi_free_MemoryInfo(info);
|
qapi_free_MemoryInfo(info);
|
||||||
}
|
}
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,7 +109,7 @@ void qmp_system_reset(Error **errp)
|
||||||
qemu_system_reset_request(SHUTDOWN_CAUSE_HOST_QMP_SYSTEM_RESET);
|
qemu_system_reset_request(SHUTDOWN_CAUSE_HOST_QMP_SYSTEM_RESET);
|
||||||
}
|
}
|
||||||
|
|
||||||
void qmp_system_powerdown(Error **erp)
|
void qmp_system_powerdown(Error **errp)
|
||||||
{
|
{
|
||||||
qemu_system_powerdown_request();
|
qemu_system_powerdown_request();
|
||||||
}
|
}
|
||||||
|
|
17
net/net.c
17
net/net.c
|
@ -1126,16 +1126,13 @@ static int net_client_init(QemuOpts *opts, bool is_netdev, Error **errp)
|
||||||
|
|
||||||
prefix_addr = substrings[0];
|
prefix_addr = substrings[0];
|
||||||
|
|
||||||
if (substrings[1]) {
|
/* Handle user-specified prefix length. */
|
||||||
/* User-specified prefix length. */
|
if (substrings[1] &&
|
||||||
int err;
|
qemu_strtoul(substrings[1], NULL, 10, &prefix_len))
|
||||||
|
{
|
||||||
err = qemu_strtoul(substrings[1], NULL, 10, &prefix_len);
|
error_setg(errp, QERR_INVALID_PARAMETER_VALUE,
|
||||||
if (err) {
|
"ipv6-prefixlen", "a number");
|
||||||
error_setg(errp, QERR_INVALID_PARAMETER_VALUE,
|
goto out;
|
||||||
"ipv6-prefixlen", "a number");
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
qemu_opt_set(opts, "ipv6-prefix", prefix_addr, &error_abort);
|
qemu_opt_set(opts, "ipv6-prefix", prefix_addr, &error_abort);
|
||||||
|
|
|
@ -328,7 +328,8 @@ static Object *qdev_get_peripheral_anon(void)
|
||||||
return dev;
|
return dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void qbus_list_bus(DeviceState *dev, Error **errp)
|
static void qbus_error_append_bus_list_hint(DeviceState *dev,
|
||||||
|
Error *const *errp)
|
||||||
{
|
{
|
||||||
BusState *child;
|
BusState *child;
|
||||||
const char *sep = " ";
|
const char *sep = " ";
|
||||||
|
@ -342,7 +343,8 @@ static void qbus_list_bus(DeviceState *dev, Error **errp)
|
||||||
error_append_hint(errp, "\n");
|
error_append_hint(errp, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void qbus_list_dev(BusState *bus, Error **errp)
|
static void qbus_error_append_dev_list_hint(BusState *bus,
|
||||||
|
Error *const *errp)
|
||||||
{
|
{
|
||||||
BusChild *kid;
|
BusChild *kid;
|
||||||
const char *sep = " ";
|
const char *sep = " ";
|
||||||
|
@ -500,7 +502,7 @@ static BusState *qbus_find(const char *path, Error **errp)
|
||||||
if (!dev) {
|
if (!dev) {
|
||||||
error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
|
error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
|
||||||
"Device '%s' not found", elem);
|
"Device '%s' not found", elem);
|
||||||
qbus_list_dev(bus, errp);
|
qbus_error_append_dev_list_hint(bus, errp);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -518,7 +520,7 @@ static BusState *qbus_find(const char *path, Error **errp)
|
||||||
if (dev->num_child_bus) {
|
if (dev->num_child_bus) {
|
||||||
error_setg(errp, "Device '%s' has multiple child buses",
|
error_setg(errp, "Device '%s' has multiple child buses",
|
||||||
elem);
|
elem);
|
||||||
qbus_list_bus(dev, errp);
|
qbus_error_append_bus_list_hint(dev, errp);
|
||||||
} else {
|
} else {
|
||||||
error_setg(errp, "Device '%s' has no child bus", elem);
|
error_setg(errp, "Device '%s' has no child bus", elem);
|
||||||
}
|
}
|
||||||
|
@ -534,7 +536,7 @@ static BusState *qbus_find(const char *path, Error **errp)
|
||||||
bus = qbus_find_bus(dev, elem);
|
bus = qbus_find_bus(dev, elem);
|
||||||
if (!bus) {
|
if (!bus) {
|
||||||
error_setg(errp, "Bus '%s' not found", elem);
|
error_setg(errp, "Bus '%s' not found", elem);
|
||||||
qbus_list_bus(dev, errp);
|
qbus_error_append_bus_list_hint(dev, errp);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -890,7 +892,7 @@ void hmp_device_add(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_device_add((QDict *)qdict, NULL, &err);
|
qmp_device_add((QDict *)qdict, NULL, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_device_del(Monitor *mon, const QDict *qdict)
|
void hmp_device_del(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -899,7 +901,7 @@ void hmp_device_del(Monitor *mon, const QDict *qdict)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
qmp_device_del(id, &err);
|
qmp_device_del(id, &err);
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
BlockBackend *blk_by_qdev_id(const char *id, Error **errp)
|
BlockBackend *blk_by_qdev_id(const char *id, Error **errp)
|
||||||
|
|
|
@ -4167,13 +4167,17 @@ DEF("no-kvm", 0, QEMU_OPTION_no_kvm, "", QEMU_ARCH_I386)
|
||||||
|
|
||||||
DEF("msg", HAS_ARG, QEMU_OPTION_msg,
|
DEF("msg", HAS_ARG, QEMU_OPTION_msg,
|
||||||
"-msg timestamp[=on|off]\n"
|
"-msg timestamp[=on|off]\n"
|
||||||
" change the format of messages\n"
|
" control error message format\n"
|
||||||
" on|off controls leading timestamps (default:on)\n",
|
" timestamp=on enables timestamps (default: off)\n",
|
||||||
QEMU_ARCH_ALL)
|
QEMU_ARCH_ALL)
|
||||||
STEXI
|
STEXI
|
||||||
@item -msg timestamp[=on|off]
|
@item -msg timestamp[=on|off]
|
||||||
@findex -msg
|
@findex -msg
|
||||||
prepend a timestamp to each log message.(default:on)
|
Control error message format.
|
||||||
|
@table @option
|
||||||
|
@item timestamp=on|off
|
||||||
|
Prefix messages with a timestamp. Default is off.
|
||||||
|
@end table
|
||||||
ETEXI
|
ETEXI
|
||||||
|
|
||||||
DEF("dump-vmstate", HAS_ARG, QEMU_OPTION_dump_vmstate,
|
DEF("dump-vmstate", HAS_ARG, QEMU_OPTION_dump_vmstate,
|
||||||
|
|
|
@ -1060,6 +1060,7 @@ static void build_guest_fsinfo_for_virtual_device(char const *syspath,
|
||||||
GuestFilesystemInfo *fs,
|
GuestFilesystemInfo *fs,
|
||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
|
Error *err = NULL;
|
||||||
DIR *dir;
|
DIR *dir;
|
||||||
char *dirpath;
|
char *dirpath;
|
||||||
struct dirent *entry;
|
struct dirent *entry;
|
||||||
|
@ -1089,10 +1090,11 @@ static void build_guest_fsinfo_for_virtual_device(char const *syspath,
|
||||||
|
|
||||||
g_debug(" slave device '%s'", entry->d_name);
|
g_debug(" slave device '%s'", entry->d_name);
|
||||||
path = g_strdup_printf("%s/slaves/%s", syspath, entry->d_name);
|
path = g_strdup_printf("%s/slaves/%s", syspath, entry->d_name);
|
||||||
build_guest_fsinfo_for_device(path, fs, errp);
|
build_guest_fsinfo_for_device(path, fs, &err);
|
||||||
g_free(path);
|
g_free(path);
|
||||||
|
|
||||||
if (*errp) {
|
if (err) {
|
||||||
|
error_propagate(errp, err);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2792,7 +2794,7 @@ static double ga_get_login_time(struct utmpx *user_info)
|
||||||
return seconds + useconds;
|
return seconds + useconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
GuestUserList *qmp_guest_get_users(Error **err)
|
GuestUserList *qmp_guest_get_users(Error **errp)
|
||||||
{
|
{
|
||||||
GHashTable *cache = NULL;
|
GHashTable *cache = NULL;
|
||||||
GuestUserList *head = NULL, *cur_item = NULL;
|
GuestUserList *head = NULL, *cur_item = NULL;
|
||||||
|
|
|
@ -1946,7 +1946,7 @@ typedef struct _GA_WTSINFOA {
|
||||||
|
|
||||||
} GA_WTSINFOA;
|
} GA_WTSINFOA;
|
||||||
|
|
||||||
GuestUserList *qmp_guest_get_users(Error **err)
|
GuestUserList *qmp_guest_get_users(Error **errp)
|
||||||
{
|
{
|
||||||
#define QGA_NANOSECONDS 10000000
|
#define QGA_NANOSECONDS 10000000
|
||||||
|
|
||||||
|
|
|
@ -143,7 +143,7 @@ static GuestExecInfo *guest_exec_info_find(int64_t pid_numeric)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
GuestExecStatus *qmp_guest_exec_status(int64_t pid, Error **err)
|
GuestExecStatus *qmp_guest_exec_status(int64_t pid, Error **errp)
|
||||||
{
|
{
|
||||||
GuestExecInfo *gei;
|
GuestExecInfo *gei;
|
||||||
GuestExecStatus *ges;
|
GuestExecStatus *ges;
|
||||||
|
@ -152,7 +152,7 @@ GuestExecStatus *qmp_guest_exec_status(int64_t pid, Error **err)
|
||||||
|
|
||||||
gei = guest_exec_info_find(pid);
|
gei = guest_exec_info_find(pid);
|
||||||
if (gei == NULL) {
|
if (gei == NULL) {
|
||||||
error_setg(err, QERR_INVALID_PARAMETER, "pid");
|
error_setg(errp, QERR_INVALID_PARAMETER, "pid");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -385,7 +385,7 @@ GuestExec *qmp_guest_exec(const char *path,
|
||||||
bool has_env, strList *env,
|
bool has_env, strList *env,
|
||||||
bool has_input_data, const char *input_data,
|
bool has_input_data, const char *input_data,
|
||||||
bool has_capture_output, bool capture_output,
|
bool has_capture_output, bool capture_output,
|
||||||
Error **err)
|
Error **errp)
|
||||||
{
|
{
|
||||||
GPid pid;
|
GPid pid;
|
||||||
GuestExec *ge = NULL;
|
GuestExec *ge = NULL;
|
||||||
|
@ -405,7 +405,7 @@ GuestExec *qmp_guest_exec(const char *path,
|
||||||
arglist.next = has_arg ? arg : NULL;
|
arglist.next = has_arg ? arg : NULL;
|
||||||
|
|
||||||
if (has_input_data) {
|
if (has_input_data) {
|
||||||
input = qbase64_decode(input_data, -1, &ninput, err);
|
input = qbase64_decode(input_data, -1, &ninput, errp);
|
||||||
if (!input) {
|
if (!input) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -424,7 +424,7 @@ GuestExec *qmp_guest_exec(const char *path,
|
||||||
guest_exec_task_setup, NULL, &pid, has_input_data ? &in_fd : NULL,
|
guest_exec_task_setup, NULL, &pid, has_input_data ? &in_fd : NULL,
|
||||||
has_output ? &out_fd : NULL, has_output ? &err_fd : NULL, &gerr);
|
has_output ? &out_fd : NULL, has_output ? &err_fd : NULL, &gerr);
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
error_setg(err, QERR_QGA_COMMAND_FAILED, gerr->message);
|
error_setg(errp, QERR_QGA_COMMAND_FAILED, gerr->message);
|
||||||
g_error_free(gerr);
|
g_error_free(gerr);
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
@ -499,7 +499,7 @@ int ga_parse_whence(GuestFileWhence *whence, Error **errp)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
GuestHostName *qmp_guest_get_host_name(Error **err)
|
GuestHostName *qmp_guest_get_host_name(Error **errp)
|
||||||
{
|
{
|
||||||
GuestHostName *result = NULL;
|
GuestHostName *result = NULL;
|
||||||
gchar const *hostname = g_get_host_name();
|
gchar const *hostname = g_get_host_name();
|
||||||
|
|
|
@ -37,7 +37,7 @@ void hmp_qom_list(Monitor *mon, const QDict *qdict)
|
||||||
}
|
}
|
||||||
qapi_free_ObjectPropertyInfoList(start);
|
qapi_free_ObjectPropertyInfoList(start);
|
||||||
}
|
}
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hmp_qom_set(Monitor *mon, const QDict *qdict)
|
void hmp_qom_set(Monitor *mon, const QDict *qdict)
|
||||||
|
@ -59,7 +59,7 @@ void hmp_qom_set(Monitor *mon, const QDict *qdict)
|
||||||
}
|
}
|
||||||
object_property_parse(obj, value, property, &err);
|
object_property_parse(obj, value, property, &err);
|
||||||
}
|
}
|
||||||
hmp_handle_error(mon, &err);
|
hmp_handle_error(mon, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct QOMCompositionState {
|
typedef struct QOMCompositionState {
|
||||||
|
|
|
@ -2076,7 +2076,7 @@ int kvmppc_set_smt_threads(int smt)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void kvmppc_error_append_smt_possible_hint(Error **errp_in)
|
void kvmppc_error_append_smt_possible_hint(Error *const *errp)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
GString *g;
|
GString *g;
|
||||||
|
@ -2091,10 +2091,10 @@ void kvmppc_error_append_smt_possible_hint(Error **errp_in)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
s = g_string_free(g, false);
|
s = g_string_free(g, false);
|
||||||
error_append_hint(errp_in, "%s.\n", s);
|
error_append_hint(errp, "%s.\n", s);
|
||||||
g_free(s);
|
g_free(s);
|
||||||
} else {
|
} else {
|
||||||
error_append_hint(errp_in,
|
error_append_hint(errp,
|
||||||
"This KVM seems to be too old to support VSMT.\n");
|
"This KVM seems to be too old to support VSMT.\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@ void kvmppc_set_papr(PowerPCCPU *cpu);
|
||||||
int kvmppc_set_compat(PowerPCCPU *cpu, uint32_t compat_pvr);
|
int kvmppc_set_compat(PowerPCCPU *cpu, uint32_t compat_pvr);
|
||||||
void kvmppc_set_mpic_proxy(PowerPCCPU *cpu, int mpic_proxy);
|
void kvmppc_set_mpic_proxy(PowerPCCPU *cpu, int mpic_proxy);
|
||||||
int kvmppc_smt_threads(void);
|
int kvmppc_smt_threads(void);
|
||||||
void kvmppc_error_append_smt_possible_hint(Error **errp_in);
|
void kvmppc_error_append_smt_possible_hint(Error *const *errp);
|
||||||
int kvmppc_set_smt_threads(int smt);
|
int kvmppc_set_smt_threads(int smt);
|
||||||
int kvmppc_clear_tsr_bits(PowerPCCPU *cpu, uint32_t tsr_bits);
|
int kvmppc_clear_tsr_bits(PowerPCCPU *cpu, uint32_t tsr_bits);
|
||||||
int kvmppc_or_tsr_bits(PowerPCCPU *cpu, uint32_t tsr_bits);
|
int kvmppc_or_tsr_bits(PowerPCCPU *cpu, uint32_t tsr_bits);
|
||||||
|
@ -164,7 +164,7 @@ static inline int kvmppc_smt_threads(void)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void kvmppc_error_append_smt_possible_hint(Error **errp_in)
|
static inline void kvmppc_error_append_smt_possible_hint(Error *const *errp)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,13 +34,13 @@ static BlockJob *mk_job(BlockBackend *blk, const char *id,
|
||||||
int flags)
|
int flags)
|
||||||
{
|
{
|
||||||
BlockJob *job;
|
BlockJob *job;
|
||||||
Error *errp = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
job = block_job_create(id, drv, NULL, blk_bs(blk),
|
job = block_job_create(id, drv, NULL, blk_bs(blk),
|
||||||
0, BLK_PERM_ALL, 0, flags, block_job_cb,
|
0, BLK_PERM_ALL, 0, flags, block_job_cb,
|
||||||
NULL, &errp);
|
NULL, &err);
|
||||||
if (should_succeed) {
|
if (should_succeed) {
|
||||||
g_assert_null(errp);
|
g_assert_null(err);
|
||||||
g_assert_nonnull(job);
|
g_assert_nonnull(job);
|
||||||
if (id) {
|
if (id) {
|
||||||
g_assert_cmpstr(job->job.id, ==, id);
|
g_assert_cmpstr(job->job.id, ==, id);
|
||||||
|
@ -48,9 +48,8 @@ static BlockJob *mk_job(BlockBackend *blk, const char *id,
|
||||||
g_assert_cmpstr(job->job.id, ==, blk_name(blk));
|
g_assert_cmpstr(job->job.id, ==, blk_name(blk));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
g_assert_nonnull(errp);
|
error_free_or_abort(&err);
|
||||||
g_assert_null(job);
|
g_assert_null(job);
|
||||||
error_free(errp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return job;
|
return job;
|
||||||
|
@ -80,9 +79,9 @@ static BlockBackend *create_blk(const char *name)
|
||||||
bdrv_unref(bs);
|
bdrv_unref(bs);
|
||||||
|
|
||||||
if (name) {
|
if (name) {
|
||||||
Error *errp = NULL;
|
Error *err = NULL;
|
||||||
monitor_add_blk(blk, name, &errp);
|
monitor_add_blk(blk, name, &err);
|
||||||
g_assert_null(errp);
|
g_assert_null(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
return blk;
|
return blk;
|
||||||
|
|
|
@ -145,10 +145,10 @@ static void test_visitor_out_enum_errors(TestOutputVisitorData *data,
|
||||||
const void *unused)
|
const void *unused)
|
||||||
{
|
{
|
||||||
EnumOne i, bad_values[] = { ENUM_ONE__MAX, -1 };
|
EnumOne i, bad_values[] = { ENUM_ONE__MAX, -1 };
|
||||||
Error *err;
|
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(bad_values) ; i++) {
|
for (i = 0; i < ARRAY_SIZE(bad_values) ; i++) {
|
||||||
err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
visit_type_EnumOne(data->ov, "unused", &bad_values[i], &err);
|
visit_type_EnumOne(data->ov, "unused", &bad_values[i], &err);
|
||||||
error_free_or_abort(&err);
|
error_free_or_abort(&err);
|
||||||
visitor_reset(data);
|
visitor_reset(data);
|
||||||
|
@ -240,11 +240,11 @@ static void test_visitor_out_struct_errors(TestOutputVisitorData *data,
|
||||||
EnumOne bad_values[] = { ENUM_ONE__MAX, -1 };
|
EnumOne bad_values[] = { ENUM_ONE__MAX, -1 };
|
||||||
UserDefOne u = {0};
|
UserDefOne u = {0};
|
||||||
UserDefOne *pu = &u;
|
UserDefOne *pu = &u;
|
||||||
Error *err;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(bad_values) ; i++) {
|
for (i = 0; i < ARRAY_SIZE(bad_values) ; i++) {
|
||||||
err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
u.has_enum1 = true;
|
u.has_enum1 = true;
|
||||||
u.enum1 = bad_values[i];
|
u.enum1 = bad_values[i];
|
||||||
visit_type_UserDefOne(data->ov, "unused", &pu, &err);
|
visit_type_UserDefOne(data->ov, "unused", &pu, &err);
|
||||||
|
|
|
@ -207,10 +207,10 @@ static void test_visitor_out_enum_errors(TestOutputVisitorData *data,
|
||||||
const void *unused)
|
const void *unused)
|
||||||
{
|
{
|
||||||
EnumOne i, bad_values[] = { ENUM_ONE__MAX, -1 };
|
EnumOne i, bad_values[] = { ENUM_ONE__MAX, -1 };
|
||||||
Error *err;
|
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(bad_values) ; i++) {
|
for (i = 0; i < ARRAY_SIZE(bad_values) ; i++) {
|
||||||
err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
visit_type_EnumOne(data->ov, "unused", &bad_values[i], &err);
|
visit_type_EnumOne(data->ov, "unused", &bad_values[i], &err);
|
||||||
error_free_or_abort(&err);
|
error_free_or_abort(&err);
|
||||||
}
|
}
|
||||||
|
|
20
ui/vnc.c
20
ui/vnc.c
|
@ -1312,7 +1312,7 @@ void vnc_disconnect_finish(VncState *vs)
|
||||||
g_free(vs);
|
g_free(vs);
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t vnc_client_io_error(VncState *vs, ssize_t ret, Error **errp)
|
size_t vnc_client_io_error(VncState *vs, ssize_t ret, Error *err)
|
||||||
{
|
{
|
||||||
if (ret <= 0) {
|
if (ret <= 0) {
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
|
@ -1320,15 +1320,11 @@ size_t vnc_client_io_error(VncState *vs, ssize_t ret, Error **errp)
|
||||||
vnc_disconnect_start(vs);
|
vnc_disconnect_start(vs);
|
||||||
} else if (ret != QIO_CHANNEL_ERR_BLOCK) {
|
} else if (ret != QIO_CHANNEL_ERR_BLOCK) {
|
||||||
trace_vnc_client_io_error(vs, vs->ioc,
|
trace_vnc_client_io_error(vs, vs->ioc,
|
||||||
errp ? error_get_pretty(*errp) :
|
err ? error_get_pretty(err) : "Unknown");
|
||||||
"Unknown");
|
|
||||||
vnc_disconnect_start(vs);
|
vnc_disconnect_start(vs);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (errp) {
|
error_free(err);
|
||||||
error_free(*errp);
|
|
||||||
*errp = NULL;
|
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -1361,10 +1357,9 @@ size_t vnc_client_write_buf(VncState *vs, const uint8_t *data, size_t datalen)
|
||||||
{
|
{
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
ssize_t ret;
|
ssize_t ret;
|
||||||
ret = qio_channel_write(
|
ret = qio_channel_write(vs->ioc, (const char *)data, datalen, &err);
|
||||||
vs->ioc, (const char *)data, datalen, &err);
|
|
||||||
VNC_DEBUG("Wrote wire %p %zd -> %ld\n", data, datalen, ret);
|
VNC_DEBUG("Wrote wire %p %zd -> %ld\n", data, datalen, ret);
|
||||||
return vnc_client_io_error(vs, ret, &err);
|
return vnc_client_io_error(vs, ret, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1488,10 +1483,9 @@ size_t vnc_client_read_buf(VncState *vs, uint8_t *data, size_t datalen)
|
||||||
{
|
{
|
||||||
ssize_t ret;
|
ssize_t ret;
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
ret = qio_channel_read(
|
ret = qio_channel_read(vs->ioc, (char *)data, datalen, &err);
|
||||||
vs->ioc, (char *)data, datalen, &err);
|
|
||||||
VNC_DEBUG("Read wire %p %zd -> %ld\n", data, datalen, ret);
|
VNC_DEBUG("Read wire %p %zd -> %ld\n", data, datalen, ret);
|
||||||
return vnc_client_io_error(vs, ret, &err);
|
return vnc_client_io_error(vs, ret, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
2
ui/vnc.h
2
ui/vnc.h
|
@ -547,7 +547,7 @@ uint32_t read_u32(uint8_t *data, size_t offset);
|
||||||
|
|
||||||
/* Protocol stage functions */
|
/* Protocol stage functions */
|
||||||
void vnc_client_error(VncState *vs);
|
void vnc_client_error(VncState *vs);
|
||||||
size_t vnc_client_io_error(VncState *vs, ssize_t ret, Error **errp);
|
size_t vnc_client_io_error(VncState *vs, ssize_t ret, Error *err);
|
||||||
|
|
||||||
void start_client_init(VncState *vs);
|
void start_client_init(VncState *vs);
|
||||||
void start_auth_vnc(VncState *vs);
|
void start_auth_vnc(VncState *vs);
|
||||||
|
|
|
@ -121,7 +121,7 @@ void error_setg_file_open_internal(Error **errp,
|
||||||
"Could not open '%s'", filename);
|
"Could not open '%s'", filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
void error_vprepend(Error **errp, const char *fmt, va_list ap)
|
void error_vprepend(Error *const *errp, const char *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
GString *newmsg;
|
GString *newmsg;
|
||||||
|
|
||||||
|
@ -136,7 +136,7 @@ void error_vprepend(Error **errp, const char *fmt, va_list ap)
|
||||||
(*errp)->msg = g_string_free(newmsg, 0);
|
(*errp)->msg = g_string_free(newmsg, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void error_prepend(Error **errp, const char *fmt, ...)
|
void error_prepend(Error *const *errp, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
|
@ -145,7 +145,7 @@ void error_prepend(Error **errp, const char *fmt, ...)
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
void error_append_hint(Error **errp, const char *fmt, ...)
|
void error_append_hint(Error *const *errp, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
int saved_errno = errno;
|
int saved_errno = errno;
|
||||||
|
|
|
@ -24,6 +24,9 @@ typedef enum {
|
||||||
REPORT_TYPE_INFO,
|
REPORT_TYPE_INFO,
|
||||||
} report_type;
|
} report_type;
|
||||||
|
|
||||||
|
/* Prepend timestamp to messages */
|
||||||
|
bool error_with_timestamp;
|
||||||
|
|
||||||
int error_printf(const char *fmt, ...)
|
int error_printf(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
@ -191,7 +194,6 @@ static void print_loc(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool enable_timestamp_msg;
|
|
||||||
/*
|
/*
|
||||||
* Print a message to current monitor if we have one, else to stderr.
|
* Print a message to current monitor if we have one, else to stderr.
|
||||||
* @report_type is the type of message: error, warning or informational.
|
* @report_type is the type of message: error, warning or informational.
|
||||||
|
@ -204,7 +206,7 @@ static void vreport(report_type type, const char *fmt, va_list ap)
|
||||||
GTimeVal tv;
|
GTimeVal tv;
|
||||||
gchar *timestr;
|
gchar *timestr;
|
||||||
|
|
||||||
if (enable_timestamp_msg && !cur_mon) {
|
if (error_with_timestamp && !cur_mon) {
|
||||||
g_get_current_time(&tv);
|
g_get_current_time(&tv);
|
||||||
timestr = g_time_val_to_iso8601(&tv);
|
timestr = g_time_val_to_iso8601(&tv);
|
||||||
error_printf("%s ", timestr);
|
error_printf("%s ", timestr);
|
||||||
|
|
Loading…
Reference in New Issue