summaryrefslogtreecommitdiffstats
path: root/migration
diff options
context:
space:
mode:
authorWei Yang2019-06-27 04:08:21 +0200
committerDr. David Alan Gilbert2019-08-14 18:33:14 +0200
commit33a5cb6202f05bf32a870a17c2d9b6d6be6e52f0 (patch)
tree242086c3a878277c00f68eb1a3b8d3780d6a7c39 /migration
parentmigration/postcopy: the valid condition is one less then end (diff)
downloadqemu-33a5cb6202f05bf32a870a17c2d9b6d6be6e52f0.tar.gz
qemu-33a5cb6202f05bf32a870a17c2d9b6d6be6e52f0.tar.xz
qemu-33a5cb6202f05bf32a870a17c2d9b6d6be6e52f0.zip
migration/postcopy: break the loop when there is no more page to discard
When one is equal or bigger then end, it means there is no page to discard. Just break the loop in this case instead of processing it. No functional change, just refactor it a little. Signed-off-by: Wei Yang <richardw.yang@linux.intel.com> Message-Id: <20190627020822.15485-3-richardw.yang@linux.intel.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Diffstat (limited to 'migration')
-rw-r--r--migration/ram.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/migration/ram.c b/migration/ram.c
index 68bc11c9e7..8a97dadec4 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -2864,23 +2864,23 @@ static int postcopy_send_discard_bm_ram(MigrationState *ms,
for (current = 0; current < end; ) {
unsigned long one = find_next_bit(unsentmap, end, current);
+ unsigned long zero, discard_length;
- if (one < end) {
- unsigned long zero = find_next_zero_bit(unsentmap, end, one + 1);
- unsigned long discard_length;
+ if (one >= end) {
+ break;
+ }
- if (zero >= end) {
- discard_length = end - one;
- } else {
- discard_length = zero - one;
- }
- if (discard_length) {
- postcopy_discard_send_range(ms, pds, one, discard_length);
- }
- current = one + discard_length;
+ zero = find_next_zero_bit(unsentmap, end, one + 1);
+
+ if (zero >= end) {
+ discard_length = end - one;
} else {
- current = one;
+ discard_length = zero - one;
+ }
+ if (discard_length) {
+ postcopy_discard_send_range(ms, pds, one, discard_length);
}
+ current = one + discard_length;
}
return 0;