Bug in function find_bootmap_location in kernel 2.6.8

From: Zhang, Yanmin <yanmin.zhang_at_intel.com>
Date: 2004-08-18 11:42:49
Function find_bootmap_location has 2 bugs.

Firstly, if it's done successfully, it should return -1 instead of 1
because its caller, efi_memmap_walk, will end when find_bootmap_location
returns a value smaller than 0.

Secondly, statement 'free_start = PAGE_ALIGN(rsvd_region[i].end)' should
been moved forward. free_start needs to be initialized for every loop
iteration.  Current implementation is buggy where initialization is
skipped if range_end <= range_start.  Skipping initializing will leads
to overlapping bootmap with one of the rsvd_regions and subsequently
kernel hang at boot time.

Here is the patch to fix them against kernel 2.6.8.

Singed-off-by:	Zhang Yanmin <yanmin.zhang@intel.com>
Signed-off-by:	Yao Jun		<junx.yao@intel.com>


To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Received on Tue Aug 17 21:44:13 2004

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:29 EST