|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 3/3] xen/riscv: introduce identity mapping
On Tue, 2023-07-18 at 17:03 +0200, Jan Beulich wrote:
> > + unsigned long load_end = LINK_TO_LOAD(_end);
> > + unsigned long pt_level_size = XEN_PT_LEVEL_SIZE(i -
> > 1);
> > + unsigned long xen_size = ROUNDUP(load_end -
> > load_start, pt_level_size);
> > + unsigned long page_entries_num = xen_size /
> > pt_level_size;
> > +
> > + while ( page_entries_num-- )
> > + pgtbl[index++].pte = 0;
> > +
> > + break;
>
> Unless there's a "not crossing a 2Mb boundary" guarantee somewhere
> that I've missed, this "break" is still too early afaict.
If I will add a '2 MB boundary check' for load_start and linker_start
could it be an upstreamable solution?
Something like:
if ( !IS_ALIGNED(load_start, MB(2) )
printk("load_start should be 2Mb algined\n");
and
ASSERT( !IS_ALIGNED(XEN_VIRT_START, MB(2) )
in xen.lds.S.
Then we will have completely different L0 tables for identity mapping
and not identity and the code above will be correct.
~ Oleksii
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |