linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC] Prohibit ioremap() on kernel managed RAM
Date: Fri, 30 Apr 2010 19:19:40 +0100	[thread overview]
Message-ID: <20100430181940.GC1639@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <20100430163356.GV2619@mvista.com>

On Fri, Apr 30, 2010 at 12:33:56PM -0400, George G. Davis wrote:
> Hi,
> 
> On Fri, Apr 23, 2010 at 03:40:58PM +0100, Russell King wrote:
> > > Above change is necessary but what an alternative approach is for this. 
> > > There are many use case where ioremap* is needed.
> > 
> > This is a very difficult issue to answer; the only way we can safely
> > remap RAM with different attributes is if we disable the existing
> > mappings - but since we create those with 1MB sections, that's far
> > from easy to achieve.
> > 
> > I think a viable safe solution is to set aside some RAM at boot (which
> > the kernel doesn't manage at all) and then use ioremap on that; that
> > approach will still work with this patch in place.
> 
> So cases such as the omapfb driver which use reserve_bootmem() (in
> arch/arm/plat-omap/fb.c) and then later use ioremap_wc() to remap
> reserved memory (in drivers/video/omap2/omapfb/omapfb-main.c)
> will no longer work with this change.

Correct; and there's two reasons why they'll break in the near future.
The first is down to ioremap not wanting to allow remapping of already
existing memory.

The second is that when we switch to using LMB instead of bootmem, this
makes the use of reserve_bootmem() a problem in fb.c.

There's really one option for this - in the machine's fixup handler, you
can walk the meminfo array and kick out some memory from that.  This will
prevent the kernel mapping that memory and make pfn_valid() fail for that
memory range.  Another advantage of this is that it won't break when we
switch to LMB.

  parent reply	other threads:[~2010-04-30 18:19 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-23 14:40 [RFC] Prohibit ioremap() on kernel managed RAM Russell King
2010-04-30 16:33 ` George G. Davis
2010-04-30 16:38   ` Catalin Marinas
2010-05-01  6:24     ` Shilimkar, Santosh
2010-05-01  9:19       ` Russell King - ARM Linux
2010-05-03 15:59     ` George G. Davis
2010-05-04 15:29       ` Catalin Marinas
2010-05-05 16:23         ` George G. Davis
2010-05-05 16:30           ` Russell King - ARM Linux
2010-05-05 16:33             ` George G. Davis
2010-04-30 18:19   ` Russell King - ARM Linux [this message]
2010-04-30 22:30     ` George G. Davis
  -- strict thread matches above, loose matches on Subject: below --
2010-04-08  9:48 Russell King - ARM Linux
2010-04-23 14:15 ` Catalin Marinas
2010-04-23 14:27   ` Shilimkar, Santosh

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=20100430181940.GC1639@n2100.arm.linux.org.uk \
    --to=linux@arm.linux.org.uk \
    --cc=linux-arm-kernel@lists.infradead.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;
as well as URLs for NNTP newsgroup(s).