Messages in this thread |  | | Date | Mon, 27 Nov 2017 12:54:21 -0800 | From | Tejun Heo <> | Subject | Re: mm/percpu.c: use smarter memory allocation for struct pcpu_alloc_info (crisv32 hang) |
| |
Hello, Nicolas.
On Mon, Nov 27, 2017 at 03:51:04PM -0500, Nicolas Pitre wrote: > Subject: percpu: hack to let the CRIS architecture to boot until they clean up > > Commit 438a506180 ("percpu: don't forget to free the temporary struct > pcpu_alloc_info") uncovered a problem on the CRIS architecture where > the bootmem allocator is initialized with virtual addresses. Given it > has: > > #define __va(x) ((void *)((unsigned long)(x) | 0x80000000)) > > then things just work out because the end result is the same whether you > give this a physical or a virtual address. > > Untill you call memblock_free_early(__pa(address)) that is, because > values from __pa() don't match with the virtual addresses stuffed in the > bootmem allocator anymore. > > Avoid freeing the temporary pcpu_alloc_info memory on that architecture > until they fix things up to let the kernel boot like it did before. > > Signed-off-by: Nicolas Pitre <nico@linaro.org>
This totally works for me. Replaced the revert with this one.
Thanks!
-- tejun
|  |