[lkml]   [2008]   [Jan]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 4/5] x86: add executable mapping support to ioremap
    On Jan 31, 2008 9:00 PM, Thomas Gleixner <> wrote:
    > On Thu, 31 Jan 2008, Huang, Ying wrote:
    > > This patch makes ioremap() can be used to map pages as executable,
    > > this is needed by EFI support.
    > > +extern void __iomem *__ioremap(unsigned long phys_addr, unsigned long size,
    > > + enum ioremap_mode mode,
    > > + enum ioremap_xmode xmode);
    > > +
    > Why do you want to add a new API?
    > addr = ioremap(phys_addr, len);
    > set_memory_x(addr);
    > should do what you want already. I think Arjan was not very clear in
    > his reply yesterday.

    In current implementation, change_page_attr() can be used to change
    identity map only. At least I can find __pa() are used in
    change_page_attr_addr() to get physical address. So I think
    change_page_attr() should be fixed firstly.

    > We tried to avoid the intermingling of ioremap and the page attribute
    > settings. We just kept the cached/uncached part.
    > Now thinking about it further, we should probably fully decouple the
    > mapping and the attribute change and remove the enum argument from
    > __ioremap and change the implementations of ioremap_cached and
    > ioremap_uncached to do the attribute setting after the remap.
    > That way ioremap_chached and ioremap_uncached just would become what
    > they should be: conveniance functions for the developers.

    If the memory area be ioremap() has identity map too. We need two
    set_memory_xxx(addr). That is, we need:

    addr = ioremap(phys_addr, len);
    if (phys_addr < (end_pfn_mapped >> PAGE_SHIFT))

    Maybe we can hide the fact of identity map into set_memory_xxx(), just
    specify the physical address to set_memory_xxx() too.

    Best Regards,
    Huang Ying

     \ /
      Last update: 2008-01-31 14:25    [W:0.022 / U:3.392 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site