From patchwork Thu Nov 10 01:19:41 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alexander Graf X-Patchwork-Id: 124768 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 EAEA41007D4 for ; Thu, 10 Nov 2011 12:07:53 +1100 (EST) Received: from localhost ([::1]:58655 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ROJ7M-0006ly-7S for incoming@patchwork.ozlabs.org; Wed, 09 Nov 2011 20:07:48 -0500 Received: from eggs.gnu.org ([140.186.70.92]:53528) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ROJ7F-0006lJ-FW for qemu-devel@nongnu.org; Wed, 09 Nov 2011 20:07:42 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ROJ7D-0000U9-Mr for qemu-devel@nongnu.org; Wed, 09 Nov 2011 20:07:41 -0500 Received: from cantor2.suse.de ([195.135.220.15]:38313 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ROJ7D-0000Tk-ID for qemu-devel@nongnu.org; Wed, 09 Nov 2011 20:07:39 -0500 Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 4B8468ADF6 for ; Thu, 10 Nov 2011 02:07:38 +0100 (CET) From: Alexander Graf To: qemu-devel@nongnu.org Date: Thu, 10 Nov 2011 02:19:41 +0100 Message-Id: <1320887981-2099-1-git-send-email-agraf@suse.de> X-Mailer: git-send-email 1.7.3.4 MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4-2.6 X-Received-From: 195.135.220.15 Subject: [Qemu-devel] [PATCH] s390x: initialize virtio dev region 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 When running the s390x virtio machine we can potentially use uninitialized memory for the virtio device backing ram. That can lead to weird breakge. So let's better initialize it to 0 properly. Reported-by: Andreas Färber Signed-off-by: Alexander Graf --- hw/s390-virtio.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/hw/s390-virtio.c b/hw/s390-virtio.c index 37945d5..d936809 100644 --- a/hw/s390-virtio.c +++ b/hw/s390-virtio.c @@ -165,6 +165,8 @@ static void s390_init(ram_addr_t my_ram_size, ram_addr_t initrd_size = 0; int shift = 0; uint8_t *storage_keys; + void *virtio_region; + target_phys_addr_t virtio_region_len; int i; /* s390x ram size detection needs a 16bit multiplier + an increment. So @@ -184,6 +186,13 @@ static void s390_init(ram_addr_t my_ram_size, memory_region_init_ram(ram, NULL, "s390.ram", my_ram_size); memory_region_add_subregion(sysmem, 0, ram); + /* clear virtio region */ + virtio_region_len = my_ram_size - ram_size; + virtio_region = cpu_physical_memory_map(ram_size, &virtio_region_len, true); + memset(virtio_region, 0, virtio_region_len); + cpu_physical_memory_unmap(virtio_region, virtio_region_len, 1, + virtio_region_len); + /* allocate storage keys */ storage_keys = g_malloc0(my_ram_size / TARGET_PAGE_SIZE);