Loading arch/powerpc/kvm/book3s_hv_builtin.c +2 −1 Original line number Diff line number Diff line Loading @@ -97,7 +97,8 @@ void __init kvm_cma_reserve(void) (unsigned long)selected_size / SZ_1M); align_size = HPT_ALIGN_PAGES << PAGE_SHIFT; cma_declare_contiguous(0, selected_size, 0, align_size, KVM_CMA_CHUNK_ORDER - PAGE_SHIFT, false, &kvm_cma); KVM_CMA_CHUNK_ORDER - PAGE_SHIFT, false, "kvm_cma", &kvm_cma); } } Loading drivers/base/dma-contiguous.c +3 −2 Original line number Diff line number Diff line Loading @@ -165,7 +165,8 @@ int __init dma_contiguous_reserve_area(phys_addr_t size, phys_addr_t base, { int ret; ret = cma_declare_contiguous(base, size, limit, 0, 0, fixed, res_cma); ret = cma_declare_contiguous(base, size, limit, 0, 0, fixed, "reserved", res_cma); if (ret) return ret; Loading Loading @@ -257,7 +258,7 @@ static int __init rmem_cma_setup(struct reserved_mem *rmem) return -EINVAL; } err = cma_init_reserved_mem(rmem->base, rmem->size, 0, &cma); err = cma_init_reserved_mem(rmem->base, rmem->size, 0, rmem->name, &cma); if (err) { pr_err("Reserved memory: unable to setup CMA region\n"); return err; Loading include/linux/cma.h +3 −1 Original line number Diff line number Diff line Loading @@ -18,13 +18,15 @@ struct cma; extern unsigned long totalcma_pages; extern phys_addr_t cma_get_base(const struct cma *cma); extern unsigned long cma_get_size(const struct cma *cma); extern const char *cma_get_name(const struct cma *cma); extern int __init cma_declare_contiguous(phys_addr_t base, phys_addr_t size, phys_addr_t limit, phys_addr_t alignment, unsigned int order_per_bit, bool fixed, struct cma **res_cma); bool fixed, const char *name, struct cma **res_cma); extern int cma_init_reserved_mem(phys_addr_t base, phys_addr_t size, unsigned int order_per_bit, const char *name, struct cma **res_cma); extern struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align); extern bool cma_release(struct cma *cma, const struct page *pages, unsigned int count); Loading mm/cma.c +15 −2 Original line number Diff line number Diff line Loading @@ -55,6 +55,11 @@ unsigned long cma_get_size(const struct cma *cma) return cma->count << PAGE_SHIFT; } const char *cma_get_name(const struct cma *cma) { return cma->name ? cma->name : "(undefined)"; } static unsigned long cma_bitmap_aligned_mask(const struct cma *cma, int align_order) { Loading Loading @@ -199,6 +204,7 @@ core_initcall(cma_init_reserved_areas); */ int __init cma_init_reserved_mem(phys_addr_t base, phys_addr_t size, unsigned int order_per_bit, const char *name, struct cma **res_cma) { struct cma *cma; Loading Loading @@ -229,6 +235,13 @@ int __init cma_init_reserved_mem(phys_addr_t base, phys_addr_t size, * subsystems (like slab allocator) are available. */ cma = &cma_areas[cma_area_count]; if (name) { cma->name = name; } else { cma->name = kasprintf(GFP_KERNEL, "cma%d\n", cma_area_count); if (!cma->name) return -ENOMEM; } cma->base_pfn = PFN_DOWN(base); cma->count = size >> PAGE_SHIFT; cma->order_per_bit = order_per_bit; Loading Loading @@ -260,7 +273,7 @@ int __init cma_init_reserved_mem(phys_addr_t base, phys_addr_t size, int __init cma_declare_contiguous(phys_addr_t base, phys_addr_t size, phys_addr_t limit, phys_addr_t alignment, unsigned int order_per_bit, bool fixed, struct cma **res_cma) bool fixed, const char *name, struct cma **res_cma) { phys_addr_t memblock_end = memblock_end_of_DRAM(); phys_addr_t highmem_start; Loading Loading @@ -371,7 +384,7 @@ int __init cma_declare_contiguous(phys_addr_t base, base = addr; } ret = cma_init_reserved_mem(base, size, order_per_bit, res_cma); ret = cma_init_reserved_mem(base, size, order_per_bit, name, res_cma); if (ret) goto err; Loading mm/cma.h +1 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ struct cma { struct hlist_head mem_head; spinlock_t mem_head_lock; #endif const char *name; }; extern struct cma cma_areas[MAX_CMA_AREAS]; Loading Loading
arch/powerpc/kvm/book3s_hv_builtin.c +2 −1 Original line number Diff line number Diff line Loading @@ -97,7 +97,8 @@ void __init kvm_cma_reserve(void) (unsigned long)selected_size / SZ_1M); align_size = HPT_ALIGN_PAGES << PAGE_SHIFT; cma_declare_contiguous(0, selected_size, 0, align_size, KVM_CMA_CHUNK_ORDER - PAGE_SHIFT, false, &kvm_cma); KVM_CMA_CHUNK_ORDER - PAGE_SHIFT, false, "kvm_cma", &kvm_cma); } } Loading
drivers/base/dma-contiguous.c +3 −2 Original line number Diff line number Diff line Loading @@ -165,7 +165,8 @@ int __init dma_contiguous_reserve_area(phys_addr_t size, phys_addr_t base, { int ret; ret = cma_declare_contiguous(base, size, limit, 0, 0, fixed, res_cma); ret = cma_declare_contiguous(base, size, limit, 0, 0, fixed, "reserved", res_cma); if (ret) return ret; Loading Loading @@ -257,7 +258,7 @@ static int __init rmem_cma_setup(struct reserved_mem *rmem) return -EINVAL; } err = cma_init_reserved_mem(rmem->base, rmem->size, 0, &cma); err = cma_init_reserved_mem(rmem->base, rmem->size, 0, rmem->name, &cma); if (err) { pr_err("Reserved memory: unable to setup CMA region\n"); return err; Loading
include/linux/cma.h +3 −1 Original line number Diff line number Diff line Loading @@ -18,13 +18,15 @@ struct cma; extern unsigned long totalcma_pages; extern phys_addr_t cma_get_base(const struct cma *cma); extern unsigned long cma_get_size(const struct cma *cma); extern const char *cma_get_name(const struct cma *cma); extern int __init cma_declare_contiguous(phys_addr_t base, phys_addr_t size, phys_addr_t limit, phys_addr_t alignment, unsigned int order_per_bit, bool fixed, struct cma **res_cma); bool fixed, const char *name, struct cma **res_cma); extern int cma_init_reserved_mem(phys_addr_t base, phys_addr_t size, unsigned int order_per_bit, const char *name, struct cma **res_cma); extern struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align); extern bool cma_release(struct cma *cma, const struct page *pages, unsigned int count); Loading
mm/cma.c +15 −2 Original line number Diff line number Diff line Loading @@ -55,6 +55,11 @@ unsigned long cma_get_size(const struct cma *cma) return cma->count << PAGE_SHIFT; } const char *cma_get_name(const struct cma *cma) { return cma->name ? cma->name : "(undefined)"; } static unsigned long cma_bitmap_aligned_mask(const struct cma *cma, int align_order) { Loading Loading @@ -199,6 +204,7 @@ core_initcall(cma_init_reserved_areas); */ int __init cma_init_reserved_mem(phys_addr_t base, phys_addr_t size, unsigned int order_per_bit, const char *name, struct cma **res_cma) { struct cma *cma; Loading Loading @@ -229,6 +235,13 @@ int __init cma_init_reserved_mem(phys_addr_t base, phys_addr_t size, * subsystems (like slab allocator) are available. */ cma = &cma_areas[cma_area_count]; if (name) { cma->name = name; } else { cma->name = kasprintf(GFP_KERNEL, "cma%d\n", cma_area_count); if (!cma->name) return -ENOMEM; } cma->base_pfn = PFN_DOWN(base); cma->count = size >> PAGE_SHIFT; cma->order_per_bit = order_per_bit; Loading Loading @@ -260,7 +273,7 @@ int __init cma_init_reserved_mem(phys_addr_t base, phys_addr_t size, int __init cma_declare_contiguous(phys_addr_t base, phys_addr_t size, phys_addr_t limit, phys_addr_t alignment, unsigned int order_per_bit, bool fixed, struct cma **res_cma) bool fixed, const char *name, struct cma **res_cma) { phys_addr_t memblock_end = memblock_end_of_DRAM(); phys_addr_t highmem_start; Loading Loading @@ -371,7 +384,7 @@ int __init cma_declare_contiguous(phys_addr_t base, base = addr; } ret = cma_init_reserved_mem(base, size, order_per_bit, res_cma); ret = cma_init_reserved_mem(base, size, order_per_bit, name, res_cma); if (ret) goto err; Loading
mm/cma.h +1 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ struct cma { struct hlist_head mem_head; spinlock_t mem_head_lock; #endif const char *name; }; extern struct cma cma_areas[MAX_CMA_AREAS]; Loading