> > u32 s = en->start, e = end; > > if (!highram_start) { > > + if (e > BUILD_MAX_HIGHTABLE * 16) > > + highram_size = BUILD_MAX_HIGHTABLE; > > u32 newe = ALIGN_DOWN(e - highram_size, MALLOC_MIN_ALIGN); > > if (newe <= e && newe >= s) { > > highram_start = newe; > > Thanks. At a high-level, it looks fine. However, I think the above > might introduce a corner case where a fragmented e820 might fail to > find any ZoneHigh.
Looking at the size instead of the end address should fix that, i.e. if (e - s > BUILD_MAX_HIGHTABLE * 16) (no difference for qemu because there is a single e820 ram region with start=0 below 4G) take care, Gerd _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-le...@seabios.org