aboutsummaryrefslogtreecommitdiff
path: root/dump/dump.c
diff options
context:
space:
mode:
authorYao Xingtao <yaoxt.fnst@fujitsu.com>2024-07-22 00:07:41 -0400
committerPhilippe Mathieu-Daudé <philmd@linaro.org>2024-07-23 20:30:36 +0200
commit1aef44805df33f3f6e6302984660f4ea6b31fb3e (patch)
treeec28b261a30742960eba7d450b4f614af4b4b929 /dump/dump.c
parent7cd9b9d476e729808f3c9b82a12f51a39673d5cb (diff)
downloadqemu-1aef44805df33f3f6e6302984660f4ea6b31fb3e.zip
qemu-1aef44805df33f3f6e6302984660f4ea6b31fb3e.tar.gz
qemu-1aef44805df33f3f6e6302984660f4ea6b31fb3e.tar.bz2
dump: make range overlap check more readable
use ranges_overlap() instead of open-coding the overlap check to improve the readability of the code. Signed-off-by: Yao Xingtao <yaoxt.fnst@fujitsu.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-ID: <20240722040742.11513-13-yaoxt.fnst@fujitsu.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Diffstat (limited to 'dump/dump.c')
-rw-r--r--dump/dump.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/dump/dump.c b/dump/dump.c
index 84064d8..45e8442 100644
--- a/dump/dump.c
+++ b/dump/dump.c
@@ -30,6 +30,7 @@
#include "migration/blocker.h"
#include "hw/core/cpu.h"
#include "win_dump.h"
+#include "qemu/range.h"
#include <zlib.h>
#ifdef CONFIG_LZO
@@ -574,8 +575,10 @@ static void get_offset_range(hwaddr phys_addr,
QTAILQ_FOREACH(block, &s->guest_phys_blocks.head, next) {
if (dump_has_filter(s)) {
- if (block->target_start >= s->filter_area_begin + s->filter_area_length ||
- block->target_end <= s->filter_area_begin) {
+ if (!ranges_overlap(block->target_start,
+ block->target_end - block->target_start,
+ s->filter_area_begin,
+ s->filter_area_length)) {
/* This block is out of the range */
continue;
}
@@ -734,8 +737,9 @@ int64_t dump_filtered_memblock_start(GuestPhysBlock *block,
{
if (filter_area_length) {
/* return -1 if the block is not within filter area */
- if (block->target_start >= filter_area_start + filter_area_length ||
- block->target_end <= filter_area_start) {
+ if (!ranges_overlap(block->target_start,
+ block->target_end - block->target_start,
+ filter_area_start, filter_area_length)) {
return -1;
}