percpu: use %*pb[l] to print bitmaps including cpumasks and nodemasks
printk and friends can now format 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. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Christoph Lameter <cl@linux-foundation.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
					parent
					
						
							
								ffda22c1f3
							
						
					
				
			
			
				commit
				
					
						807de073bb
					
				
			
		
					 1 changed files with 2 additions and 4 deletions
				
			
		| 
						 | 
					@ -1528,7 +1528,6 @@ static void pcpu_dump_alloc_info(const char *lvl,
 | 
				
			||||||
int __init pcpu_setup_first_chunk(const struct pcpu_alloc_info *ai,
 | 
					int __init pcpu_setup_first_chunk(const struct pcpu_alloc_info *ai,
 | 
				
			||||||
				  void *base_addr)
 | 
									  void *base_addr)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	static char cpus_buf[4096] __initdata;
 | 
					 | 
				
			||||||
	static int smap[PERCPU_DYNAMIC_EARLY_SLOTS] __initdata;
 | 
						static int smap[PERCPU_DYNAMIC_EARLY_SLOTS] __initdata;
 | 
				
			||||||
	static int dmap[PERCPU_DYNAMIC_EARLY_SLOTS] __initdata;
 | 
						static int dmap[PERCPU_DYNAMIC_EARLY_SLOTS] __initdata;
 | 
				
			||||||
	size_t dyn_size = ai->dyn_size;
 | 
						size_t dyn_size = ai->dyn_size;
 | 
				
			||||||
| 
						 | 
					@ -1541,12 +1540,11 @@ int __init pcpu_setup_first_chunk(const struct pcpu_alloc_info *ai,
 | 
				
			||||||
	int *unit_map;
 | 
						int *unit_map;
 | 
				
			||||||
	int group, unit, i;
 | 
						int group, unit, i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	cpumask_scnprintf(cpus_buf, sizeof(cpus_buf), cpu_possible_mask);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define PCPU_SETUP_BUG_ON(cond)	do {					\
 | 
					#define PCPU_SETUP_BUG_ON(cond)	do {					\
 | 
				
			||||||
	if (unlikely(cond)) {						\
 | 
						if (unlikely(cond)) {						\
 | 
				
			||||||
		pr_emerg("PERCPU: failed to initialize, %s", #cond);	\
 | 
							pr_emerg("PERCPU: failed to initialize, %s", #cond);	\
 | 
				
			||||||
		pr_emerg("PERCPU: cpu_possible_mask=%s\n", cpus_buf);	\
 | 
							pr_emerg("PERCPU: cpu_possible_mask=%*pb\n",		\
 | 
				
			||||||
 | 
								 cpumask_pr_args(cpu_possible_mask));		\
 | 
				
			||||||
		pcpu_dump_alloc_info(KERN_EMERG, ai);			\
 | 
							pcpu_dump_alloc_info(KERN_EMERG, ai);			\
 | 
				
			||||||
		BUG();							\
 | 
							BUG();							\
 | 
				
			||||||
	}								\
 | 
						}								\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue