From patchwork Tue May 27 12:37:43 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoffer Dall X-Patchwork-Id: 352912 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 70FBC1400DD for ; Tue, 27 May 2014 22:38:58 +1000 (EST) Received: from localhost ([::1]:34075 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WpGee-0006n9-57 for incoming@patchwork.ozlabs.org; Tue, 27 May 2014 08:38:56 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51165) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WpGe4-0005gw-C5 for qemu-devel@nongnu.org; Tue, 27 May 2014 08:38:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WpGdx-00023S-CO for qemu-devel@nongnu.org; Tue, 27 May 2014 08:38:20 -0400 Received: from mail-lb0-f173.google.com ([209.85.217.173]:50899) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WpGdx-00023H-66 for qemu-devel@nongnu.org; Tue, 27 May 2014 08:38:13 -0400 Received: by mail-lb0-f173.google.com with SMTP id 10so4923613lbg.4 for ; Tue, 27 May 2014 05:38:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=Ipthc8oBDmsXGieTS30wStOw8Rr6GoVRuKUvA3/4gF4=; b=YqKr9zDyuCPgG0YdY65i0dXJmEFZrcjScxeEqsAvfjlDcOe7EDjBOEjmWTJG5fNQs2 YRdBeJjagSlmS6MLpdBVsa5pyWEZrmTbqI8+gM0Zde/CJFI1mOVqLnLD9SrCBri57Ak3 h7KU92XU8OloP+cjV11+1C9prx2G3mZ5HHdo1rh028o0tSLqKzXnHptwBsptoh6OV2oR X7nIeIJWMBf9NNwPD/TIOdrZUz5q6uggolqBXK1/20Tfmw5WLU134i2SG8bwW+Zwm2Ey GoKe8YvgtMpeUrNfAsPw6apfjDeG9XGdgkqecOIFDpLPZTspGq0NCXGlg7bZcwD+a638 0nhw== X-Gm-Message-State: ALoCoQlDX3WYvLNqyEgkFBWmhKmO6DZVbyvq4hEr6h3R7sWJ4pSQAghWBQeBxC0acql0Of3GoBtq X-Received: by 10.152.42.145 with SMTP id o17mr23379248lal.33.1401194291933; Tue, 27 May 2014 05:38:11 -0700 (PDT) Received: from localhost.localdomain (188-178-240-98-static.dk.customer.tdc.net. [188.178.240.98]) by mx.google.com with ESMTPSA id ao10sm6996799lac.2.2014.05.27.05.38.10 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 27 May 2014 05:38:11 -0700 (PDT) From: Christoffer Dall To: qemu-devel@nongnu.org Date: Tue, 27 May 2014 14:37:43 +0200 Message-Id: <1401194263-13010-1-git-send-email-christoffer.dall@linaro.org> X-Mailer: git-send-email 1.8.5.2 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.85.217.173 Cc: Peter Maydell , Paolo Bonzini , Alexander Graf , Christoffer Dall , Andreas Faerber Subject: [Qemu-devel] [PATCH v3] target-arm: Fix segfault on startup when KVM enabled 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 Commit 50a2c6e55fa introduced a bug where QEMU would segfault on startup when using KVM on ARM hosts, because kvm_arm_reset_cpu() accesses cpu->cpreg_reset_values, which is not allocated before kvm_arch_init_vcpu(). Fix this by not calling cpu_reset() until after qemu_init_vcpu(). Acked-by: Paolo Bonzini Reviewed-by: Peter Maydell Reviewed-by: Andreas Faerber Signed-off-by: Christoffer Dall --- Changes since v2: - Changed subject line which I forgot in v2 Changes since v1: - Updated commit message (current version by Peter Maydell) target-arm/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target-arm/cpu.c b/target-arm/cpu.c index 6c6f2b3..794dcb9 100644 --- a/target-arm/cpu.c +++ b/target-arm/cpu.c @@ -370,8 +370,8 @@ static void arm_cpu_realizefn(DeviceState *dev, Error **errp) init_cpreg_list(cpu); - cpu_reset(cs); qemu_init_vcpu(cs); + cpu_reset(cs); acc->parent_realize(dev, errp); }