On Tuesday, July 13, 2010 01:10:39 am Yinghai Lu wrote: > - pr_cont(" ==> [%010llx-%010llx]\n", final_start, final_end - 1); > + memblock_dbg(" ==> [%#010llx-%#010llx]\n", final_start, final_end - 1); > reserve_bootmem_generic(final_start, final_end - final_start, BOOTMEM_DEFAULT); > } > > @@ -286,9 +286,11 @@ void __init memblock_x86_reserve_range(u64 start, u64 end, char *name) > if (start == end) > return; > > - if (WARN_ONCE(start > end, "memblock_x86_reserve_range: wrong range [%#llx, %#llx]\n", start, end)) > + if (WARN_ONCE(start > end, "memblock_x86_reserve_range: wrong range [%#llx, %#llx)\n", start, end)) Can you print these ranges the same way as the others? I think "invalid range" might be closer to what you mean than "wrong range." I'm a little dubious about these "(start == end)" and "(start > end)" checks anyway. Who are the callers of these functions? If "start" and "end" are coming from an external source, e.g., some firmware interface like an e820 table, the message doesn't give enough of a clue about where the problem is. If "start" and "end" are internal things, I'd argue that the checks are just covering up Linux bugs, and it'd be better to fix those bugs and remove the checks. > return; > > + memblock_dbg(" memblock_x86_reserve_range: [%#010llx-%#010llx] %16s\n", start, end - 1, name); > + > memblock_reserve(start, end - start); > } > > @@ -297,9 +299,11 @@ void __init memblock_x86_free_range(u64 start, u64 end) > if (start == end) > return; > > - if (WARN_ONCE(start > end, "memblock_x86_free_range: wrong range [%#llx, %#llx]\n", start, end)) > + if (WARN_ONCE(start > end, "memblock_x86_free_range: wrong range [%#llx, %#llx)\n", start, end)) > return; -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html