diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2017-08-01 18:03:04 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2017-08-01 18:03:04 +0100 |
commit | 82d3d409b8b650164817ead0cb48298c6973d731 (patch) | |
tree | 76b2c0412952acc21ac9bf1e54d9899a9092ec8f /include | |
parent | 3b64f272d36b310587e606217db92b0bcb6673a1 (diff) | |
parent | 33f21e4f044ac1c37f60edc1f1aee628be8f463b (diff) | |
download | qemu-82d3d409b8b650164817ead0cb48298c6973d731.zip qemu-82d3d409b8b650164817ead0cb48298c6973d731.tar.gz qemu-82d3d409b8b650164817ead0cb48298c6973d731.tar.bz2 |
Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging
* Xen fix (Anthony)
* chardev fixes (Anton, Marc-André)
* small dead code removal (Zhongyi)
* documentation (Dan)
* bugfixes (David)
* decrease migration downtime (Jay)
* improved error output (Laurent)
* RTC tests and bugfix (me)
* Bluetooth clang analyzer fix (me)
* KVM CPU hotplug race (Peng Hao)
* Two other patches from Philippe's clang analyzer series
# gpg: Signature made Tue 01 Aug 2017 16:56:21 BST
# gpg: using RSA key 0xBFFBD25F78C7AE83
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>"
# gpg: aka "Paolo Bonzini <pbonzini@redhat.com>"
# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1
# Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83
* remotes/bonzini/tags/for-upstream:
mc146818rtc: implement UIP latching as intended
mc146818rtc: simplify check_update_timer
rtc-test: introduce more update tests
rtc-test: cleanup register_b_set_flag test
hw/scsi/vmw_pvscsi: Convert to realize
hw/scsi/vmw_pvscsi: Remove the dead error handling
migration: optimize the downtime
qemu-options: document existance of versioned machine types
bt: stop the sdp memory allocation craziness
exec: Add lock parameter to qemu_ram_ptr_length
target-i386: kvm_get/put_vcpu_events don't handle sipi_vector
docs: document deprecation policy & deprecated features in appendix
char: don't exit on hmp 'chardev-add help'
char-fd: remove useless chr pointer
accel: cleanup error output
cpu_physical_memory_sync_dirty_bitmap: Fix alignment check
vl.c/exit: pause cpus before closing block devices
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/chardev/char-fd.h | 2 | ||||
-rw-r--r-- | include/chardev/char.h | 4 | ||||
-rw-r--r-- | include/exec/ram_addr.h | 7 |
3 files changed, 8 insertions, 5 deletions
diff --git a/include/chardev/char-fd.h b/include/chardev/char-fd.h index 55ae5b4..e7c2b17 100644 --- a/include/chardev/char-fd.h +++ b/include/chardev/char-fd.h @@ -29,7 +29,7 @@ typedef struct FDChardev { Chardev parent; - Chardev *chr; + QIOChannel *ioc_in, *ioc_out; int max_size; } FDChardev; diff --git a/include/chardev/char.h b/include/chardev/char.h index 1604ea9..66dde46 100644 --- a/include/chardev/char.h +++ b/include/chardev/char.h @@ -65,7 +65,9 @@ struct Chardev { * * @opts see qemu-config.c for a list of valid options * - * Returns: a new character backend + * Returns: on success: a new character backend + * otherwise: NULL; @errp specifies the error + * or left untouched in case of help option */ Chardev *qemu_chr_new_from_opts(QemuOpts *opts, Error **errp); diff --git a/include/exec/ram_addr.h b/include/exec/ram_addr.h index c04f4f6..d017639 100644 --- a/include/exec/ram_addr.h +++ b/include/exec/ram_addr.h @@ -377,19 +377,20 @@ uint64_t cpu_physical_memory_sync_dirty_bitmap(RAMBlock *rb, uint64_t *real_dirty_pages) { ram_addr_t addr; - unsigned long page = BIT_WORD(start >> TARGET_PAGE_BITS); + unsigned long word = BIT_WORD((start + rb->offset) >> TARGET_PAGE_BITS); uint64_t num_dirty = 0; unsigned long *dest = rb->bmap; /* start address is aligned at the start of a word? */ - if (((page * BITS_PER_LONG) << TARGET_PAGE_BITS) == start) { + if (((word * BITS_PER_LONG) << TARGET_PAGE_BITS) == + (start + rb->offset)) { int k; int nr = BITS_TO_LONGS(length >> TARGET_PAGE_BITS); unsigned long * const *src; - unsigned long word = BIT_WORD((start + rb->offset) >> TARGET_PAGE_BITS); unsigned long idx = (word * BITS_PER_LONG) / DIRTY_MEMORY_BLOCK_SIZE; unsigned long offset = BIT_WORD((word * BITS_PER_LONG) % DIRTY_MEMORY_BLOCK_SIZE); + unsigned long page = BIT_WORD(start >> TARGET_PAGE_BITS); rcu_read_lock(); |