From: "Guzman Lugo, Fernando" <fernando.lugo@ti.com>
To: David Cohen <david.cohen@nokia.com>
Cc: "Doyu Hiroshi (Nokia-MS/Espoo)" <hiroshi.doyu@nokia.com>,
"Contreras Felipe (Nokia-MS/Helsinki)"
<felipe.contreras@nokia.com>,
"Palande Ameya (Nokia-MS/Helsinki)" <ameya.palande@nokia.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"andy.shevchenko@gmail.com" <andy.shevchenko@gmail.com>,
"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>
Subject: RE: [PATCH 2/4] iovmm: fix roundup for next area and end check for the last area
Date: Fri, 1 Oct 2010 11:10:30 -0500 [thread overview]
Message-ID: <496565EC904933469F292DDA3F1663E602F46544F9@dlee06.ent.ti.com> (raw)
In-Reply-To: <20101001105711.GA11617@esdhcp036161.research.nokia.com>
> -----Original Message-----
> From: David Cohen [mailto:david.cohen@nokia.com]
> Sent: Friday, October 01, 2010 5:57 AM
> To: Guzman Lugo, Fernando
> Cc: Doyu Hiroshi (Nokia-MS/Espoo); Contreras Felipe
> (Nokia-MS/Helsinki); Palande Ameya (Nokia-MS/Helsinki);
> linux-kernel@vger.kernel.org; andy.shevchenko@gmail.com;
> linux-omap@vger.kernel.org
> Subject: Re: [PATCH 2/4] iovmm: fix roundup for next area and
> end check for the last area
>
> Hi,
>
> On Fri, Oct 01, 2010 at 05:08:53AM +0200, ext Fernando Guzman
> Lugo wrote:
> > As da_end does not belongs to the area the roundup should
> be done to
> > da_end and not to da_end + 1.
> > Also the end check for the last area should be ULONG_MAX -
> start + 1
> > >= bytes.
> >
> > Signed-off-by: Fernando Guzman Lugo <x0095840@ti.com>
> > ---
> > arch/arm/plat-omap/iovmm.c | 6 +++---
> > 1 files changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/arch/arm/plat-omap/iovmm.c
> b/arch/arm/plat-omap/iovmm.c
> > index 24ca9c4..fc6b109 100644
> > --- a/arch/arm/plat-omap/iovmm.c
> > +++ b/arch/arm/plat-omap/iovmm.c
> > @@ -289,19 +289,19 @@ 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)
> > goto found;
> >
> > if (flags & IOVMF_DA_ANON)
> > - start = roundup(tmp->da_end + 1, alignement);
> > + start = roundup(tmp->da_end, alignement);
>
> There's a lack of comment here, but the purpose of
> tmp->da_end + 1 is to create a gap between iovm areas to
> force to trigger iommu faults when some access exceeds a
> valid area. Without this gap, such situation may produce data
> corruption which is much more difficult to track.
That only works when you are accessing sequencially beyond the
End of the vm_area. However if you are accessing a random address
Which is in the mmu tables you still can corrupt memory which does
Not belong to you. That looks not very effective then why waste
Memory?
Maybe other mechanism should be implemente like in the process
Switching when if the process has DMM virtual memory area and if
So enablig only that area (all other process areas will be
Dissabled and it would get a mmufault in case of access). However
That increase the time of switching between process.
Regards,
Fernando.
>
> Br,
>
> David
>
> >
> > 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",
> > --
> > 1.6.3.3
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe
> > linux-kernel" in the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at http://www.tux.org/lkml/
>
next prev parent reply other threads:[~2010-10-01 16:10 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-01 3:08 [PATCH 0/4] iovmm: fixes for iovmm module Fernando Guzman Lugo
2010-10-01 3:08 ` [PATCH 1/4] iommu: remove CONFIG_MPU_BRIDGE_IOMMU Fernando Guzman Lugo
2010-10-01 3:08 ` [PATCH 2/4] iovmm: fix roundup for next area and end check for the last area Fernando Guzman Lugo
2010-10-01 3:08 ` [PATCH 3/4] iovmm: add superpages support to fixed da address Fernando Guzman Lugo
2010-10-01 3:08 ` [PATCH 4/4] iovmm: replace __iounmap with omap_iounmap Fernando Guzman Lugo
2010-10-01 10:57 ` [PATCH 2/4] iovmm: fix roundup for next area and end check for the last area David Cohen
2010-10-01 16:10 ` Guzman Lugo, Fernando [this message]
2010-10-01 17:53 ` David Cohen
2010-10-01 19:21 ` Guzman Lugo, Fernando
2010-10-02 7:49 ` David Cohen
2010-10-04 3:17 ` Guzman Lugo, Fernando
2010-10-04 12:11 ` David Cohen
2010-10-04 15:37 ` Guzman Lugo, Fernando
2010-10-04 15:35 ` David Cohen
2010-10-01 9:32 ` [PATCH 1/4] iommu: remove CONFIG_MPU_BRIDGE_IOMMU Marathe, Yogesh
2010-10-01 15:52 ` Guzman Lugo, Fernando
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=496565EC904933469F292DDA3F1663E602F46544F9@dlee06.ent.ti.com \
--to=fernando.lugo@ti.com \
--cc=ameya.palande@nokia.com \
--cc=andy.shevchenko@gmail.com \
--cc=david.cohen@nokia.com \
--cc=felipe.contreras@nokia.com \
--cc=hiroshi.doyu@nokia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®