From patchwork Tue Jan 24 19:32:30 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vasily Khoruzhick X-Patchwork-Id: 137646 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 6BFB5B6F67 for ; Wed, 25 Jan 2012 07:45:37 +1100 (EST) Received: from localhost ([::1]:55799 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RpmZl-0002KP-2Z for incoming@patchwork.ozlabs.org; Tue, 24 Jan 2012 15:02:41 -0500 Received: from eggs.gnu.org ([140.186.70.92]:50142) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rpm9S-00048K-HO for qemu-devel@nongnu.org; Tue, 24 Jan 2012 14:35:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Rpm9P-0004lY-QR for qemu-devel@nongnu.org; Tue, 24 Jan 2012 14:35:30 -0500 Received: from mail-bk0-f45.google.com ([209.85.214.45]:33663) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rpm9P-0004lE-LH for qemu-devel@nongnu.org; Tue, 24 Jan 2012 14:35:27 -0500 Received: by bkbzu17 with SMTP id zu17so2068318bkb.4 for ; Tue, 24 Jan 2012 11:35:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=1urWWXD5IUdW3jjzlO2ItijyBAKsXMm3UtrLGYpdeKw=; b=qhhegw0gyeLi/UgKU315WnGHusIn28+ve04r076Y/BY28kq3gdGZ+wo4QIipoG4fR0 F4/3xM3hFJhPCOC2ThofUa1VEBmbWzBVdNdebn3ygCq3pfzLowzwgnYj9j6XwxfiiN/o u/H3MabYQtDcf8n8mFkVZh2z0nd3t5a2yBEfQ= Received: by 10.204.153.208 with SMTP id l16mr3375666bkw.116.1327433724681; Tue, 24 Jan 2012 11:35:24 -0800 (PST) Received: from anarsoul-laptop.lan ([46.28.100.58]) by mx.google.com with ESMTPS id iu2sm38521606bkb.0.2012.01.24.11.35.16 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 24 Jan 2012 11:35:23 -0800 (PST) From: Vasily Khoruzhick To: Peter Maydell , Andrzej Zaborowski , "qemu-devel@nongnu.org" Date: Tue, 24 Jan 2012 22:32:30 +0300 Message-Id: <1327433550-20827-1-git-send-email-anarsoul@gmail.com> X-Mailer: git-send-email 1.7.8.4 In-Reply-To: <1327433142.17939.0.camel@anarsoul-laptop.lan> References: <1327433142.17939.0.camel@anarsoul-laptop.lan> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.214.45 Cc: Vasily Khoruzhick Subject: [Qemu-devel] [PATCH v2] pxa2xx_lcd: SRAM is valid location for the framebuffer 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 Signed-off-by: Vasily Khoruzhick --- v2: fix descptr validation hw/pxa2xx_lcd.c | 13 +++++++++---- 1 files changed, 9 insertions(+), 4 deletions(-) diff --git a/hw/pxa2xx_lcd.c b/hw/pxa2xx_lcd.c index 4e9f7b4..de0fa48 100644 --- a/hw/pxa2xx_lcd.c +++ b/hw/pxa2xx_lcd.c @@ -308,9 +308,12 @@ static void pxa2xx_descriptor_load(PXA2xxLCDState *s) } else descptr = s->dma_ch[i].descriptor; - if (!(descptr >= PXA2XX_SDRAM_BASE && descptr + - sizeof(desc) <= PXA2XX_SDRAM_BASE + ram_size)) + if (!((descptr >= PXA2XX_SDRAM_BASE && descptr + + sizeof(desc) <= PXA2XX_SDRAM_BASE + ram_size) || + (descptr >= PXA2XX_INTERNAL_BASE && descptr + + sizeof(desc) <= PXA2XX_INTERNAL_BASE + PXA2XX_INTERNAL_SIZE))) { continue; + } cpu_physical_memory_read(descptr, (void *)&desc, sizeof(desc)); s->dma_ch[i].descriptor = tswap32(desc.fdaddr); @@ -830,8 +833,10 @@ static void pxa2xx_update_display(void *opaque) continue; } fbptr = s->dma_ch[ch].source; - if (!(fbptr >= PXA2XX_SDRAM_BASE && - fbptr <= PXA2XX_SDRAM_BASE + ram_size)) { + if (!((fbptr >= PXA2XX_SDRAM_BASE && + fbptr <= PXA2XX_SDRAM_BASE + ram_size) || + (fbptr >= PXA2XX_INTERNAL_BASE && + fbptr <= PXA2XX_INTERNAL_BASE + PXA2XX_INTERNAL_SIZE))) { pxa2xx_dma_ber_set(s, ch); continue; }