From patchwork Fri Nov 13 22:26:27 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Weil X-Patchwork-Id: 38394 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 1BB5BB7063 for ; Sat, 14 Nov 2009 09:27:11 +1100 (EST) Received: from localhost ([127.0.0.1]:57267 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N94bj-0004tY-NY for incoming@patchwork.ozlabs.org; Fri, 13 Nov 2009 17:27:07 -0500 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1N94bG-0004qR-MX for qemu-devel@nongnu.org; Fri, 13 Nov 2009 17:26:38 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1N94bC-0004kP-6y for qemu-devel@nongnu.org; Fri, 13 Nov 2009 17:26:38 -0500 Received: from [199.232.76.173] (port=48030 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N94bC-0004k3-1H for qemu-devel@nongnu.org; Fri, 13 Nov 2009 17:26:34 -0500 Received: from moutng.kundenserver.de ([212.227.126.186]:54925) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1N94bB-00028H-6L for qemu-devel@nongnu.org; Fri, 13 Nov 2009 17:26:33 -0500 Received: from flocke.weilnetz.de (p54ADF2BC.dip.t-dialin.net [84.173.242.188]) by mrelayeu.kundenserver.de (node=mreu0) with ESMTP (Nemesis) id 0Ltj6n-1M7vSz2vfZ-010rZG; Fri, 13 Nov 2009 23:26:29 +0100 Received: from stefan by flocke.weilnetz.de with local (Exim 4.69) (envelope-from ) id 1N94b5-0002bo-PA; Fri, 13 Nov 2009 23:26:27 +0100 From: Stefan Weil To: qemu-devel@nongnu.org Date: Fri, 13 Nov 2009 23:26:27 +0100 Message-Id: <1258151187-10003-1-git-send-email-weil@mail.berlios.de> X-Mailer: git-send-email 1.5.6.5 X-Provags-ID: V01U2FsdGVkX18Xe+LIgqe/H+BqZT0kfvNlWiCkjwUL4pB1ZAD kAk7v46CkNa1Ferv28L3fxHuwsSYXTgYhegEGT6Q0sKk495QjK +wCxbkqSxPaVOZfHNkRgG41nvB2ikFsmt25AyJEbf+WYeHWZ7p vvg== X-detected-operating-system: by monty-python.gnu.org: Genre and OS details not recognized. Cc: Subject: [Qemu-devel] [PATCH] pci: Fix function pci_default_write_config X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Change 260c0cd3d985e51b15870ff47e17b7b930efbda1 (pci: use range helper functions) introduced a bug which made pci cirrus vga on mips malta (and maybe other pci devices) fail. Don't change addr - its original value is needed by ranges_overlap() and range_covers(). Signed-off-by: Stefan Weil Acked-by: Ryan Harper --- hw/pci.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/pci.c b/hw/pci.c index a326930..6864339 100644 --- a/hw/pci.c +++ b/hw/pci.c @@ -856,9 +856,9 @@ void pci_default_write_config(PCIDevice *d, uint32_t addr, uint32_t val, int l) int i; uint32_t config_size = pci_config_size(d); - for(i = 0; i < l && addr < config_size; val >>= 8, ++i, ++addr) { - uint8_t wmask = d->wmask[addr]; - d->config[addr] = (d->config[addr] & ~wmask) | (val & wmask); + for (i = 0; i < l && addr + i < config_size; val >>= 8, ++i) { + uint8_t wmask = d->wmask[addr + i]; + d->config[addr + i] = (d->config[addr + i] & ~wmask) | (val & wmask); } if (ranges_overlap(addr, l, PCI_BASE_ADDRESS_0, 24) || ranges_overlap(addr, l, PCI_ROM_ADDRESS, 4) ||