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
comment:2 Changed 11 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Fixed in chageset:mainline,556
Note: See
TracTickets for help on using
tickets.
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.