Messages in this thread | | | Date | Tue, 9 Dec 2014 08:50:32 +0000 | From | Russell King <> | Subject | Re: [regression] Boot crash with: f7426b983a6a ("mm: cma: adjust address limit to avoid hitting low/high memory boundary") |
| |
On Tue, Dec 09, 2014 at 04:55:42PM +0900, Joonsoo Kim wrote: > Could you manage this fix for above boot regression in x86? > Patch itself is so dirty, because __pa_nodebug() is implemented only > in x86. If someone knows better idea, please let me know.
> +#ifdef CONFIG_X86 > + /* > + * high_memory isn't direct mapped memory so retrieving it's > + * physical address isn't appropriate. But, it would be useful > + * to check physical address of highmem boundary so it's > + * justfiable to get physical address from it. In x86, there is > + * a validation check for this case, so following workaround is > + * needed to avoid it. > + */ > + highmem_start = __pa_nodebug(high_memory); > +#else > + highmem_start = __pa(high_memory); > +#endif
What about:
highmem_start = __pa(high_memory - 1) + 1;
As "high_memory - 1" should be a valid lowmem address.
-- Russell King ARM architecture Linux Kernel maintainer
| |