percpu_up.c 711 B

123456789101112131415161718192021222324252627282930
  1. /*
  2. * mm/percpu_up.c - dummy percpu memory allocator implementation for UP
  3. */
  4. #include <linux/module.h>
  5. #include <linux/percpu.h>
  6. #include <linux/slab.h>
  7. void __percpu *__alloc_percpu(size_t size, size_t align)
  8. {
  9. /*
  10. * Can't easily make larger alignment work with kmalloc. WARN
  11. * on it. Larger alignment should only be used for module
  12. * percpu sections on SMP for which this path isn't used.
  13. */
  14. WARN_ON_ONCE(align > SMP_CACHE_BYTES);
  15. return (void __percpu __force *)kzalloc(size, GFP_KERNEL);
  16. }
  17. EXPORT_SYMBOL_GPL(__alloc_percpu);
  18. void free_percpu(void __percpu *p)
  19. {
  20. kfree(this_cpu_ptr(p));
  21. }
  22. EXPORT_SYMBOL_GPL(free_percpu);
  23. phys_addr_t per_cpu_ptr_to_phys(void *addr)
  24. {
  25. return __pa(addr);
  26. }