diff options
| author | Stefan Hajnoczi <stefanha@redhat.com> | 2025-03-28 08:06:33 -0400 |
|---|---|---|
| committer | Stefan Hajnoczi <stefanha@redhat.com> | 2025-03-28 08:06:33 -0400 |
| commit | f5300db9fa11c4f84e532502a97463efaaf45a19 (patch) | |
| tree | 183bb0645d99ac706274c5b70759fc02bcbc7c6e /system/physmem.c | |
| parent | 3a0ff62431d297eadc7213cc5b2abda9d1bfce7a (diff) | |
| parent | 694b5a913d03fd7233edf6961c54edac78684519 (diff) | |
| download | focaccia-qemu-f5300db9fa11c4f84e532502a97463efaaf45a19.tar.gz focaccia-qemu-f5300db9fa11c4f84e532502a97463efaaf45a19.zip | |
Merge tag 'migration-20250327-pull-request' of https://gitlab.com/farosas/qemu into staging
Migration pull request Fix crash due to cpr migration blocker (affects SEV-SNP guest) # -----BEGIN PGP SIGNATURE----- # # iQJEBAABCAAuFiEEqhtIsKIjJqWkw2TPx5jcdBvsMZ0FAmflnA4QHGZhcm9zYXNA # c3VzZS5kZQAKCRDHmNx0G+wxnToTEACblWuLFBjnjJNZoW1f4LT27cT8s98huolA # audigd4xqYQEya1VTiyYckeJKeGp/aC7A4YkjrsFNCwknmIpzqGh4bhRdezerM16 # hlv/mfD9GGDYBS5jMXs8pMo442Lpn7/q78UUflfZwi+ad+XE4xdHkbh0i/GYuuj/ # Z4E2F62tboUfJ0RGeDcV/xjiaxnWkru2x9fMX5BCEez2Jj0Axk80W2lcfcu6tZL4 # s/uEmc235B5f6JtoIVdnr4IllenaukzBt+vPSD+QwweiPwLDTZ+IjBk/Q8Dh4jb8 # Q6E1Paf7ZfeHRlRM1XqZgRACPBQ/gTeCslbCDxjQgCfiS4dL70rdbTSpWOQyYUc3 # DYtqGnJO6t0dHFcH2m2envYT5u5cN+S80yVU+hA4LjefJ1cCu2IWiHwMF5EIYfO4 # eE9CNPALW09mi8OkPNsXRiplLZekIjQPV7znmLh82GWWaTa2GpJYZhD5jhUmyRex # jvdrsLBK1dLgv5PjMMhO6cQobgZQaxbzHMGW+IvobEZ2jjGCNTCZ2/YfXQOGcPcs # pN5Q+8U5IvmhVCTiN7kVRL6TThwT2KqAdWA/UXi5lLQiTHTrEEVJip6JWLJs4zmf # q3g9VIhr8x7Room6TKex6pkeO/7OqSik/pjOvjVCE6RGfi6yNd9a3KLfvCePDjdN # kLWoyan8eQ== # =fZ+v # -----END PGP SIGNATURE----- # gpg: Signature made Thu 27 Mar 2025 14:42:22 EDT # gpg: using RSA key AA1B48B0A22326A5A4C364CFC798DC741BEC319D # gpg: issuer "farosas@suse.de" # gpg: Good signature from "Fabiano Rosas <farosas@suse.de>" [unknown] # gpg: aka "Fabiano Almeida Rosas <fabiano.rosas@suse.com>" [unknown] # gpg: WARNING: The key's User ID is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: AA1B 48B0 A223 26A5 A4C3 64CF C798 DC74 1BEC 319D * tag 'migration-20250327-pull-request' of https://gitlab.com/farosas/qemu: migration: Avoid SNP guest crash due to duplicate cpr blocker Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'system/physmem.c')
| -rw-r--r-- | system/physmem.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/system/physmem.c b/system/physmem.c index e97de3ef65..333a5eb94d 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -158,6 +158,7 @@ static void io_mem_init(void); static void memory_map_init(void); static void tcg_log_global_after_sync(MemoryListener *listener); static void tcg_commit(MemoryListener *listener); +static bool ram_is_cpr_compatible(RAMBlock *rb); /** * CPUAddressSpace: all the information a CPU needs about an AddressSpace @@ -1908,13 +1909,18 @@ static void ram_block_add(RAMBlock *new_block, Error **errp) goto out_free; } - error_setg(&new_block->cpr_blocker, - "Memory region %s uses guest_memfd, " - "which is not supported with CPR.", - memory_region_name(new_block->mr)); - migrate_add_blocker_modes(&new_block->cpr_blocker, errp, - MIG_MODE_CPR_TRANSFER, - -1); + /* + * Add a specific guest_memfd blocker if a generic one would not be + * added by ram_block_add_cpr_blocker. + */ + if (ram_is_cpr_compatible(new_block)) { + error_setg(&new_block->cpr_blocker, + "Memory region %s uses guest_memfd, " + "which is not supported with CPR.", + memory_region_name(new_block->mr)); + migrate_add_blocker_modes(&new_block->cpr_blocker, errp, + MIG_MODE_CPR_TRANSFER, -1); + } } ram_size = (new_block->offset + new_block->max_length) >> TARGET_PAGE_BITS; |