From patchwork Mon Nov 12 11:57:21 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Will Deacon X-Patchwork-Id: 1728011 Return-Path: X-Original-To: patchwork-kvm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork2.kernel.org (Postfix) with ESMTP id 9EA19DFE80 for ; Mon, 12 Nov 2012 11:58:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753070Ab2KLL6U (ORCPT ); Mon, 12 Nov 2012 06:58:20 -0500 Received: from cam-admin0.cambridge.arm.com ([217.140.96.50]:55163 "EHLO cam-admin0.cambridge.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752848Ab2KLL5j (ORCPT ); Mon, 12 Nov 2012 06:57:39 -0500 Received: from mudshark.cambridge.arm.com (mudshark.cambridge.arm.com [10.1.79.58]) by cam-admin0.cambridge.arm.com (8.12.6/8.12.6) with ESMTP id qACBvYE7025851; Mon, 12 Nov 2012 11:57:34 GMT Received: by mudshark.cambridge.arm.com (Postfix, from userid 1000) id BEE1DC02AC; Mon, 12 Nov 2012 11:57:33 +0000 (GMT) From: Will Deacon To: kvm@vger.kernel.org Cc: penberg@kernel.org, marc.zyngier@arm.com, c.dall@virtualopensystems.com, matt.evans@arm.com, peter.maydell@linaro.org, Will Deacon Subject: [RFC PATCH 07/16] kvm tools: die if init_list__init returns failure Date: Mon, 12 Nov 2012 11:57:21 +0000 Message-Id: <1352721450-11340-8-git-send-email-will.deacon@arm.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1352721450-11340-1-git-send-email-will.deacon@arm.com> References: <1352721450-11340-1-git-send-email-will.deacon@arm.com> Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org If init_list__init returns failure when initialising kvm tool, we can't rely on our structures being fully initialised, so die rather than try to continue and fail gracefully later on. This prevents a SEGV when kvm is not available on the host: Error: '/dev/kvm' not found. Please make sure your kernel has CONFIG_KVM enabled and that the KVM modules are loaded. Warning: Failed init: kvm__init Segmentation fault Signed-off-by: Will Deacon --- tools/kvm/builtin-run.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/tools/kvm/builtin-run.c b/tools/kvm/builtin-run.c index dec2e74..96e68af 100644 --- a/tools/kvm/builtin-run.c +++ b/tools/kvm/builtin-run.c @@ -665,7 +665,8 @@ static struct kvm *kvm_cmd_run_init(int argc, const char **argv) printf(" # %s run -k %s -m %Lu -c %d --name %s\n", KVM_BINARY_NAME, kvm->cfg.kernel_filename, kvm->cfg.ram_size / 1024 / 1024, kvm->cfg.nrcpus, kvm->cfg.guest_name); - init_list__init(kvm); + if (init_list__init(kvm) < 0) + die ("Initialisation failed"); return kvm; }