[IA64] contig.c: 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. Singed-off-by: (sic) Zhang Yanmin <yanmin.zhang@intel.com> Signed-off-by: Yao Jun <junx.yao@intel.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
Showing
Please register or sign in to comment