The patch titled Subject: powerpc: use %*pb[l] to print bitmaps including cpumasks and nodemasks has been added to the -mm tree. Its filename is powerpc-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/powerpc-use-%25pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/powerpc-use-%25pb-to-print-bitmaps-including-cpumasks-and-nodemasks.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: Tejun Heo <tj@xxxxxxxxxx> Subject: powerpc: use %*pb[l] to print bitmaps including cpumasks and nodemasks printk and friends can now formap bitmaps using '%*pb[l]'. cpumask and nodemask also provide cpumask_pr_args() and nodemask_pr_args() respectively which can be used to generate the two printf arguments necessary to format the specified cpu/nodemask. * Spurious if (len > 1) test dropped from shared_cpu_map_show(). This patch is dependent on the following two patches. lib/vsprintf: implement bitmap printing through '%*pb[l]' cpumask, nodemask: implement cpumask/nodemask_pr_args() Signed-off-by: Tejun Heo <tj@xxxxxxxxxx> Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- arch/powerpc/kernel/cacheinfo.c | 15 ++++++--------- arch/powerpc/sysdev/xics/ics-opal.c | 6 ++---- arch/powerpc/sysdev/xics/ics-rtas.c | 7 ++----- 3 files changed, 10 insertions(+), 18 deletions(-) diff -puN arch/powerpc/kernel/cacheinfo.c~powerpc-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks arch/powerpc/kernel/cacheinfo.c --- a/arch/powerpc/kernel/cacheinfo.c~powerpc-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks +++ a/arch/powerpc/kernel/cacheinfo.c @@ -607,19 +607,16 @@ static ssize_t shared_cpu_map_show(struc { struct cache_index_dir *index; struct cache *cache; - int len; - int n = 0; + int ret; index = kobj_to_cache_index_dir(k); cache = index->cache; - len = PAGE_SIZE - 2; - if (len > 1) { - n = cpumask_scnprintf(buf, len, &cache->shared_cpu_map); - buf[n++] = '\n'; - buf[n] = '\0'; - } - return n; + ret = scnprintf(buf, PAGE_SIZE - 1, "%*pb\n", + cpumask_pr_args(&cache->shared_cpu_map)); + buf[ret++] = '\n'; + buf[ret] = '\0'; + return ret; } static struct kobj_attribute cache_shared_cpu_map_attr = diff -puN arch/powerpc/sysdev/xics/ics-opal.c~powerpc-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks arch/powerpc/sysdev/xics/ics-opal.c --- a/arch/powerpc/sysdev/xics/ics-opal.c~powerpc-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks +++ a/arch/powerpc/sysdev/xics/ics-opal.c @@ -131,10 +131,8 @@ static int ics_opal_set_affinity(struct wanted_server = xics_get_irq_server(d->irq, cpumask, 1); if (wanted_server < 0) { - char cpulist[128]; - cpumask_scnprintf(cpulist, sizeof(cpulist), cpumask); - pr_warning("%s: No online cpus in the mask %s for irq %d\n", - __func__, cpulist, d->irq); + pr_warning("%s: No online cpus in the mask %*pb for irq %d\n", + __func__, cpumask_pr_args(cpumask), d->irq); return -1; } server = ics_opal_mangle_server(wanted_server); diff -puN arch/powerpc/sysdev/xics/ics-rtas.c~powerpc-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks arch/powerpc/sysdev/xics/ics-rtas.c --- a/arch/powerpc/sysdev/xics/ics-rtas.c~powerpc-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks +++ a/arch/powerpc/sysdev/xics/ics-rtas.c @@ -140,11 +140,8 @@ static int ics_rtas_set_affinity(struct irq_server = xics_get_irq_server(d->irq, cpumask, 1); if (irq_server == -1) { - char cpulist[128]; - cpumask_scnprintf(cpulist, sizeof(cpulist), cpumask); - printk(KERN_WARNING - "%s: No online cpus in the mask %s for irq %d\n", - __func__, cpulist, d->irq); + pr_warning("%s: No online cpus in the mask %*pb for irq %d\n", + __func__, cpumask_pr_args(cpumask), d->irq); return -1; } _ Patches currently in -mm which might be from tj@xxxxxxxxxx are block-restore-proc-partitions-to-not-display-non-partitionable-removable-devices.patch list_lru-introduce-list_lru_shrink_countwalk.patch fs-consolidate-nrfree_cached_objects-args-in-shrink_control.patch vmscan-per-memory-cgroup-slab-shrinkers.patch memcg-rename-some-cache-id-related-variables.patch memcg-add-rwsem-to-synchronize-against-memcg_caches-arrays-relocation.patch list_lru-get-rid-of-active_nodes.patch list_lru-organize-all-list_lrus-to-list.patch list_lru-introduce-per-memcg-lists.patch fs-make-shrinker-memcg-aware.patch vmscan-force-scan-offline-memory-cgroups.patch vmscan-force-scan-offline-memory-cgroups-fix.patch oom-add-helpers-for-setting-and-clearing-tif_memdie.patch oom-thaw-the-oom-victim-if-it-is-frozen.patch pm-convert-printk-to-pr_-equivalent.patch sysrq-convert-printk-to-pr_-equivalent.patch oom-pm-make-oom-detection-in-the-freezer-path-raceless.patch slab-embed-memcg_cache_params-to-kmem_cache.patch slab-link-memcg-caches-of-the-same-kind-into-a-list.patch cgroup-release-css-id-after-css_free.patch slab-use-css-id-for-naming-per-memcg-caches.patch memcg-free-memcg_caches-slot-on-css-offline.patch list_lru-add-helpers-to-isolate-items.patch memcg-reparent-list_lrus-and-free-kmemcg_id-on-css-offline.patch fs-mpagec-forgotten-write_sync-in-case-of-data-integrity-write.patch mm-util-add-kstrdup_const.patch kernfs-convert-node-name-allocation-to-kstrdup_const.patch kernfs-remove-kernfs_static_name.patch clk-convert-clock-name-allocations-to-kstrdup_const.patch mm-slab-convert-cache-name-allocations-to-kstrdup_const.patch mm-slab-convert-cache-name-allocations-to-kstrdup_const-fix.patch fs-namespace-convert-devname-allocation-to-kstrdup_const.patch cpumask-always-use-nr_cpu_ids-in-formatting-and-parsing-functions.patch lib-vsprintf-implement-bitmap-printing-through-%pb.patch cpumask-nodemask-implement-cpumask-nodemask_pr_args.patch bitmap-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch mips-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch powerpc-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch tile-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch x86-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch ia64-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch xtensa-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch arm-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch cpuset-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch rcu-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch sched-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch time-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch percpu-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch workqueue-use-%pb-to-format-bitmaps-including-cpumasks-and-nodemasks.patch tracing-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch net-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch wireless-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch input-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch scsi-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch usb-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch drivers-base-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch slub-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch mm-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch padata-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch proc-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch irq-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch profile-use-%pb-to-print-bitmaps-including-cpumasks-and-nodemasks.patch bitmap-cpumask-nodemask-remove-dedicated-formatting-functions.patch linux-next.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