diff options
author | Fabiano Rosas <farosas@suse.de> | 2023-10-09 15:43:25 -0300 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2023-10-17 09:14:32 +0200 |
commit | caea03279e11dfcb0e5a567b81fe7f02ee80af02 (patch) | |
tree | a8d2dabb5b4318ae2d8917ebda533841988a26f0 | |
parent | ff40c7f0b787f47cf767b39a3226a113c06930f2 (diff) | |
download | qemu-caea03279e11dfcb0e5a567b81fe7f02ee80af02.zip qemu-caea03279e11dfcb0e5a567b81fe7f02ee80af02.tar.gz qemu-caea03279e11dfcb0e5a567b81fe7f02ee80af02.tar.bz2 |
migration: Fix analyze-migration read operation signedness
The migration code uses unsigned values for 16, 32 and 64-bit
operations. Fix the script to do the same.
This was causing an issue when parsing the migration stream generated
on the ppc64 target because one of instance_ids was larger than the
32bit signed maximum:
Traceback (most recent call last):
File "/home/fabiano/kvm/qemu/build/scripts/analyze-migration.py", line 658, in <module>
dump.read(dump_memory = args.memory)
File "/home/fabiano/kvm/qemu/build/scripts/analyze-migration.py", line 592, in read
classdesc = self.section_classes[section_key]
KeyError: ('spapr_iommu', -2147483648)
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231009184326.15777-6-farosas@suse.de>
-rwxr-xr-x | scripts/analyze-migration.py | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/scripts/analyze-migration.py b/scripts/analyze-migration.py index 56ab04d..de506cb 100755 --- a/scripts/analyze-migration.py +++ b/scripts/analyze-migration.py @@ -38,13 +38,13 @@ class MigrationFile(object): self.file = open(self.filename, "rb") def read64(self): - return int.from_bytes(self.file.read(8), byteorder='big', signed=True) + return int.from_bytes(self.file.read(8), byteorder='big', signed=False) def read32(self): - return int.from_bytes(self.file.read(4), byteorder='big', signed=True) + return int.from_bytes(self.file.read(4), byteorder='big', signed=False) def read16(self): - return int.from_bytes(self.file.read(2), byteorder='big', signed=True) + return int.from_bytes(self.file.read(2), byteorder='big', signed=False) def read8(self): return int.from_bytes(self.file.read(1), byteorder='big', signed=True) |