The patch titled Subject: mm-cma-add-functions-to-get-region-pages-counters-fix has been added to the -mm tree. Its filename is mm-cma-add-functions-to-get-region-pages-counters-fix.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/mm-cma-add-functions-to-get-region-pages-counters-fix.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/mm-cma-add-functions-to-get-region-pages-counters-fix.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Subject: mm-cma-add-functions-to-get-region-pages-counters-fix move debug code from cma.c into cma_debug.c so it doesn't get included in CONFIG_CMA_DEBUGFS=n builds Cc: Dmitry Safonov <d.safonov@xxxxxxxxxxxxxxxxxxx> Cc: Michal Nazarewicz <mina86@xxxxxxxxxx> Cc: Stefan Strogin <stefan.strogin@xxxxxxxxx> Cc: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx> Cc: Pintu Kumar <pintu.k@xxxxxxxxxxx> Cc: Weijie Yang <weijie.yang@xxxxxxxxxxx> Cc: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx> Cc: Vyacheslav Tyrtov <v.tyrtov@xxxxxxxxxxx> Cc: Aleksei Mateosian <a.mateosian@xxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/cma.h | 2 -- mm/cma.c | 30 ------------------------------ mm/cma_debug.c | 31 +++++++++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 32 deletions(-) diff -puN include/linux/cma.h~mm-cma-add-functions-to-get-region-pages-counters-fix include/linux/cma.h --- a/include/linux/cma.h~mm-cma-add-functions-to-get-region-pages-counters-fix +++ a/include/linux/cma.h @@ -18,8 +18,6 @@ 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 unsigned long cma_get_used(struct cma *cma); -extern unsigned long cma_get_maxchunk(struct cma *cma); extern int __init cma_declare_contiguous(phys_addr_t base, phys_addr_t size, phys_addr_t limit, diff -puN mm/cma.c~mm-cma-add-functions-to-get-region-pages-counters-fix mm/cma.c --- a/mm/cma.c~mm-cma-add-functions-to-get-region-pages-counters-fix +++ a/mm/cma.c @@ -53,36 +53,6 @@ unsigned long cma_get_size(const struct return cma->count << PAGE_SHIFT; } -unsigned long cma_get_used(struct cma *cma) -{ - unsigned long ret = 0; - - mutex_lock(&cma->lock); - /* pages counter is smaller than sizeof(int) */ - ret = bitmap_weight(cma->bitmap, (int)cma->count); - mutex_unlock(&cma->lock); - - return ret << cma->order_per_bit; -} - -unsigned long cma_get_maxchunk(struct cma *cma) -{ - unsigned long maxchunk = 0; - unsigned long start, end = 0; - - mutex_lock(&cma->lock); - for (;;) { - start = find_next_zero_bit(cma->bitmap, cma->count, end); - if (start >= cma->count) - break; - end = find_next_bit(cma->bitmap, cma->count, start); - maxchunk = max(end - start, maxchunk); - } - mutex_unlock(&cma->lock); - - return maxchunk << cma->order_per_bit; -} - static unsigned long cma_bitmap_aligned_mask(const struct cma *cma, int align_order) { diff -puN mm/cma_debug.c~mm-cma-add-functions-to-get-region-pages-counters-fix mm/cma_debug.c --- a/mm/cma_debug.c~mm-cma-add-functions-to-get-region-pages-counters-fix +++ a/mm/cma_debug.c @@ -22,6 +22,37 @@ struct cma_mem { static struct dentry *cma_debugfs_root; +static unsigned long cma_get_used(struct cma *cma) +{ + unsigned long ret = 0; + + mutex_lock(&cma->lock); + /* pages counter is smaller than sizeof(int) */ + ret = bitmap_weight(cma->bitmap, (int)cma->count); + mutex_unlock(&cma->lock); + + return ret << cma->order_per_bit; +} + +static unsigned long cma_get_maxchunk(struct cma *cma) +{ + unsigned long maxchunk = 0; + unsigned long start, end = 0; + + mutex_lock(&cma->lock); + for (;;) { + start = find_next_zero_bit(cma->bitmap, cma->count, end); + if (start >= cma->count) + break; + end = find_next_bit(cma->bitmap, cma->count, start); + maxchunk = max(end - start, maxchunk); + } + mutex_unlock(&cma->lock); + + return maxchunk << cma->order_per_bit; +} + + static int cma_debugfs_get(void *data, u64 *val) { unsigned long *p = data; _ Patches currently in -mm which might be from akpm@xxxxxxxxxxxxxxxxxxxx are origin.patch arch-alpha-kernel-systblss-remove-debug-check.patch i-need-old-gcc.patch ocfs2-make-mlog_errno-return-the-errno.patch mm.patch mm-migrate-mark-unmap_and_move-noinline-to-avoid-ice-in-gcc-473-fix.patch mm-migrate-mark-unmap_and_move-noinline-to-avoid-ice-in-gcc-473-fix-fix-fix.patch mm-cma-release-trigger-checkpatch-fixes.patch mm-cma-allocation-trigger-fix.patch mm-compaction-enhance-compaction-finish-condition-fix.patch page_writeback-cleanup-mess-around-cancel_dirty_page-checkpatch-fixes.patch mm-hide-per-cpu-lists-in-output-of-show_mem-fix.patch mm-clarify-__gfp_nofail-deprecation-status-checkpatch-fixes.patch mm-change-vunmap-to-tear-down-huge-kva-mappings-fix.patch mm-mempool-do-not-allow-atomic-resizing-checkpatch-fixes.patch mm-memory-failurec-define-page-types-for-action_result-in-one-place.patch include-linux-page-flagsh-rename-macros-to-avoid-collisions.patch document-interaction-between-compaction-and-the-unevictable-lru-fix.patch mm-memcg-sync-allocation-and-memcg-charge-gfp-flags-for-thp-fix.patch mm-vmalloc-occupy-newly-allocated-vmap-block-just-after-allocation.patch mm-mmapc-use-while-instead-of-ifgoto-fix.patch mm-hugetlb-introduce-pagehugeactive-flag-fix.patch mm-hugetlb-cleanup-using-pagehugeactive-flag-fix.patch mm-memblock-add-debug-output-for-the-memblock_add-fix.patch mm-uninline-and-cleanup-page-mapping-related-helpers-checkpatch-fixes.patch mm-cma-add-functions-to-get-region-pages-counters-fix.patch mm-vmscan-fix-the-page-state-calculation-in-too_many_isolated.patch x86-add-pmd_-for-thp-fix.patch sparc-add-pmd_-for-thp-fix.patch mm-support-madvisemadv_free-fix-2.patch mm-move-lazy-free-pages-to-inactive-list-fix-fix.patch mm-move-lazy-free-pages-to-inactive-list-fix-fix-fix.patch zram-add-dynamic-device-add-remove-functionality-fix.patch zram-introduce-automatic-device_id-generation-fix.patch zsmalloc-support-compaction-fix.patch kernel-conditionally-support-non-root-users-groups-and-capabilities-checkpatch-fixes.patch lib-vsprintf-add-%pcnr-format-specifiers-for-clocks-fix.patch lib-find__bit-reimplementation-fix.patch checkpatch-match-more-world-writable-permissions-fix.patch binfmt_misc-simplify-entry_status-fix.patch rtc-driver-for-conexant-digicolor-cx92755-on-chip-rtc-fix.patch rtc-omap-add-external-32k-clock-feature-fix.patch fs-fat-remove-unnecessary-includes-fix.patch kernel-forkc-avoid-division-by-zero-fix.patch kernel-forkc-avoid-division-by-zero-fix-fix.patch doc-sysctl-kerneltxt-document-threads-max-fix.patch mm-rcu-protected-get_mm_exe_file-fix-2.patch affs-kstrdup-memory-handling-fix.patch kconfig-use-macros-which-are-already-defined-fix.patch linux-next.patch linux-next-rejects.patch linux-next-git-rejects.patch arch-x86-kernel-cpu-commonc-fix-warning.patch lib-kconfig-fix-up-have_arch_bitreverse-help-text.patch oprofile-reduce-mmap_sem-hold-for-mm-exe_file-fix.patch tomoyo-reduce-mmap_sem-hold-for-mm-exe_file-checkpatch-fixes.patch documentation-spi-spidev_testc-fix-warning.patch do_shared_fault-check-that-mmap_sem-is-held.patch journal_add_journal_head-debug.patch journal_add_journal_head-debug-fix.patch kernel-forkc-export-kernel_thread-to-modules.patch mutex-subsystem-synchro-test-module.patch slab-leaks3-default-y.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html