 944770ab54
			
		
	
	
	944770ab54
	
	
	
		
			
			Tejun reported that his resume was failing due to order-3 allocations from sched_domain building. Replace the NR_CPUS arrays in there with a dynamically allocated array. Reported-by: Tejun Heo <tj@kernel.org> Signed-off-by: Peter Zijlstra <peterz@infradead.org> Acked-by: Juri Lelli <juri.lelli@gmail.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: http://lkml.kernel.org/n/tip-kat4gl1m5a6dwy6nzuqox45e@git.kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
		
			
				
	
	
		
			33 lines
		
	
	
	
		
			656 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			656 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _LINUX_CPUDL_H
 | |
| #define _LINUX_CPUDL_H
 | |
| 
 | |
| #include <linux/sched.h>
 | |
| 
 | |
| #define IDX_INVALID     -1
 | |
| 
 | |
| struct cpudl_item {
 | |
| 	u64 dl;
 | |
| 	int cpu;
 | |
| 	int idx;
 | |
| };
 | |
| 
 | |
| struct cpudl {
 | |
| 	raw_spinlock_t lock;
 | |
| 	int size;
 | |
| 	cpumask_var_t free_cpus;
 | |
| 	struct cpudl_item *elements;
 | |
| };
 | |
| 
 | |
| 
 | |
| #ifdef CONFIG_SMP
 | |
| int cpudl_find(struct cpudl *cp, struct task_struct *p,
 | |
| 	       struct cpumask *later_mask);
 | |
| void cpudl_set(struct cpudl *cp, int cpu, u64 dl, int is_valid);
 | |
| int cpudl_init(struct cpudl *cp);
 | |
| void cpudl_cleanup(struct cpudl *cp);
 | |
| #else
 | |
| #define cpudl_set(cp, cpu, dl) do { } while (0)
 | |
| #define cpudl_init() do { } while (0)
 | |
| #endif /* CONFIG_SMP */
 | |
| 
 | |
| #endif /* _LINUX_CPUDL_H */
 |