[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v1 1/8] xen/riscv: make sure that identity mapping isn't bigger then page size
On 06.06.2023 21:55, Oleksii Kurochko wrote: > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx> Such commits without description are worrying. This may be okay for entirely trivial and obvious changes, but that's going to be the exception. > --- a/xen/arch/riscv/xen.lds.S > +++ b/xen/arch/riscv/xen.lds.S > @@ -20,6 +20,7 @@ SECTIONS > . = XEN_VIRT_START; > _start = .; > .text : { > + _idmap_start = .; > _stext = .; /* Text section */ > *(.text.header) > > @@ -35,6 +36,7 @@ SECTIONS > *(.gnu.warning) > . = ALIGN(POINTER_ALIGN); > _etext = .; /* End of text section */ > + _idmap_end = .; > } :text So this covers all of .text. Why is it expected that .text will be (and remain) ... > @@ -174,3 +176,10 @@ ASSERT(!SIZEOF(.got), ".got non-empty") > ASSERT(!SIZEOF(.got.plt), ".got.plt non-empty") > > ASSERT(_end - _start <= MB(2), "Xen too large for early-boot assumptions") > + > +/* > + * We require that Xen is loaded at a page boundary, so this ensures that any > + * code running on the identity map cannot cross a page boundary. > + */ > +ASSERT(IS_ALIGNED(_idmap_start, PAGE_SIZE), "_idmap_start should be > page-aligned") > +ASSERT(_idmap_end - _idmap_start <= PAGE_SIZE, "Identity mapped code is > larger than a page size") ... less than 4k in size? And why is only .text of interest, but not other sections? I find the other assertion a little puzzling too: Isn't that merely checking that XEN_VIRT_START is page aligned? Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |