mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
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>
This commit is contained in:
parent
0abfff9ea7
commit
33a5cb6202
1 changed files with 15 additions and 15 deletions
|
@ -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 (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;
|
||||
} else {
|
||||
current = one;
|
||||
if (one >= end) {
|
||||
break;
|
||||
}
|
||||
|
||||
zero = find_next_zero_bit(unsentmap, end, one + 1);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue