From patchwork Tue May 10 06:06:21 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Gibson X-Patchwork-Id: 94951 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [140.186.70.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 9EE62B6EEA for ; Tue, 10 May 2011 16:06:47 +1000 (EST) Received: from localhost ([::1]:52610 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QJg5k-0005y7-1T for incoming@patchwork.ozlabs.org; Tue, 10 May 2011 02:06:44 -0400 Received: from eggs.gnu.org ([140.186.70.92]:45408) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QJg5c-0005xy-DF for qemu-devel@nongnu.org; Tue, 10 May 2011 02:06:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QJg5Z-0006OB-Ul for qemu-devel@nongnu.org; Tue, 10 May 2011 02:06:36 -0400 Received: from ozlabs.org ([203.10.76.45]:36741) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QJg5Z-0006Nr-It for qemu-devel@nongnu.org; Tue, 10 May 2011 02:06:33 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id AAAC31007D5; Tue, 10 May 2011 16:06:27 +1000 (EST) From: David Gibson To: agraf@suse.de Date: Tue, 10 May 2011 16:06:21 +1000 Message-Id: <1305007581-27570-1-git-send-email-david@gibson.dropbear.id.au> X-Mailer: git-send-email 1.7.4.4 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 203.10.76.45 Cc: paulus@samba.org, qemu-devel@nongnu.org Subject: [Qemu-devel] [PATCH] Fix off-by-one error in sizing pSeries hcall table 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 The pSeries machine uses two tables to look up guest hcalls for emulation. One of these is exactly one entry too small to hold all the hcalls it needs to, leading to memory corruption. This patch fixes the bug, and while we're at it, make both tables 'static' since they're never used from other modules. Signed-off-by: David Gibson --- hw/spapr_hcall.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/spapr_hcall.c b/hw/spapr_hcall.c index f88e1d2..5281ba2 100644 --- a/hw/spapr_hcall.c +++ b/hw/spapr_hcall.c @@ -455,8 +455,8 @@ static target_ulong h_rtas(CPUState *env, sPAPREnvironment *spapr, nret, rtas_r3 + 12 + 4*nargs); } -spapr_hcall_fn papr_hypercall_table[(MAX_HCALL_OPCODE / 4) + 1]; -spapr_hcall_fn kvmppc_hypercall_table[KVMPPC_HCALL_MAX - KVMPPC_HCALL_BASE]; +static spapr_hcall_fn papr_hypercall_table[(MAX_HCALL_OPCODE / 4) + 1]; +static spapr_hcall_fn kvmppc_hypercall_table[KVMPPC_HCALL_MAX - KVMPPC_HCALL_BASE + 1]; void spapr_register_hypercall(target_ulong opcode, spapr_hcall_fn fn) {