Use kmalloc and percpu pointers, it's not that onerous.
Oh, and you can access vmalloc space by switching cr3 temporarily to
init_mm's, no? Obviously not a very performant solution, at least
without PCIDs, but can be used if needed.
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
--