From patchwork Fri Sep 12 13:58:46 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 388665 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 152AB1400F0 for ; Sat, 13 Sep 2014 00:04:39 +1000 (EST) Received: from localhost ([::1]:45222 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XSRSn-0006lR-5E for incoming@patchwork.ozlabs.org; Fri, 12 Sep 2014 10:04:37 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37060) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XSRNt-0005qS-6r for qemu-devel@nongnu.org; Fri, 12 Sep 2014 09:59:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XSRNo-0000u0-Lm for qemu-devel@nongnu.org; Fri, 12 Sep 2014 09:59:33 -0400 Received: from mail-qg0-x22b.google.com ([2607:f8b0:400d:c04::22b]:40476) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XSRNo-0000tl-IS for qemu-devel@nongnu.org; Fri, 12 Sep 2014 09:59:28 -0400 Received: by mail-qg0-f43.google.com with SMTP id a108so769153qge.30 for ; Fri, 12 Sep 2014 06:59:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=ufR+KgP6aYzBTSlx1vG3u617I5ZgwUiOYuAupAOIhXU=; b=My7+Z4VBkU7MxSxkhBnuUje6Aooxc3vzYMg1Qp8OMyJuEhqiE/UqHYcrtdRNimXu1H gdg2S69Rbc63EXbaAdJlz0HPYHe1ig4dwnsuhouPKNL95v/LHIafygB8cXNP2W6h8LFm ZtDfqKIty7sdIlrWsZsFty783nmAfrPdEbXOP8ISgy1iEIP+6nMuRnnCPhcuw4ltWIXg knUrT8UOQ+OeNYzOqZ86cHtVxwwrEl4pU3t3U7iTllk3PVCoITpEYnKDL8iECt6kdh0Z hDQGEHGfc4sb1I/IzEQcCiG86ethQLlhoa9DwWFIZjiQk8QQ92k9Jg2IM3x8pJpJqTuI 3qhw== X-Received: by 10.140.93.230 with SMTP id d93mr12509106qge.53.1410530367112; Fri, 12 Sep 2014 06:59:27 -0700 (PDT) Received: from yakj.usersys.redhat.com (net-37-116-212-135.cust.vodafonedsl.it. [37.116.212.135]) by mx.google.com with ESMTPSA id d3sm3026565qar.42.2014.09.12.06.59.25 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Sep 2014 06:59:26 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Fri, 12 Sep 2014 15:58:46 +0200 Message-Id: <1410530338-17615-10-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: <1410530338-17615-1-git-send-email-pbonzini@redhat.com> References: <1410530338-17615-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:400d:c04::22b Cc: Hu Tao Subject: [Qemu-devel] [PULL 09/21] hostmem-ram: don't exit qemu if size of memory-backend-ram is way too big X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Hu Tao When using monitor command object_add to add a memory backend whose size is way too big to allocate memory for it, qemu just exits. In the case we'd better give an error message and keep guest running. The problem can be reproduced as follows: 1. run qemu 2. (monitor)object_add memory-backend-ram,size=100000G,id=ram0 Reviewed-by: Peter Crosthwaite Signed-off-by: Hu Tao Signed-off-by: Paolo Bonzini --- backends/hostmem-ram.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backends/hostmem-ram.c b/backends/hostmem-ram.c index e55d066..a67a134 100644 --- a/backends/hostmem-ram.c +++ b/backends/hostmem-ram.c @@ -27,7 +27,7 @@ ram_backend_memory_alloc(HostMemoryBackend *backend, Error **errp) path = object_get_canonical_path_component(OBJECT(backend)); memory_region_init_ram(&backend->mr, OBJECT(backend), path, - backend->size, &error_abort); + backend->size, errp); g_free(path); }