- kvm-blockjob-update-nodes-head-while-removing-all-bdrv.patch [bz#1746631] - kvm-hostmem-file-fix-pmem-file-size-check.patch [bz#1724008 bz#1736788] - kvm-memory-fetch-pmem-size-in-get_file_size.patch [bz#1724008 bz#1736788] - kvm-pr-manager-Fix-invalid-g_free-crash-bug.patch [bz#1753992] - Resolves: bz#1724008 (QEMU core dumped "memory_region_get_ram_ptr: Assertion `mr->ram_block' failed") - Resolves: bz#1736788 (QEMU core dumped if boot guest with nvdimm backed by /dev/dax0.0 and option pmem=off) - Resolves: bz#1746631 (Qemu core dump when do block commit under stress) - Resolves: bz#1753992 (core dump when testing persistent reservation in guest)
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From c7c95a2f14d94eb8213ce7cab03acdef40fed093 Mon Sep 17 00:00:00 2001
 | |
| From: Stefan Hajnoczi <stefanha@redhat.com>
 | |
| Date: Wed, 18 Sep 2019 15:10:06 +0100
 | |
| Subject: [PATCH 2/4] hostmem-file: fix pmem file size check
 | |
| MIME-Version: 1.0
 | |
| Content-Type: text/plain; charset=UTF-8
 | |
| Content-Transfer-Encoding: 8bit
 | |
| 
 | |
| RH-Author: Stefan Hajnoczi <stefanha@redhat.com>
 | |
| Message-id: <20190918151007.27973-2-stefanha@redhat.com>
 | |
| Patchwork-id: 90763
 | |
| O-Subject: [RHEL-AV-8.1.0 qemu-kvm PATCH 1/2] hostmem-file: fix pmem file size check
 | |
| Bugzilla: 1724008 1736788
 | |
| RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
 | |
| RH-Acked-by: Philippe Mathieu-Daudé <philmd@redhat.com>
 | |
| RH-Acked-by: Igor Mammedov <imammedo@redhat.com>
 | |
| RH-Acked-by: Eduardo Habkost <ehabkost@redhat.com>
 | |
| 
 | |
| Commit 314aec4a6e06844937f1677f6cba21981005f389 ("hostmem-file: reject
 | |
| invalid pmem file sizes") added a file size check that verifies the
 | |
| hostmem object's size parameter against the actual devdax pmem file.
 | |
| This is useful because getting the size wrong results in confusing
 | |
| errors inside the guest.
 | |
| 
 | |
| However, the code doesn't work properly for files where struct
 | |
| stat::st_size is zero.  Hostmem-file's ->alloc() function returns early
 | |
| without setting an Error, causing the following assertion failure:
 | |
| 
 | |
|   qemu/memory.c:2215: memory_region_get_ram_ptr: Assertion `mr->ram_block' failed.
 | |
| 
 | |
| This patch handles the case where qemu_get_pmem_size() returns 0 but
 | |
| there is no error.
 | |
| 
 | |
| Fixes: 314aec4a6e06844937f1677f6cba21981005f389
 | |
| Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
 | |
| Message-Id: <20190823135632.25010-1-stefanha@redhat.com>
 | |
| Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
 | |
| (cherry picked from commit 7faae95ebc966c2981b78cf7c25009dfa32d4b72)
 | |
| 
 | |
| Note that this commit will be effectively reverted by the next one but I
 | |
| backported it to avoid conflicts.
 | |
| 
 | |
| Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
 | |
| Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
 | |
| ---
 | |
|  backends/hostmem-file.c | 4 ++--
 | |
|  1 file changed, 2 insertions(+), 2 deletions(-)
 | |
| 
 | |
| diff --git a/backends/hostmem-file.c b/backends/hostmem-file.c
 | |
| index 29e55c9..ecc15e3 100644
 | |
| --- a/backends/hostmem-file.c
 | |
| +++ b/backends/hostmem-file.c
 | |
| @@ -67,12 +67,12 @@ file_backend_memory_alloc(HostMemoryBackend *backend, Error **errp)
 | |
|          uint64_t size;
 | |
|  
 | |
|          size = qemu_get_pmem_size(fb->mem_path, &local_err);
 | |
| -        if (!size) {
 | |
| +        if (local_err) {
 | |
|              error_propagate(errp, local_err);
 | |
|              return;
 | |
|          }
 | |
|  
 | |
| -        if (backend->size > size) {
 | |
| +        if (size && backend->size > size) {
 | |
|              error_setg(errp, "size property %" PRIu64 " is larger than "
 | |
|                         "pmem file \"%s\" size %" PRIu64, backend->size,
 | |
|                         fb->mem_path, size);
 | |
| -- 
 | |
| 1.8.3.1
 | |
| 
 |