Re: [PATCH v4] x86, kaslr: Access the correct kaslr_enabled variable

From: Baoquan He
Date: Mon Mar 16 2015 - 01:21:47 EST


On 03/15/15 at 10:04pm, Yinghai Lu wrote:
> On Sun, Mar 15, 2015 at 8:28 PM, Baoquan He <bhe@xxxxxxxxxx> wrote:
> > On 03/15/15 at 12:49am, Yinghai Lu wrote:
> >
> > It's good to check the ret value as Boris suggested. However it could
> > fail since early_memremap self fail, e.g slot not found. In this case
> > making kaslr_enabled true may not be good.
>
> It should not fail. we always follow map/access/unmap. and sometime
> would have two for copying between them.

Well, then I would say if add checking too in other places for
setup_data handling, e.g parse_setup_data you mentioned. Or don't check
at all place to make them consistent.

>
> >
> > As Minfei talked with you kaslr_setup_data is a global variable inside
> > kernel code, it has been ident mapped. Just derefencing the physical
> > address which is virtual address too and getting the real stored value
> > may be safer.
>
> No.
> That ident mapping is set in arch/x86/kernel/head_64.S and it
> is only for switchover. and it is gone when
> arch/x86/kernel/head64.c::x86_64_start_kernel/reset_early_page_tables
> is called.
>
> That reset_early_page_tables will only keep kernel high mapping
> and clear all other.

Ah, yes. You are right. I didn't get this clearly, Thanks for telling.

Thanks
Baoquan

>
> Thanks
>
> Yinghai
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/