> > 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 -- [email protected]
To unsubscribe send an email to [email protected]