lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <851fc09e0801310522s2d690c3ejef661e5ce6847f73@mail.gmail.com>
Date:	Thu, 31 Jan 2008 21:22:20 +0800
From:	"huang ying" <huang.ying.caritas@...il.com>
To:	"Thomas Gleixner" <tglx@...utronix.de>
Cc:	"Huang, Ying" <ying.huang@...el.com>,
	"Ingo Molnar" <mingo@...hat.com>, "H. Peter Anvin" <hpa@...or.com>,
	"Andi Kleen" <ak@...e.de>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 4/5] x86: add executable mapping support to ioremap

On Jan 31, 2008 9:00 PM, Thomas Gleixner <tglx@...utronix.de> 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);
set_memory_x(addr);
if (phys_addr < (end_pfn_mapped >> PAGE_SHIFT))
        set_memory_x(__va(phys_addr));

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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ