Subject: Re: [PATCH 1/4] [tip:x86/mm] Correcting improper large page preservation

From: Ingo Molnar <[email-masked]>
Date: Thu, 6 May 2010 08:19:30 +0200

* Siarhei Liakh <[email-masked]> wrote:

> On Tue, Apr 6, 2010 at 10:51 AM, Siarhei Liakh <[email-masked]> wrote:
> > On Sat, Apr 3, 2010 at 2:43 AM, Suresh Siddha <[email-masked]> wrote:
> >> On Wed, 2010-03-31 at 18:59 -0700, Siarhei Liakh wrote:
> >>> + ? ? /*
> >>> + ? ? ?* .data and .bss should always be writable.
> >>> + ? ? ?*/
> >>> + ? ? if ((within(pfn, __pa((unsigned long)_sdata) >> PAGE_SHIFT,
> >>> + ? ? ? ? ? ? ? ?__pa((unsigned long)_edata) >> PAGE_SHIFT)) ||
> >>> + ? ? ? ? (within(pfn, __pa((unsigned long)__bss_start) >> PAGE_SHIFT,
> >>> + ? ? ? ? ? ? ? ?__pa((unsigned long)__bss_stop) >> PAGE_SHIFT))) {
> >>> + ? ? ? ? ? ? pgprot_val(required) |= _PAGE_RW;
> >>> + ? ? }
> >>
> >> I have reviewed this patch and the only comment I have is:
> >>
> >> On 64bit kernels, kernel text/data mapping and kernel identity mappings
> >> are different virtual addresses mapping to same pfn ranges. For the
> >> data/bss pages, does it help (in identifying certain data corruptions
> >> more easily) in making the kernel identity mapping to be set to
> >> read-only and enforce the need of RW only for the kernel data mappings.
> >>
> >> Or is there some obscure code that uses something like
> >> __va(__pa(data_symbol)) and writes to it?
> >>
> >> If not, we can remove the __pa() constructs above and use the addr for
> >> comparisons.
> >
> > Done.
> > Patch V2 have been posted.
> 
> Does anyone have any feedback on the whole kernel RO/NX patch set? Or should 
> I re-post all 4 patches one more time?
> 
> Thank you.

Please do - i havent seen any other review feedback.

Thanks,

	Ingo