From patchwork Wed Dec 15 00:54:00 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Guzman Lugo, Fernando" X-Patchwork-Id: 412111 X-Patchwork-Delegate: hiroshi.doyu@nokia.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id oBF0tnaP014877 for ; Wed, 15 Dec 2010 00:55:49 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760344Ab0LOAzU (ORCPT ); Tue, 14 Dec 2010 19:55:20 -0500 Received: from na3sys009aog107.obsmtp.com ([74.125.149.197]:48877 "EHLO na3sys009aog107.obsmtp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757609Ab0LOAyR (ORCPT ); Tue, 14 Dec 2010 19:54:17 -0500 Received: from source ([74.125.83.46]) by na3sys009aob107.postini.com ([74.125.148.12]) with SMTP ID DSNKTQgRufTDMQhboYHZ9GDSLpGZKtohXM5n@postini.com; Tue, 14 Dec 2010 16:54:17 PST Received: by gwj20 with SMTP id 20so867678gwj.33 for ; Tue, 14 Dec 2010 16:54:17 -0800 (PST) Received: by 10.151.42.20 with SMTP id u20mr8964324ybj.133.1292374457021; Tue, 14 Dec 2010 16:54:17 -0800 (PST) Received: from localhost.localdomain (dragon.ti.com [192.94.94.33]) by mx.google.com with ESMTPS id u3sm3598272yba.16.2010.12.14.16.54.15 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 14 Dec 2010 16:54:16 -0800 (PST) From: Fernando Guzman Lugo To: , , Cc: , , , , "Guzman Lugo, Fernando" Subject: [PATCHv7 1/4] omap: iovmm - no gap checking for fixed address Date: Tue, 14 Dec 2010 18:54:00 -0600 Message-Id: <1292374443-4055-2-git-send-email-fernando.lugo@ti.com> X-Mailer: git-send-email 1.7.0.4 In-Reply-To: <1292374443-4055-1-git-send-email-fernando.lugo@ti.com> References: <1292374443-4055-1-git-send-email-fernando.lugo@ti.com> Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter1.kernel.org [140.211.167.41]); Wed, 15 Dec 2010 00:55:49 +0000 (UTC) diff --git a/arch/arm/plat-omap/iovmm.c b/arch/arm/plat-omap/iovmm.c index 8ce0de2..34f0012 100644 --- a/arch/arm/plat-omap/iovmm.c +++ b/arch/arm/plat-omap/iovmm.c @@ -289,10 +289,10 @@ static struct iovm_struct *alloc_iovm_area(struct iommu *obj, u32 da, prev_end = 0; list_for_each_entry(tmp, &obj->mmap, list) { - if (prev_end >= start) + if (prev_end > start) break; - if (start + bytes < tmp->da_start) + if (start + bytes <= tmp->da_start) goto found; if (flags & IOVMF_DA_ANON) @@ -301,7 +301,7 @@ static struct iovm_struct *alloc_iovm_area(struct iommu *obj, u32 da, prev_end = tmp->da_end; } - if ((start > prev_end) && (ULONG_MAX - start >= bytes)) + if ((start >= prev_end) && (ULONG_MAX - start + 1 >= bytes)) goto found; dev_dbg(obj->dev, "%s: no space to fit %08x(%x) flags: %08x\n",