mirror of https://github.com/xemu-project/xemu.git
trivial patches for 2014-08-15
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQEcBAABAgAGBQJT7iN/AAoJEL7lnXSkw9fbgVcH/20bga0KUQ+FDMg7pr0jBK3J 6d7DLwsmypEiKN8D7mQz/xDX4uwtWQu4PXERn8UEfE0xVrnNDGOYpYtj2kb7z3/T F33oosGHz9XKdhGg6x4ZLirhjJdVsj90SJ37D4haxFP5CeRjs8c3RFOekI0qwyXm /t+mDdWsADYaZ1WaFOo0kcNCROYudaRV2isubQFUqKgjWmIx+Y+2xSXtTWU3UAVx dDcEvTYdDNucor2kV1/F2iULHMXNOPjvvV59ARBkzTyaSday4waGptAOL9eQInSA DcJuRZwY2lpm1YuJN4b5UzZ849R3X9zA1vIW6aP+NcktLoKV/bu3qVwo0v5+LMs= =wZLU -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/mjt/tags/trivial-patches-2014-08-15' into staging trivial patches for 2014-08-15 # gpg: Signature made Fri 15 Aug 2014 16:13:03 BST using RSA key ID A4C3D7DB # gpg: Good signature from "Michael Tokarev <mjt@tls.msk.ru>" # gpg: aka "Michael Tokarev <mjt@corpit.ru>" # gpg: aka "Michael Tokarev <mjt@debian.org>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 6EE1 95D1 886E 8FFB 810D 4324 457C E0A0 8044 65C5 # Subkey fingerprint: 6F67 E18E 7C91 C5B1 5514 66A7 BEE5 9D74 A4C3 D7DB * remotes/mjt/tags/trivial-patches-2014-08-15: ivshmem: check the value returned by fstat() l2cap: fix access to freed memory intc: i8259: Convert Array allocation to g_new0 ppc: convert g_new(qemu_irq usages to g_new0 ssi: xilinx_spi: Initialise CS GPIOs as NULL vl: free err qemu-options.hx: fix typo about l2tpv3 vmxnet3: don't use 'Yoda conditions' vl: don't use 'Yoda conditions' spice: don't use 'Yoda conditions' don't use 'Yoda conditions' isa-bus: don't use 'Yoda conditions' audio: don't use 'Yoda conditions' usb: don't use 'Yoda conditions' CODING_STYLE: Section about conditional statement pci-host: update uncorresponding description pci-host: update obsolete reference about piix_pci.c qemu-options.hx: fix a typo of chardev memory: Update obsolete comment about AddrRange field type apic: Fix reported DFR content Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
142f4ac5d5
14
CODING_STYLE
14
CODING_STYLE
|
@ -91,3 +91,17 @@ Mixed declarations (interleaving statements and declarations within blocks)
|
||||||
are not allowed; declarations should be at the beginning of blocks. In other
|
are not allowed; declarations should be at the beginning of blocks. In other
|
||||||
words, the code should not generate warnings if using GCC's
|
words, the code should not generate warnings if using GCC's
|
||||||
-Wdeclaration-after-statement option.
|
-Wdeclaration-after-statement option.
|
||||||
|
|
||||||
|
6. Conditional statements
|
||||||
|
|
||||||
|
When comparing a variable for (in)equality with a constant, list the
|
||||||
|
constant on the right, as in:
|
||||||
|
|
||||||
|
if (a == 1) {
|
||||||
|
/* Reads like: "If a equals 1" */
|
||||||
|
do_something();
|
||||||
|
}
|
||||||
|
|
||||||
|
Rationale: Yoda conditions (as in 'if (1 == a)') are awkward to read.
|
||||||
|
Besides, good compilers already warn users when '==' is mis-typed as '=',
|
||||||
|
even when the constant is on the right.
|
||||||
|
|
|
@ -212,7 +212,7 @@ static int GUS_read_DMA (void *opaque, int nchan, int dma_pos, int dma_len)
|
||||||
pos += copied;
|
pos += copied;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0 == ((mode >> 4) & 1)) {
|
if (((mode >> 4) & 1) == 0) {
|
||||||
DMA_release_DREQ (s->emu.gusdma);
|
DMA_release_DREQ (s->emu.gusdma);
|
||||||
}
|
}
|
||||||
return dma_len;
|
return dma_len;
|
||||||
|
|
|
@ -489,8 +489,9 @@ static int hda_audio_init(HDACodecDevice *hda, const struct desc_codec *desc)
|
||||||
for (i = 0; i < a->desc->nnodes; i++) {
|
for (i = 0; i < a->desc->nnodes; i++) {
|
||||||
node = a->desc->nodes + i;
|
node = a->desc->nodes + i;
|
||||||
param = hda_codec_find_param(node, AC_PAR_AUDIO_WIDGET_CAP);
|
param = hda_codec_find_param(node, AC_PAR_AUDIO_WIDGET_CAP);
|
||||||
if (NULL == param)
|
if (param == NULL) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
type = (param->val & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT;
|
type = (param->val & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT;
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case AC_WID_AUD_OUT:
|
case AC_WID_AUD_OUT:
|
||||||
|
|
|
@ -928,7 +928,7 @@ static IO_WRITE_PROTO (dsp_write)
|
||||||
/* if (s->highspeed) */
|
/* if (s->highspeed) */
|
||||||
/* break; */
|
/* break; */
|
||||||
|
|
||||||
if (0 == s->needed_bytes) {
|
if (s->needed_bytes == 0) {
|
||||||
command (s, val);
|
command (s, val);
|
||||||
#if 0
|
#if 0
|
||||||
if (0 == s->needed_bytes) {
|
if (0 == s->needed_bytes) {
|
||||||
|
@ -1212,7 +1212,7 @@ static int SB_read_DMA (void *opaque, int nchan, int dma_pos, int dma_len)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (till <= copy) {
|
if (till <= copy) {
|
||||||
if (0 == s->dma_auto) {
|
if (s->dma_auto == 0) {
|
||||||
copy = till;
|
copy = till;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1224,7 +1224,7 @@ static int SB_read_DMA (void *opaque, int nchan, int dma_pos, int dma_len)
|
||||||
if (s->left_till_irq <= 0) {
|
if (s->left_till_irq <= 0) {
|
||||||
s->mixer_regs[0x82] |= (nchan & 4) ? 2 : 1;
|
s->mixer_regs[0x82] |= (nchan & 4) ? 2 : 1;
|
||||||
qemu_irq_raise (s->pic);
|
qemu_irq_raise (s->pic);
|
||||||
if (0 == s->dma_auto) {
|
if (s->dma_auto == 0) {
|
||||||
control (s, 0);
|
control (s, 0);
|
||||||
speaker (s, 0);
|
speaker (s, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -429,7 +429,7 @@ static struct l2cap_chan_s *l2cap_channel_open(struct l2cap_instance_s *l2cap,
|
||||||
status = L2CAP_CS_NO_INFO;
|
status = L2CAP_CS_NO_INFO;
|
||||||
} else {
|
} else {
|
||||||
g_free(ch);
|
g_free(ch);
|
||||||
|
ch = NULL;
|
||||||
result = L2CAP_CR_NO_MEM;
|
result = L2CAP_CR_NO_MEM;
|
||||||
status = L2CAP_CS_NO_INFO;
|
status = L2CAP_CS_NO_INFO;
|
||||||
}
|
}
|
||||||
|
|
|
@ -698,7 +698,7 @@ static uint32_t apic_mem_readl(void *opaque, hwaddr addr)
|
||||||
val = s->log_dest << 24;
|
val = s->log_dest << 24;
|
||||||
break;
|
break;
|
||||||
case 0x0e:
|
case 0x0e:
|
||||||
val = s->dest_mode << 28;
|
val = (s->dest_mode << 28) | 0xfffffff;
|
||||||
break;
|
break;
|
||||||
case 0x0f:
|
case 0x0f:
|
||||||
val = s->spurious_vec;
|
val = s->spurious_vec;
|
||||||
|
|
|
@ -472,7 +472,7 @@ qemu_irq *i8259_init(ISABus *bus, qemu_irq parent_irq)
|
||||||
ISADevice *isadev;
|
ISADevice *isadev;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
irq_set = g_malloc(ISA_NUM_IRQS * sizeof(qemu_irq));
|
irq_set = g_new0(qemu_irq, ISA_NUM_IRQS);
|
||||||
|
|
||||||
isadev = i8259_init_chip(TYPE_I8259, bus, true);
|
isadev = i8259_init_chip(TYPE_I8259, bus, true);
|
||||||
dev = DEVICE(isadev);
|
dev = DEVICE(isadev);
|
||||||
|
|
|
@ -1627,7 +1627,7 @@ static void openpic_realize(DeviceState *dev, Error **errp)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < opp->nb_cpus; i++) {
|
for (i = 0; i < opp->nb_cpus; i++) {
|
||||||
opp->dst[i].irqs = g_new(qemu_irq, OPENPIC_OUTPUT_NB);
|
opp->dst[i].irqs = g_new0(qemu_irq, OPENPIC_OUTPUT_NB);
|
||||||
for (j = 0; j < OPENPIC_OUTPUT_NB; j++) {
|
for (j = 0; j < OPENPIC_OUTPUT_NB; j++) {
|
||||||
sysbus_init_irq(d, &opp->dst[i].irqs[j]);
|
sysbus_init_irq(d, &opp->dst[i].irqs[j]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,7 @@ ISABus *isa_bus_new(DeviceState *dev, MemoryRegion *address_space_io)
|
||||||
fprintf(stderr, "Can't create a second ISA bus\n");
|
fprintf(stderr, "Can't create a second ISA bus\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (NULL == dev) {
|
if (!dev) {
|
||||||
dev = qdev_create(NULL, "isabus-bridge");
|
dev = qdev_create(NULL, "isabus-bridge");
|
||||||
qdev_init_nofail(dev);
|
qdev_init_nofail(dev);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
* VA Linux Systems Japan K.K.
|
* VA Linux Systems Japan K.K.
|
||||||
* Copyright (C) 2012 Jason Baron <jbaron@redhat.com>
|
* Copyright (C) 2012 Jason Baron <jbaron@redhat.com>
|
||||||
*
|
*
|
||||||
* This is based on piix_pci.c, but heavily modified.
|
* This is based on piix.c, but heavily modified.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
@ -324,7 +324,11 @@ static int check_shm_size(IVShmemState *s, int fd) {
|
||||||
|
|
||||||
struct stat buf;
|
struct stat buf;
|
||||||
|
|
||||||
fstat(fd, &buf);
|
if (fstat(fd, &buf) < 0) {
|
||||||
|
fprintf(stderr, "ivshmem: exiting: fstat on fd %d failed: %s\n",
|
||||||
|
fd, strerror(errno));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
if (s->ivshmem_size > buf.st_size) {
|
if (s->ivshmem_size > buf.st_size) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
|
|
|
@ -1009,7 +1009,7 @@ vmxnet3_indicate_packet(VMXNET3State *s)
|
||||||
|
|
||||||
vmxnet3_dump_rx_descr(&rxd);
|
vmxnet3_dump_rx_descr(&rxd);
|
||||||
|
|
||||||
if (0 != ready_rxcd_pa) {
|
if (ready_rxcd_pa != 0) {
|
||||||
cpu_physical_memory_write(ready_rxcd_pa, &rxcd, sizeof(rxcd));
|
cpu_physical_memory_write(ready_rxcd_pa, &rxcd, sizeof(rxcd));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1020,7 +1020,7 @@ vmxnet3_indicate_packet(VMXNET3State *s)
|
||||||
rxcd.gen = new_rxcd_gen;
|
rxcd.gen = new_rxcd_gen;
|
||||||
rxcd.rqID = RXQ_IDX + rx_ridx * s->rxq_num;
|
rxcd.rqID = RXQ_IDX + rx_ridx * s->rxq_num;
|
||||||
|
|
||||||
if (0 == bytes_left) {
|
if (bytes_left == 0) {
|
||||||
vmxnet3_rx_update_descr(s->rx_pkt, &rxcd);
|
vmxnet3_rx_update_descr(s->rx_pkt, &rxcd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1038,16 +1038,16 @@ vmxnet3_indicate_packet(VMXNET3State *s)
|
||||||
num_frags++;
|
num_frags++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0 != ready_rxcd_pa) {
|
if (ready_rxcd_pa != 0) {
|
||||||
rxcd.eop = 1;
|
rxcd.eop = 1;
|
||||||
rxcd.err = (0 != bytes_left);
|
rxcd.err = (bytes_left != 0);
|
||||||
cpu_physical_memory_write(ready_rxcd_pa, &rxcd, sizeof(rxcd));
|
cpu_physical_memory_write(ready_rxcd_pa, &rxcd, sizeof(rxcd));
|
||||||
|
|
||||||
/* Flush RX descriptor changes */
|
/* Flush RX descriptor changes */
|
||||||
smp_wmb();
|
smp_wmb();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0 != new_rxcd_pa) {
|
if (new_rxcd_pa != 0) {
|
||||||
vmxnet3_revert_rxc_descr(s, RXQ_IDX);
|
vmxnet3_revert_rxc_descr(s, RXQ_IDX);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1190,8 +1190,8 @@ static void vmxnet3_update_mcast_filters(VMXNET3State *s)
|
||||||
s->mcast_list_len = list_bytes / sizeof(s->mcast_list[0]);
|
s->mcast_list_len = list_bytes / sizeof(s->mcast_list[0]);
|
||||||
|
|
||||||
s->mcast_list = g_realloc(s->mcast_list, list_bytes);
|
s->mcast_list = g_realloc(s->mcast_list, list_bytes);
|
||||||
if (NULL == s->mcast_list) {
|
if (!s->mcast_list) {
|
||||||
if (0 == s->mcast_list_len) {
|
if (s->mcast_list_len == 0) {
|
||||||
VMW_CFPRN("Current multicast list is empty");
|
VMW_CFPRN("Current multicast list is empty");
|
||||||
} else {
|
} else {
|
||||||
VMW_ERPRN("Failed to allocate multicast list of %d elements",
|
VMW_ERPRN("Failed to allocate multicast list of %d elements",
|
||||||
|
@ -1667,7 +1667,7 @@ vmxnet3_io_bar1_write(void *opaque,
|
||||||
* memory address. We save it to temp variable and set the
|
* memory address. We save it to temp variable and set the
|
||||||
* shared address only after we get the high part
|
* shared address only after we get the high part
|
||||||
*/
|
*/
|
||||||
if (0 == val) {
|
if (val == 0) {
|
||||||
s->device_active = false;
|
s->device_active = false;
|
||||||
}
|
}
|
||||||
s->temp_shared_guest_driver_memory = val;
|
s->temp_shared_guest_driver_memory = val;
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
/*
|
/*
|
||||||
* QEMU i440FX/PIIX3 PCI Bridge Emulation
|
* QEMU Smram/pam logic implementation
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006 Fabrice Bellard
|
* Copyright (c) 2006 Fabrice Bellard
|
||||||
* Copyright (c) 2011 Isaku Yamahata <yamahata at valinux co jp>
|
* Copyright (c) 2011 Isaku Yamahata <yamahata at valinux co jp>
|
||||||
* VA Linux Systems Japan K.K.
|
* VA Linux Systems Japan K.K.
|
||||||
* Copyright (c) 2012 Jason Baron <jbaron@redhat.com>
|
* Copyright (c) 2012 Jason Baron <jbaron@redhat.com>
|
||||||
*
|
*
|
||||||
* Split out from piix_pci.c
|
* Split out from piix.c
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
* VA Linux Systems Japan K.K.
|
* VA Linux Systems Japan K.K.
|
||||||
* Copyright (C) 2012 Jason Baron <jbaron@redhat.com>
|
* Copyright (C) 2012 Jason Baron <jbaron@redhat.com>
|
||||||
*
|
*
|
||||||
* This is based on piix_pci.c, but heavily modified.
|
* This is based on piix.c, but heavily modified.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
@ -583,7 +583,7 @@ static qemu_irq *ppce500_init_mpic(PPCE500Params *params, MemoryRegion *ccsr,
|
||||||
SysBusDevice *s;
|
SysBusDevice *s;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
mpic = g_new(qemu_irq, 256);
|
mpic = g_new0(qemu_irq, 256);
|
||||||
|
|
||||||
if (kvm_enabled()) {
|
if (kvm_enabled()) {
|
||||||
QemuOpts *machine_opts = qemu_get_machine_opts();
|
QemuOpts *machine_opts = qemu_get_machine_opts();
|
||||||
|
|
|
@ -346,7 +346,7 @@ static void ppc_core99_init(MachineState *machine)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pic = g_new(qemu_irq, 64);
|
pic = g_new0(qemu_irq, 64);
|
||||||
|
|
||||||
dev = qdev_create(NULL, TYPE_OPENPIC);
|
dev = qdev_create(NULL, TYPE_OPENPIC);
|
||||||
qdev_prop_set_uint32(dev, "model", OPENPIC_MODEL_RAVEN);
|
qdev_prop_set_uint32(dev, "model", OPENPIC_MODEL_RAVEN);
|
||||||
|
|
|
@ -329,7 +329,7 @@ static int xilinx_spi_init(SysBusDevice *sbd)
|
||||||
s->spi = ssi_create_bus(dev, "spi");
|
s->spi = ssi_create_bus(dev, "spi");
|
||||||
|
|
||||||
sysbus_init_irq(sbd, &s->irq);
|
sysbus_init_irq(sbd, &s->irq);
|
||||||
s->cs_lines = g_new(qemu_irq, s->num_cs);
|
s->cs_lines = g_new0(qemu_irq, s->num_cs);
|
||||||
ssi_auto_connect_slaves(dev, s->cs_lines, s->spi);
|
ssi_auto_connect_slaves(dev, s->cs_lines, s->spi);
|
||||||
for (i = 0; i < s->num_cs; ++i) {
|
for (i = 0; i < s->num_cs; ++i) {
|
||||||
sysbus_init_irq(sbd, &s->cs_lines[i]);
|
sysbus_init_irq(sbd, &s->cs_lines[i]);
|
||||||
|
|
|
@ -371,7 +371,7 @@ static void output_callback(void *opaque, int avail)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
data = streambuf_get(&s->out.buf);
|
data = streambuf_get(&s->out.buf);
|
||||||
if (NULL == data) {
|
if (!data) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
AUD_write(s->out.voice, data, USBAUDIO_PACKET_SIZE);
|
AUD_write(s->out.voice, data, USBAUDIO_PACKET_SIZE);
|
||||||
|
|
|
@ -832,7 +832,7 @@ static void usb_mtp_command(MTPState *s, MTPControl *c)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
data_in = usb_mtp_get_object(s, c, o);
|
data_in = usb_mtp_get_object(s, c, o);
|
||||||
if (NULL == data_in) {
|
if (data_in == NULL) {
|
||||||
usb_mtp_queue_result(s, RES_GENERAL_ERROR,
|
usb_mtp_queue_result(s, RES_GENERAL_ERROR,
|
||||||
c->trans, 0, 0, 0);
|
c->trans, 0, 0, 0);
|
||||||
return;
|
return;
|
||||||
|
@ -851,7 +851,7 @@ static void usb_mtp_command(MTPState *s, MTPControl *c)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
data_in = usb_mtp_get_partial_object(s, c, o);
|
data_in = usb_mtp_get_partial_object(s, c, o);
|
||||||
if (NULL == data_in) {
|
if (data_in == NULL) {
|
||||||
usb_mtp_queue_result(s, RES_GENERAL_ERROR,
|
usb_mtp_queue_result(s, RES_GENERAL_ERROR,
|
||||||
c->trans, 0, 0, 0);
|
c->trans, 0, 0, 0);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -1596,7 +1596,7 @@ static EHCIQueue *ehci_state_fetchqh(EHCIState *ehci, int async)
|
||||||
|
|
||||||
entry = ehci_get_fetch_addr(ehci, async);
|
entry = ehci_get_fetch_addr(ehci, async);
|
||||||
q = ehci_find_queue_by_qh(ehci, entry, async);
|
q = ehci_find_queue_by_qh(ehci, entry, async);
|
||||||
if (NULL == q) {
|
if (q == NULL) {
|
||||||
q = ehci_alloc_queue(ehci, entry, async);
|
q = ehci_alloc_queue(ehci, entry, async);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
* VA Linux Systems Japan K.K.
|
* VA Linux Systems Japan K.K.
|
||||||
* Copyright (c) 2012 Jason Baron <jbaron@redhat.com>
|
* Copyright (c) 2012 Jason Baron <jbaron@redhat.com>
|
||||||
*
|
*
|
||||||
* Split out from piix_pci.c
|
* Split out from piix.c
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
3
memory.c
3
memory.c
|
@ -56,8 +56,7 @@ static void memory_init(void)
|
||||||
typedef struct AddrRange AddrRange;
|
typedef struct AddrRange AddrRange;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Note using signed integers limits us to physical addresses at most
|
* Note that signed integers are needed for negative offsetting in aliases
|
||||||
* 63 bits wide. They are needed for negative offsetting in aliases
|
|
||||||
* (large MemoryRegion::alias_offset).
|
* (large MemoryRegion::alias_offset).
|
||||||
*/
|
*/
|
||||||
struct AddrRange {
|
struct AddrRange {
|
||||||
|
|
|
@ -688,7 +688,7 @@ void qmp_device_del(const char *id, Error **errp)
|
||||||
DeviceState *dev;
|
DeviceState *dev;
|
||||||
|
|
||||||
dev = qdev_find_recursive(sysbus_get_default(), id);
|
dev = qdev_find_recursive(sysbus_get_default(), id);
|
||||||
if (NULL == dev) {
|
if (!dev) {
|
||||||
error_set(errp, QERR_DEVICE_NOT_FOUND, id);
|
error_set(errp, QERR_DEVICE_NOT_FOUND, id);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4121,7 +4121,7 @@ void qmp_chardev_remove(const char *id, Error **errp)
|
||||||
CharDriverState *chr;
|
CharDriverState *chr;
|
||||||
|
|
||||||
chr = qemu_chr_find(id);
|
chr = qemu_chr_find(id);
|
||||||
if (NULL == chr) {
|
if (chr == NULL) {
|
||||||
error_setg(errp, "Chardev '%s' not found", id);
|
error_setg(errp, "Chardev '%s' not found", id);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1444,7 +1444,7 @@ DEF("net", HAS_ARG, QEMU_OPTION_net,
|
||||||
" use 'src=' to specify source address\n"
|
" use 'src=' to specify source address\n"
|
||||||
" use 'dst=' to specify destination address\n"
|
" use 'dst=' to specify destination address\n"
|
||||||
" use 'udp=on' to specify udp encapsulation\n"
|
" use 'udp=on' to specify udp encapsulation\n"
|
||||||
" use 'dstport=' to specify destination udp port\n"
|
" use 'srcport=' to specify source udp port\n"
|
||||||
" use 'dstport=' to specify destination udp port\n"
|
" use 'dstport=' to specify destination udp port\n"
|
||||||
" use 'ipv6=on' to force v6\n"
|
" use 'ipv6=on' to force v6\n"
|
||||||
" L2TPv3 uses cookies to prevent misconfiguration as\n"
|
" L2TPv3 uses cookies to prevent misconfiguration as\n"
|
||||||
|
@ -1926,7 +1926,7 @@ ETEXI
|
||||||
|
|
||||||
DEF("chardev", HAS_ARG, QEMU_OPTION_chardev,
|
DEF("chardev", HAS_ARG, QEMU_OPTION_chardev,
|
||||||
"-chardev null,id=id[,mux=on|off]\n"
|
"-chardev null,id=id[,mux=on|off]\n"
|
||||||
"-chardev socket,id=id[,host=host],port=host[,to=to][,ipv4][,ipv6][,nodelay]\n"
|
"-chardev socket,id=id[,host=host],port=port[,to=to][,ipv4][,ipv6][,nodelay]\n"
|
||||||
" [,server][,nowait][,telnet][,mux=on|off] (tcp)\n"
|
" [,server][,nowait][,telnet][,mux=on|off] (tcp)\n"
|
||||||
"-chardev socket,id=id,path=path[,server][,nowait][,telnet],[mux=on|off] (unix)\n"
|
"-chardev socket,id=id,path=path[,server][,nowait][,telnet],[mux=on|off] (unix)\n"
|
||||||
"-chardev udp,id=id[,host=host],port=port[,localaddr=localaddr]\n"
|
"-chardev udp,id=id[,host=host],port=port[,localaddr=localaddr]\n"
|
||||||
|
|
|
@ -677,7 +677,7 @@ void qemu_spice_init(void)
|
||||||
|
|
||||||
if (tls_port) {
|
if (tls_port) {
|
||||||
x509_dir = qemu_opt_get(opts, "x509-dir");
|
x509_dir = qemu_opt_get(opts, "x509-dir");
|
||||||
if (NULL == x509_dir) {
|
if (!x509_dir) {
|
||||||
x509_dir = ".";
|
x509_dir = ".";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -803,7 +803,7 @@ void qemu_spice_init(void)
|
||||||
|
|
||||||
seamless_migration = qemu_opt_get_bool(opts, "seamless-migration", 0);
|
seamless_migration = qemu_opt_get_bool(opts, "seamless-migration", 0);
|
||||||
spice_server_set_seamless_migration(spice_server, seamless_migration);
|
spice_server_set_seamless_migration(spice_server, seamless_migration);
|
||||||
if (0 != spice_server_init(spice_server, &core_interface)) {
|
if (spice_server_init(spice_server, &core_interface) != 0) {
|
||||||
error_report("failed to initialize spice server");
|
error_report("failed to initialize spice server");
|
||||||
exit(1);
|
exit(1);
|
||||||
};
|
};
|
||||||
|
|
|
@ -732,7 +732,7 @@ int unix_connect_opts(QemuOpts *opts, Error **errp,
|
||||||
ConnectState *connect_state = NULL;
|
ConnectState *connect_state = NULL;
|
||||||
int sock, rc;
|
int sock, rc;
|
||||||
|
|
||||||
if (NULL == path) {
|
if (path == NULL) {
|
||||||
error_setg(errp, "unix connect: no path specified");
|
error_setg(errp, "unix connect: no path specified");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
6
vl.c
6
vl.c
|
@ -1154,7 +1154,7 @@ static int drive_init_func(QemuOpts *opts, void *opaque)
|
||||||
|
|
||||||
static int drive_enable_snapshot(QemuOpts *opts, void *opaque)
|
static int drive_enable_snapshot(QemuOpts *opts, void *opaque)
|
||||||
{
|
{
|
||||||
if (NULL == qemu_opt_get(opts, "snapshot")) {
|
if (qemu_opt_get(opts, "snapshot") == NULL) {
|
||||||
qemu_opt_set(opts, "snapshot", "on");
|
qemu_opt_set(opts, "snapshot", "on");
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2506,9 +2506,10 @@ static int foreach_device_config(int type, int (*func)(const char *cmdline))
|
||||||
loc_push_restore(&conf->loc);
|
loc_push_restore(&conf->loc);
|
||||||
rc = func(conf->cmdline);
|
rc = func(conf->cmdline);
|
||||||
loc_pop(&conf->loc);
|
loc_pop(&conf->loc);
|
||||||
if (0 != rc)
|
if (rc) {
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2917,6 +2918,7 @@ out:
|
||||||
g_free(dummy);
|
g_free(dummy);
|
||||||
if (err) {
|
if (err) {
|
||||||
qerror_report_err(err);
|
qerror_report_err(err);
|
||||||
|
error_free(err);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue