diff options
Diffstat (limited to '')
| -rw-r--r-- | .mailmap | 4 | ||||
| -rw-r--r-- | MAINTAINERS | 1 | ||||
| -rw-r--r-- | README | 4 | ||||
| -rw-r--r-- | block.c | 8 | ||||
| -rw-r--r-- | block/crypto.c | 1 | ||||
| -rw-r--r-- | block/file-posix.c | 3 | ||||
| -rw-r--r-- | block/iscsi.c | 6 | ||||
| -rw-r--r-- | block/nbd.c | 11 | ||||
| -rw-r--r-- | block/qcow2.c | 3 | ||||
| -rw-r--r-- | block/qed.c | 1 | ||||
| -rwxr-xr-x | configure | 21 | ||||
| -rw-r--r-- | hw/core/machine.c | 2 | ||||
| -rw-r--r-- | include/block/block.h | 11 | ||||
| -rw-r--r-- | qapi-schema.json | 4 | ||||
| -rw-r--r-- | qemu-options.hx | 48 | ||||
| -rw-r--r-- | qga/commands-posix.c | 2 | ||||
| -rw-r--r-- | scripts/argparse.py | 2 | ||||
| -rwxr-xr-x | scripts/git-submodule.sh | 2 | ||||
| -rwxr-xr-x | scripts/make-release | 5 | ||||
| -rw-r--r-- | target/i386/hax-windows.h | 2 | ||||
| -rw-r--r-- | target/i386/hvf/x86_mmu.c | 1 | ||||
| -rw-r--r-- | tests/qemu-iotests/205 | 4 | ||||
| -rw-r--r-- | tests/qemu-iotests/iotests.py | 31 | ||||
| -rw-r--r-- | tests/test-hbitmap.c | 6 | ||||
| -rw-r--r-- | tests/test-qobject-output-visitor.c | 2 | ||||
| -rw-r--r-- | tests/test-string-output-visitor.c | 2 | ||||
| -rw-r--r-- | util/aio-posix.c | 2 | ||||
| -rw-r--r-- | util/oslib-posix.c | 2 |
28 files changed, 108 insertions, 83 deletions
diff --git a/.mailmap b/.mailmap index ee81ac801e..cf689b9ec9 100644 --- a/.mailmap +++ b/.mailmap @@ -18,3 +18,7 @@ malc <av1474@comtv.ru> malc <malc@c046a42c-6fe2-441c-8c8c-71466251a162> # There is also a: # (no author) <(no author)@c046a42c-6fe2-441c-8c8c-71466251a162> # for the cvs2svn initialization commit e63c3dc74bf. +# +# Also list preferred name forms where people have changed their +# git author config +Daniel P. Berrangé <berrange@redhat.com> diff --git a/MAINTAINERS b/MAINTAINERS index 54feb95646..57358a08e2 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1761,6 +1761,7 @@ R: Laurent Vivier <laurent@vivier.eu> S: Maintained F: linux-user/ F: default-configs/*-linux-user.mak +F: scripts/qemu-binfmt-conf.sh Tiny Code Generator (TCG) ------------------------- diff --git a/README b/README index b92a07a61a..2c8e1c8cc4 100644 --- a/README +++ b/README @@ -68,6 +68,10 @@ the QEMU website https://qemu.org/Contribute/SubmitAPatch https://qemu.org/Contribute/TrivialPatches +The QEMU website is also maintained under source control. + + git clone git://git.qemu.org/qemu-web.git + https://www.qemu.org/2017/02/04/the-new-qemu-website-is-up/ Bug reporting ============= diff --git a/block.c b/block.c index f94585b230..814e5a02da 100644 --- a/block.c +++ b/block.c @@ -4010,17 +4010,11 @@ bool bdrv_unallocated_blocks_are_zero(BlockDriverState *bs) bool bdrv_can_write_zeroes_with_unmap(BlockDriverState *bs) { - BlockDriverInfo bdi; - if (!(bs->open_flags & BDRV_O_UNMAP)) { return false; } - if (bdrv_get_info(bs, &bdi) == 0) { - return bdi.can_write_zeroes_with_unmap; - } - - return false; + return bs->supported_zero_flags & BDRV_REQ_MAY_UNMAP; } const char *bdrv_get_encrypted_filename(BlockDriverState *bs) diff --git a/block/crypto.c b/block/crypto.c index 70e3691cd8..3df66947c5 100644 --- a/block/crypto.c +++ b/block/crypto.c @@ -576,7 +576,6 @@ static int block_crypto_get_info_luks(BlockDriverState *bs, } bdi->unallocated_blocks_are_zero = false; - bdi->can_write_zeroes_with_unmap = false; bdi->cluster_size = subbdi.cluster_size; return 0; diff --git a/block/file-posix.c b/block/file-posix.c index dd8d7cbbd2..ca49c1a98a 100644 --- a/block/file-posix.c +++ b/block/file-posix.c @@ -549,7 +549,6 @@ static int raw_open_common(BlockDriverState *bs, QDict *options, s->has_discard = true; s->has_write_zeroes = true; - bs->supported_zero_flags = BDRV_REQ_MAY_UNMAP; if ((bs->open_flags & BDRV_O_NOCACHE) != 0) { s->needs_alignment = true; } @@ -599,6 +598,7 @@ static int raw_open_common(BlockDriverState *bs, QDict *options, } #endif + bs->supported_zero_flags = s->discard_zeroes ? BDRV_REQ_MAY_UNMAP : 0; ret = 0; fail: if (filename && (bdrv_flags & BDRV_O_TEMPORARY)) { @@ -2223,7 +2223,6 @@ static int raw_get_info(BlockDriverState *bs, BlockDriverInfo *bdi) BDRVRawState *s = bs->opaque; bdi->unallocated_blocks_are_zero = s->discard_zeroes; - bdi->can_write_zeroes_with_unmap = s->discard_zeroes; return 0; } diff --git a/block/iscsi.c b/block/iscsi.c index 9f99ae5e07..421983dd6f 100644 --- a/block/iscsi.c +++ b/block/iscsi.c @@ -1877,7 +1877,6 @@ static int iscsi_open(BlockDriverState *bs, QDict *options, int flags, if (iscsilun->dpofua) { bs->supported_write_flags = BDRV_REQ_FUA; } - bs->supported_zero_flags = BDRV_REQ_MAY_UNMAP; /* Check the write protect flag of the LUN if we want to write */ if (iscsilun->type == TYPE_DISK && (flags & BDRV_O_RDWR) && @@ -1961,6 +1960,10 @@ static int iscsi_open(BlockDriverState *bs, QDict *options, int flags, } } + if (iscsilun->lbprz && iscsilun->lbp.lbpws) { + bs->supported_zero_flags = BDRV_REQ_MAY_UNMAP; + } + out: qemu_opts_del(opts); g_free(initiator_name); @@ -2160,7 +2163,6 @@ static int iscsi_get_info(BlockDriverState *bs, BlockDriverInfo *bdi) { IscsiLun *iscsilun = bs->opaque; bdi->unallocated_blocks_are_zero = iscsilun->lbprz; - bdi->can_write_zeroes_with_unmap = iscsilun->lbprz && iscsilun->lbp.lbpws; bdi->cluster_size = iscsilun->cluster_sectors * BDRV_SECTOR_SIZE; return 0; } diff --git a/block/nbd.c b/block/nbd.c index 411eeb42a7..ef81a9f53b 100644 --- a/block/nbd.c +++ b/block/nbd.c @@ -566,14 +566,6 @@ static void nbd_refresh_filename(BlockDriverState *bs, QDict *options) bs->full_open_options = opts; } -static int nbd_get_info(BlockDriverState *bs, BlockDriverInfo *bdi) -{ - if (bs->supported_zero_flags & BDRV_REQ_MAY_UNMAP) { - bdi->can_write_zeroes_with_unmap = true; - } - return 0; -} - static BlockDriver bdrv_nbd = { .format_name = "nbd", .protocol_name = "nbd", @@ -591,7 +583,6 @@ static BlockDriver bdrv_nbd = { .bdrv_detach_aio_context = nbd_detach_aio_context, .bdrv_attach_aio_context = nbd_attach_aio_context, .bdrv_refresh_filename = nbd_refresh_filename, - .bdrv_get_info = nbd_get_info, }; static BlockDriver bdrv_nbd_tcp = { @@ -611,7 +602,6 @@ static BlockDriver bdrv_nbd_tcp = { .bdrv_detach_aio_context = nbd_detach_aio_context, .bdrv_attach_aio_context = nbd_attach_aio_context, .bdrv_refresh_filename = nbd_refresh_filename, - .bdrv_get_info = nbd_get_info, }; static BlockDriver bdrv_nbd_unix = { @@ -631,7 +621,6 @@ static BlockDriver bdrv_nbd_unix = { .bdrv_detach_aio_context = nbd_detach_aio_context, .bdrv_attach_aio_context = nbd_attach_aio_context, .bdrv_refresh_filename = nbd_refresh_filename, - .bdrv_get_info = nbd_get_info, }; static void bdrv_nbd_init(void) diff --git a/block/qcow2.c b/block/qcow2.c index a64a572785..801e29fc56 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -1479,7 +1479,7 @@ static int qcow2_do_open(BlockDriverState *bs, QDict *options, int flags, /* Initialise locks */ qemu_co_mutex_init(&s->lock); - bs->supported_zero_flags = BDRV_REQ_MAY_UNMAP; + bs->supported_zero_flags = header.version >= 3 ? BDRV_REQ_MAY_UNMAP : 0; /* Repair image if dirty */ if (!(flags & (BDRV_O_CHECK | BDRV_O_INACTIVE)) && !bs->read_only && @@ -3771,7 +3771,6 @@ static int qcow2_get_info(BlockDriverState *bs, BlockDriverInfo *bdi) { BDRVQcow2State *s = bs->opaque; bdi->unallocated_blocks_are_zero = true; - bdi->can_write_zeroes_with_unmap = (s->qcow_version >= 3); bdi->cluster_size = s->cluster_size; bdi->vm_state_offset = qcow2_vm_state_offset(s); return 0; diff --git a/block/qed.c b/block/qed.c index 205dbf16e3..c6ff3ab015 100644 --- a/block/qed.c +++ b/block/qed.c @@ -1438,7 +1438,6 @@ static int bdrv_qed_get_info(BlockDriverState *bs, BlockDriverInfo *bdi) bdi->cluster_size = s->header.cluster_size; bdi->is_dirty = s->header.features & QED_F_NEED_CHECK; bdi->unallocated_blocks_are_zero = true; - bdi->can_write_zeroes_with_unmap = true; return 0; } diff --git a/configure b/configure index 62562f08cf..fe9eea9218 100755 --- a/configure +++ b/configure @@ -4568,7 +4568,7 @@ case "$capstone" in "" | yes) if $pkg_config capstone; then capstone=system - elif test -e "${source_path}/.git" ; then + elif test -e "${source_path}/.git" -a $git_update = 'yes' ; then capstone=git elif test -e "${source_path}/capstone/Makefile" ; then capstone=internal @@ -4659,6 +4659,21 @@ if compile_prog "" "" ; then fi ########################################## +# check if we have posix_memalign() + +posix_memalign=no +cat > $TMPC << EOF +#include <stdlib.h> +int main(void) { + void *p; + return posix_memalign(&p, 8, 8); +} +EOF +if compile_prog "" "" ; then + posix_memalign=yes +fi + +########################################## # check if we have posix_syslog posix_syslog=no @@ -5746,6 +5761,7 @@ echo "preadv support $preadv" echo "fdatasync $fdatasync" echo "madvise $madvise" echo "posix_madvise $posix_madvise" +echo "posix_memalign $posix_memalign" echo "libcap-ng support $cap_ng" echo "vhost-net support $vhost_net" echo "vhost-scsi support $vhost_scsi" @@ -6232,6 +6248,9 @@ fi if test "$posix_madvise" = "yes" ; then echo "CONFIG_POSIX_MADVISE=y" >> $config_host_mak fi +if test "$posix_memalign" = "yes" ; then + echo "CONFIG_POSIX_MEMALIGN=y" >> $config_host_mak +fi if test "$spice" = "yes" ; then echo "CONFIG_SPICE=y" >> $config_host_mak diff --git a/hw/core/machine.c b/hw/core/machine.c index cdc1163dc6..5d445839e8 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -520,7 +520,7 @@ static void machine_class_init(ObjectClass *oc, void *data) object_class_property_set_description(oc, "accel", "Accelerator list", &error_abort); - object_class_property_add(oc, "kernel-irqchip", "OnOffSplit", + object_class_property_add(oc, "kernel-irqchip", "on|off|split", NULL, machine_set_kernel_irqchip, NULL, NULL, &error_abort); object_class_property_set_description(oc, "kernel-irqchip", diff --git a/include/block/block.h b/include/block/block.h index 24ef816960..19b3ab9cb5 100644 --- a/include/block/block.h +++ b/include/block/block.h @@ -27,17 +27,6 @@ typedef struct BlockDriverInfo { */ bool unallocated_blocks_are_zero; /* - * True if the driver can optimize writing zeroes by unmapping - * sectors. This is equivalent to the BLKDISCARDZEROES ioctl in Linux - * with the difference that in qemu a discard is allowed to silently - * fail. Therefore we have to use bdrv_pwrite_zeroes with the - * BDRV_REQ_MAY_UNMAP flag for an optimized zero write with unmapping. - * After this call the driver has to guarantee that the contents read - * back as zero. It is additionally required that the block device is - * opened with BDRV_O_UNMAP flag for this to work. - */ - bool can_write_zeroes_with_unmap; - /* * True if this block driver only supports compressed writes */ bool needs_compressed_writes; diff --git a/qapi-schema.json b/qapi-schema.json index 5c06745c79..0262b9f20b 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -2023,7 +2023,7 @@ # # @static: Expand to a static CPU model, a combination of a static base # model name and property delta changes. As the static base model will -# never change, the expanded CPU model will be the same, independant of +# never change, the expanded CPU model will be the same, independent of # independent of QEMU version, machine type, machine options, and # accelerator options. Therefore, the resulting model can be used by # tooling without having to specify a compatibility machine - e.g. when @@ -2102,7 +2102,7 @@ ## # @CpuModelCompareResult: # -# An enumeration of CPU model comparation results. The result is usually +# An enumeration of CPU model comparison results. The result is usually # calculated using e.g. CPU features or CPU generations. # # @incompatible: If model A is incompatible to model B, model A is not diff --git a/qemu-options.hx b/qemu-options.hx index d15c1713d1..5050a49a5e 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -2522,7 +2522,7 @@ STEXI The general form of a character device option is: @table @option -@item -chardev @var{backend} ,id=@var{id} [,mux=on|off] [,@var{options}] +@item -chardev @var{backend},id=@var{id}[,mux=on|off][,@var{options}] @findex -chardev Backend is one of: @option{null}, @@ -2541,7 +2541,7 @@ Backend is one of: @option{tty}, @option{parallel}, @option{parport}, -@option{spicevmc}. +@option{spicevmc}, @option{spiceport}. The specific backend will determine the applicable options. @@ -2605,11 +2605,11 @@ opened. The available backends are: @table @option -@item -chardev null ,id=@var{id} +@item -chardev null,id=@var{id} A void device. This device will not emit any data, and will drop any data it receives. The null backend does not take any options. -@item -chardev socket ,id=@var{id} [@var{TCP options} or @var{unix options}] [,server] [,nowait] [,telnet] [,reconnect=@var{seconds}] [,tls-creds=@var{id}] +@item -chardev socket,id=@var{id}[,@var{TCP options} or @var{unix options}][,server][,nowait][,telnet][,reconnect=@var{seconds}][,tls-creds=@var{id}] Create a two-way stream socket, which can be either a TCP or a unix socket. A unix socket will be created if @option{path} is specified. Behaviour is @@ -2636,7 +2636,7 @@ TCP and unix socket options are given below: @table @option -@item TCP options: port=@var{port} [,host=@var{host}] [,to=@var{to}] [,ipv4] [,ipv6] [,nodelay] +@item TCP options: port=@var{port}[,host=@var{host}][,to=@var{to}][,ipv4][,ipv6][,nodelay] @option{host} for a listening socket specifies the local address to be bound. For a connecting socket species the remote host to connect to. @option{host} is @@ -2664,7 +2664,7 @@ required. @end table -@item -chardev udp ,id=@var{id} [,host=@var{host}] ,port=@var{port} [,localaddr=@var{localaddr}] [,localport=@var{localport}] [,ipv4] [,ipv6] +@item -chardev udp,id=@var{id}[,host=@var{host}],port=@var{port}[,localaddr=@var{localaddr}][,localport=@var{localport}][,ipv4][,ipv6] Sends all traffic from the guest to a remote host over UDP. @@ -2683,12 +2683,12 @@ available local port will be used. @option{ipv4} and @option{ipv6} specify that either IPv4 or IPv6 must be used. If neither is specified the device may use either protocol. -@item -chardev msmouse ,id=@var{id} +@item -chardev msmouse,id=@var{id} Forward QEMU's emulated msmouse events to the guest. @option{msmouse} does not take any options. -@item -chardev vc ,id=@var{id} [[,width=@var{width}] [,height=@var{height}]] [[,cols=@var{cols}] [,rows=@var{rows}]] +@item -chardev vc,id=@var{id}[[,width=@var{width}][,height=@var{height}]][[,cols=@var{cols}][,rows=@var{rows}]] Connect to a QEMU text console. @option{vc} may optionally be given a specific size. @@ -2699,12 +2699,12 @@ the console, in pixels. @option{cols} and @option{rows} specify that the console be sized to fit a text console with the given dimensions. -@item -chardev ringbuf ,id=@var{id} [,size=@var{size}] +@item -chardev ringbuf,id=@var{id}[,size=@var{size}] Create a ring buffer with fixed size @option{size}. @var{size} must be a power of two and defaults to @code{64K}. -@item -chardev file ,id=@var{id} ,path=@var{path} +@item -chardev file,id=@var{id},path=@var{path} Log all traffic received from the guest to a file. @@ -2712,7 +2712,7 @@ Log all traffic received from the guest to a file. created if it does not already exist, and overwritten if it does. @option{path} is required. -@item -chardev pipe ,id=@var{id} ,path=@var{path} +@item -chardev pipe,id=@var{id},path=@var{path} Create a two-way connection to the guest. The behaviour differs slightly between Windows hosts and other hosts: @@ -2729,14 +2729,14 @@ be present. @option{path} forms part of the pipe path as described above. @option{path} is required. -@item -chardev console ,id=@var{id} +@item -chardev console,id=@var{id} Send traffic from the guest to QEMU's standard output. @option{console} does not take any options. @option{console} is only available on Windows hosts. -@item -chardev serial ,id=@var{id} ,path=@option{path} +@item -chardev serial,id=@var{id},path=@option{path} Send traffic from the guest to a serial device on the host. @@ -2745,33 +2745,33 @@ not only serial lines. @option{path} specifies the name of the serial device to open. -@item -chardev pty ,id=@var{id} +@item -chardev pty,id=@var{id} Create a new pseudo-terminal on the host and connect to it. @option{pty} does not take any options. @option{pty} is not available on Windows hosts. -@item -chardev stdio ,id=@var{id} [,signal=on|off] +@item -chardev stdio,id=@var{id}[,signal=on|off] Connect to standard input and standard output of the QEMU process. @option{signal} controls if signals are enabled on the terminal, that includes exiting QEMU with the key sequence @key{Control-c}. This option is enabled by default, use @option{signal=off} to disable it. -@item -chardev braille ,id=@var{id} +@item -chardev braille,id=@var{id} Connect to a local BrlAPI server. @option{braille} does not take any options. -@item -chardev tty ,id=@var{id} ,path=@var{path} +@item -chardev tty,id=@var{id},path=@var{path} @option{tty} is only available on Linux, Sun, FreeBSD, NetBSD, OpenBSD and DragonFlyBSD hosts. It is an alias for @option{serial}. @option{path} specifies the path to the tty. @option{path} is required. -@item -chardev parallel ,id=@var{id} ,path=@var{path} -@itemx -chardev parport ,id=@var{id} ,path=@var{path} +@item -chardev parallel,id=@var{id},path=@var{path} +@itemx -chardev parport,id=@var{id},path=@var{path} @option{parallel} is only available on Linux, FreeBSD and DragonFlyBSD hosts. @@ -2780,7 +2780,7 @@ Connect to a local parallel port. @option{path} specifies the path to the parallel port device. @option{path} is required. -@item -chardev spicevmc ,id=@var{id} ,debug=@var{debug}, name=@var{name} +@item -chardev spicevmc,id=@var{id},debug=@var{debug},name=@var{name} @option{spicevmc} is only available when spice support is built in. @@ -2790,7 +2790,7 @@ required. Connect to a spice virtual machine channel, such as vdiport. -@item -chardev spiceport ,id=@var{id} ,debug=@var{debug}, name=@var{name} +@item -chardev spiceport,id=@var{id},debug=@var{debug},name=@var{name} @option{spiceport} is only available when spice support is built in. @@ -2898,7 +2898,7 @@ STEXI The general form of a TPM device option is: @table @option -@item -tpmdev @var{backend} ,id=@var{id} [,@var{options}] +@item -tpmdev @var{backend},id=@var{id}[,@var{options}] @findex -tpmdev The specific backend type will determine the applicable options. @@ -2913,7 +2913,7 @@ The available backends are: @table @option -@item -tpmdev passthrough, id=@var{id}, path=@var{path}, cancel-path=@var{cancel-path} +@item -tpmdev passthrough,id=@var{id},path=@var{path},cancel-path=@var{cancel-path} (Linux-host only) Enable access to the host's TPM using the passthrough driver. @@ -2950,7 +2950,7 @@ To create a passthrough TPM use the following two options: Note that the @code{-tpmdev} id is @code{tpm0} and is referenced by @code{tpmdev=tpm0} in the device option. -@item -tpmdev emulator, id=@var{id}, chardev=@var{dev} +@item -tpmdev emulator,id=@var{id},chardev=@var{dev} (Linux-host only) Enable access to a TPM emulator using Unix domain socket based chardev backend. diff --git a/qga/commands-posix.c b/qga/commands-posix.c index 88807f3c78..967061444a 100644 --- a/qga/commands-posix.c +++ b/qga/commands-posix.c @@ -901,7 +901,7 @@ static void build_guest_fsinfo_for_real_device(char const *syspath, if (p && sscanf(q, "%u", &host) == 1) { has_host = true; nhosts = build_hosts(syspath, p, has_ata, hosts, - sizeof(hosts) / sizeof(hosts[0]), errp); + ARRAY_SIZE(hosts), errp); if (nhosts < 0) { goto cleanup; } diff --git a/scripts/argparse.py b/scripts/argparse.py index 288c1f06c0..27d1f28935 100644 --- a/scripts/argparse.py +++ b/scripts/argparse.py @@ -76,7 +76,7 @@ considered public as object names -- the API of the formatter objects is still considered an implementation detail.) """ -__version__ = '1.4.0' # we use our own version number independant of the +__version__ = '1.4.0' # we use our own version number independent of the # one in stdlib and we release this on pypi. __external_lib__ = True # to make sure the tests really test THIS lib, diff --git a/scripts/git-submodule.sh b/scripts/git-submodule.sh index bc7224a27f..807ca0b4f8 100755 --- a/scripts/git-submodule.sh +++ b/scripts/git-submodule.sh @@ -28,7 +28,7 @@ error() { echo echo "and then manually update submodules prior to running make, with:" echo - echo " $ scripts/git-sbumodule.sh update $modules" + echo " $ scripts/git-submodule.sh update $modules" echo exit 1 } diff --git a/scripts/make-release b/scripts/make-release index 3917df7142..04fa9defdc 100755 --- a/scripts/make-release +++ b/scripts/make-release @@ -19,11 +19,10 @@ pushd ${destination} git checkout "v${version}" git submodule update --init (cd roms/seabios && git describe --tags --long --dirty > .version) -rm -rf .git roms/*/.git dtc/.git pixman/.git # FIXME: The following line is a workaround for avoiding filename collisions # when unpacking u-boot sources on case-insensitive filesystems. Once we # update to something with u-boot commit 610eec7f0 we can drop this line. -tar cfj roms/u-boot.tar.bz2 -C roms u-boot && rm -rf roms/u-boot +tar --exclude=.git -cjf roms/u-boot.tar.bz2 -C roms u-boot && rm -rf roms/u-boot popd -tar cfj ${destination}.tar.bz2 ${destination} +tar --exclude=.git -cjf ${destination}.tar.bz2 ${destination} rm -rf ${destination} diff --git a/target/i386/hax-windows.h b/target/i386/hax-windows.h index 004f867694..20e2f85407 100644 --- a/target/i386/hax-windows.h +++ b/target/i386/hax-windows.h @@ -20,8 +20,6 @@ #ifndef TARGET_I386_HAX_WINDOWS_H #define TARGET_I386_HAX_WINDOWS_H -#include <memory.h> -#include <malloc.h> #include <winioctl.h> #include <windef.h> diff --git a/target/i386/hvf/x86_mmu.c b/target/i386/hvf/x86_mmu.c index c6be2cca35..d5a0efe718 100644 --- a/target/i386/hvf/x86_mmu.c +++ b/target/i386/hvf/x86_mmu.c @@ -17,7 +17,6 @@ */ #include "qemu/osdep.h" -#include <memory.h> #include "panic.h" #include "qemu-common.h" #include "cpu.h" diff --git a/tests/qemu-iotests/205 b/tests/qemu-iotests/205 index 10388920dc..e7b2eae51d 100644 --- a/tests/qemu-iotests/205 +++ b/tests/qemu-iotests/205 @@ -22,7 +22,7 @@ import os import sys import iotests import time -from iotests import qemu_img, qemu_io, filter_qemu_io, QemuIoInteractive +from iotests import qemu_img_create, qemu_io, filter_qemu_io, QemuIoInteractive nbd_sock = 'nbd_sock' nbd_uri = 'nbd+unix:///exp?socket=' + nbd_sock @@ -31,7 +31,7 @@ disk = os.path.join(iotests.test_dir, 'disk') class TestNbdServerRemove(iotests.QMPTestCase): def setUp(self): - qemu_img('create', '-f', iotests.imgfmt, disk, '1M') + qemu_img_create('-f', iotests.imgfmt, disk, '1M') self.vm = iotests.VM().add_drive(disk) self.vm.launch() diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py index 5a10b2d534..1bcc9ca57d 100644 --- a/tests/qemu-iotests/iotests.py +++ b/tests/qemu-iotests/iotests.py @@ -58,6 +58,11 @@ qemu_default_machine = os.environ.get('QEMU_DEFAULT_MACHINE') socket_scm_helper = os.environ.get('SOCKET_SCM_HELPER', 'socket_scm_helper') debug = False +luks_default_secret_object = 'secret,id=keysec0,data=' + \ + os.environ['IMGKEYSECRET'] +luks_default_key_secret_opt = 'key-secret=keysec0' + + def qemu_img(*args): '''Run qemu-img and return the exit code''' devnull = open('/dev/null', 'r+') @@ -66,6 +71,25 @@ def qemu_img(*args): sys.stderr.write('qemu-img received signal %i: %s\n' % (-exitcode, ' '.join(qemu_img_args + list(args)))) return exitcode +def qemu_img_create(*args): + args = list(args) + + # default luks support + if '-f' in args and args[args.index('-f') + 1] == 'luks': + if '-o' in args: + i = args.index('-o') + if 'key-secret' not in args[i + 1]: + args[i + 1].append(luks_default_key_secret_opt) + args.insert(i + 2, '--object') + args.insert(i + 3, luks_default_secret_object) + else: + args = ['-o', luks_default_key_secret_opt, + '--object', luks_default_secret_object] + args + + args.insert(0, 'create') + + return qemu_img(*args) + def qemu_img_verbose(*args): '''Run qemu-img without suppressing its output and return the exit code''' exitcode = subprocess.call(qemu_img_args + list(args)) @@ -263,6 +287,13 @@ class VM(qtest.QEMUQtestMachine): if opts: options.append(opts) + if format == 'luks' and 'key-secret' not in opts: + # default luks support + if luks_default_secret_object not in self._args: + self.add_object(luks_default_secret_object) + + options.append(luks_default_key_secret_opt) + self._args.append('-drive') self._args.append(','.join(options)) self._num_drives += 1 diff --git a/tests/test-hbitmap.c b/tests/test-hbitmap.c index 9091c639b3..f29631f939 100644 --- a/tests/test-hbitmap.c +++ b/tests/test-hbitmap.c @@ -813,7 +813,7 @@ static void test_hbitmap_serialize_basic(TestHBitmapData *data, size_t buf_size; uint8_t *buf; uint64_t positions[] = { 0, 1, L1 - 1, L1, L2 - 1, L2, L2 + 1, L3 - 1 }; - int num_positions = sizeof(positions) / sizeof(positions[0]); + int num_positions = ARRAY_SIZE(positions); hbitmap_test_init(data, L3, 0); g_assert(hbitmap_is_serializable(data->hb)); @@ -838,7 +838,7 @@ static void test_hbitmap_serialize_part(TestHBitmapData *data, size_t buf_size; uint8_t *buf; uint64_t positions[] = { 0, 1, L1 - 1, L1, L2 - 1, L2, L2 + 1, L3 - 1 }; - int num_positions = sizeof(positions) / sizeof(positions[0]); + int num_positions = ARRAY_SIZE(positions); hbitmap_test_init(data, L3, 0); buf_size = L2; @@ -880,7 +880,7 @@ static void test_hbitmap_serialize_zeroes(TestHBitmapData *data, int64_t next; uint64_t min_l1 = MAX(L1, 64); uint64_t positions[] = { 0, min_l1, L2, L3 - min_l1}; - int num_positions = sizeof(positions) / sizeof(positions[0]); + int num_positions = ARRAY_SIZE(positions); hbitmap_test_init(data, L3, 0); diff --git a/tests/test-qobject-output-visitor.c b/tests/test-qobject-output-visitor.c index 3cf942414c..11e8c5aa40 100644 --- a/tests/test-qobject-output-visitor.c +++ b/tests/test-qobject-output-visitor.c @@ -572,7 +572,7 @@ static void init_native_list(UserDefNativeListUnion *cvalue) boolList **list = &cvalue->u.boolean.data; for (i = 0; i < 32; i++) { *list = g_new0(boolList, 1); - (*list)->value = (i % 3 == 0); + (*list)->value = QEMU_IS_ALIGNED(i, 3); (*list)->next = NULL; list = &(*list)->next; } diff --git a/tests/test-string-output-visitor.c b/tests/test-string-output-visitor.c index fa4b4ca288..02766c0f65 100644 --- a/tests/test-string-output-visitor.c +++ b/tests/test-string-output-visitor.c @@ -95,7 +95,7 @@ static void test_visitor_out_intList(TestOutputVisitorData *data, Error *err = NULL; char *str; - for (i = 0; i < sizeof(value) / sizeof(value[0]); i++) { + for (i = 0; i < ARRAY_SIZE(value); i++) { *tmp = g_malloc0(sizeof(**tmp)); (*tmp)->value = value[i]; tmp = &(*tmp)->next; diff --git a/util/aio-posix.c b/util/aio-posix.c index 1427f49b4a..d8f0cb4af8 100644 --- a/util/aio-posix.c +++ b/util/aio-posix.c @@ -119,7 +119,7 @@ static int aio_epoll(AioContext *ctx, GPollFD *pfds, } if (timeout <= 0 || ret > 0) { ret = epoll_wait(ctx->epollfd, events, - sizeof(events) / sizeof(events[0]), + ARRAY_SIZE(events), timeout); if (ret <= 0) { goto out; diff --git a/util/oslib-posix.c b/util/oslib-posix.c index 77369c92ce..4655bc1f89 100644 --- a/util/oslib-posix.c +++ b/util/oslib-posix.c @@ -105,7 +105,7 @@ void *qemu_try_memalign(size_t alignment, size_t size) alignment = sizeof(void*); } -#if defined(_POSIX_C_SOURCE) && !defined(__sun__) +#if defined(CONFIG_POSIX_MEMALIGN) int ret; ret = posix_memalign(&ptr, alignment, size); if (ret != 0) { |