diff mbox

file_ram_alloc: propagate error to caller instead of terminating QEMU

Message ID 1445274671-17704-1-git-send-email-imammedo@redhat.com
State New
Headers show

Commit Message

Igor Mammedov Oct. 19, 2015, 5:11 p.m. UTC
QEMU shouldn't exits from file_ram_alloc() if -mem-prealloc option is specified
and "object_add memory-backend-file,..." fails allocation during memory hotplug.

Propagate error to a caller and let it decide what to do with allocation failure.
That leaves QEMU alive if it can't create backend during hotplug time and
kills QEMU at startup time if backends or initial memory were misconfigured/
too large.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
---
 exec.c | 4 ----
 1 file changed, 4 deletions(-)

Comments

Paolo Bonzini Oct. 20, 2015, noon UTC | #1
On 19/10/2015 19:11, Igor Mammedov wrote:
> QEMU shouldn't exits from file_ram_alloc() if -mem-prealloc option is specified
> and "object_add memory-backend-file,..." fails allocation during memory hotplug.
> 
> Propagate error to a caller and let it decide what to do with allocation failure.
> That leaves QEMU alive if it can't create backend during hotplug time and
> kills QEMU at startup time if backends or initial memory were misconfigured/
> too large.
> 
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> ---
>  exec.c | 4 ----
>  1 file changed, 4 deletions(-)
> 
> diff --git a/exec.c b/exec.c
> index 7d90a52..0aadd41 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -1292,10 +1292,6 @@ static void *file_ram_alloc(RAMBlock *block,
>      return area;
>  
>  error:
> -    if (mem_prealloc) {
> -        error_report("%s", error_get_pretty(*errp));
> -        exit(1);
> -    }
>      return NULL;
>  }
>  #endif
> 

Queued, thanks.

Paolo
diff mbox

Patch

diff --git a/exec.c b/exec.c
index 7d90a52..0aadd41 100644
--- a/exec.c
+++ b/exec.c
@@ -1292,10 +1292,6 @@  static void *file_ram_alloc(RAMBlock *block,
     return area;
 
 error:
-    if (mem_prealloc) {
-        error_report("%s", error_get_pretty(*errp));
-        exit(1);
-    }
     return NULL;
 }
 #endif