On 07/13/2010 01:37 PM, Bjorn Helgaas wrote: > 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." like to use end instead of end - 1. > > 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. so we add WARN_ here, could warn the possible wrong usage. YH -- 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