Yu, Fenghua wrote:
+ unsigned long long ret; + + if (total_size >= GBYTES(4) && total_size < GBYTES(12)) + ret = MBYTES(256); + else if (total_size >= GBYTES(12) && total_size < GBYTES(128)) + ret = MBYTES(512); + else if (total_size >= GBYTES(128) && total_size < GBYTES(256)) + ret = MBYTES(768); + else if (total_size >= GBYTES(256) && total_size < GBYTES(378)) + ret = MBYTES(1024); + else if (total_size >= GBYTES(318) && total_size < GBYTES(512)) + ret = MBYTES(1536); + else if (total_size >= GBYTES(512) && total_size < GBYTES(768)) + ret = MBYTES(2048); + else + ret = MBYTES(3072); + if (!ia64_platform_is("sn2") && !ia64_platform_is("uv")) + if (ret > GBYTES(4)) + ret = ret / GBYTES(4) * MBYTES(256);This code doesn't make sense to me. What you really want is followingcode, right?+ if (total_size > GBYTES(4)) + ret = total_size / GBYTES(4) * MBYTEST(256)Nope. Check check_crashkernel_memory().This statement will be ALWAYS false: + if (ret > GBYTES(4)) since ret's max value is 3GB after the above total_size checks. So the code doesn't make sense. Did I miss something?
Oops, in fact it was supposed to be: if (ret + base > GBYTES(4)) //blah blahHmm, but is it possible for ia64 to choose a base address above 1G? If no, that code can be removed.
Thanks! -- To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |