Re: mtd: kernel BUG at arch/x86/mm/pat.c:279!
From: "H. Peter Anvin" <hpa@zytor.com>
Date: 2012-09-09 17:01:49
Also in:
lkml
On 09/09/2012 08:31 AM, Linus Torvalds wrote:
On Sun, Sep 9, 2012 at 7:56 AM, Suresh Siddha [off-list ref] wrote:quoted
yes but that is not a valid range I think because of the supported physical address bit limits of the processor and also the max architecture limit of 52 address bits.But how could the caller possibly know that? None of those internal PAT limits are exposed anywhere. So doing the BUG_ON() is wrong. I'd suggest changing it to an EINVAL. In fact, BUG_ON() is *always* wrong, unless it's a "my internal data structures are so messed up that I cannot continue".
I suspect the right answer is doing something like: u64 max_phys = 1ULL << boot_cpu_data.x86_phys_bits; if (start >= max_phys || end > max_phys || start >= end) return -EINVAL; ... although max_phys perhaps should be precalculated and stored in struct cpuinfo_x86 instead of being generated de novo. -hpa -- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>