Fork us on GitHub Follow us on Facebook Follow us on Twitter

Opened 11 years ago

Closed 11 years ago

#240 closed defect (fixed)

Zone bound computation in init_e820_memory() is incorrect

Reported by: Jiri Svoboda Owned by:
Priority: major Milestone: 0.4.3
Component: helenos/kernel/ia32 Version: mainline
Keywords: Cc:
Blocker for: Depends on:
See also:

Description

On ia32:

pfn = ADDR2PFN(ALIGN_UP(base, FRAME_SIZE));
count = SIZE2FRAMES(ALIGN_DOWN(size, FRAME_SIZE));

The base is aligned upwards and the size is aligned downwards. In reality it is the end address which should be aligned downwards. This can cause the zone to be larger than the actual memory area.

Need to check if other arches have a similar problem.

Change History (2)

comment:1 Changed 11 years ago by Jiri Svoboda

Amd64 frame.c links to ia32 frame.c. ia64 seems to do it properly. arm32 and mips32 don't use firmware/bootloader-provided memory maps. Ppc32 has the same problem in frame_arch_init() (copy and paste?). Sun4u and sun4v seem to have the same problem.

comment:2 Changed 11 years ago by Martin Decky

Resolution: fixed
Status: newclosed

Fixed in chageset:mainline,556

Note: See TracTickets for help on using tickets.