diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-12 10:20:12 +0900 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-12 10:20:12 +0900 | 
| commit | 39cf275a1a18ba3c7eb9b986c5c9b35b57332798 (patch) | |
| tree | 40b119ca9d2fbaf8128d3fa25f4c64669002b0c0 /kernel/softirq.c | |
| parent | ad5d69899e52792671c1aa6c7360464c7edfe09c (diff) | |
| parent | e5137b50a0640009fd63a3e65c14bc6e1be8796a (diff) | |
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler changes from Ingo Molnar:
 "The main changes in this cycle are:
   - (much) improved CONFIG_NUMA_BALANCING support from Mel Gorman, Rik
     van Riel, Peter Zijlstra et al.  Yay!
   - optimize preemption counter handling: merge the NEED_RESCHED flag
     into the preempt_count variable, by Peter Zijlstra.
   - wait.h fixes and code reorganization from Peter Zijlstra
   - cfs_bandwidth fixes from Ben Segall
   - SMP load-balancer cleanups from Peter Zijstra
   - idle balancer improvements from Jason Low
   - other fixes and cleanups"
* 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (129 commits)
  ftrace, sched: Add TRACE_FLAG_PREEMPT_RESCHED
  stop_machine: Fix race between stop_two_cpus() and stop_cpus()
  sched: Remove unnecessary iteration over sched domains to update nr_busy_cpus
  sched: Fix asymmetric scheduling for POWER7
  sched: Move completion code from core.c to completion.c
  sched: Move wait code from core.c to wait.c
  sched: Move wait.c into kernel/sched/
  sched/wait: Fix __wait_event_interruptible_lock_irq_timeout()
  sched: Avoid throttle_cfs_rq() racing with period_timer stopping
  sched: Guarantee new group-entities always have weight
  sched: Fix hrtimer_cancel()/rq->lock deadlock
  sched: Fix cfs_bandwidth misuse of hrtimer_expires_remaining
  sched: Fix race on toggling cfs_bandwidth_used
  sched: Remove extra put_online_cpus() inside sched_setaffinity()
  sched/rt: Fix task_tick_rt() comment
  sched/wait: Fix build breakage
  sched/wait: Introduce prepare_to_wait_event()
  sched/wait: Add ___wait_cond_timeout() to wait_event*_timeout() too
  sched: Remove get_online_cpus() usage
  sched: Fix race in migrate_swap_stop()
  ...
Diffstat (limited to 'kernel/softirq.c')
| -rw-r--r-- | kernel/softirq.c | 16 | 
1 files changed, 8 insertions, 8 deletions
| diff --git a/kernel/softirq.c b/kernel/softirq.c index dacd0ab51df4..b24988353458 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -99,13 +99,13 @@ static void __local_bh_disable(unsigned long ip, unsigned int cnt)  	raw_local_irq_save(flags);  	/* -	 * The preempt tracer hooks into add_preempt_count and will break +	 * The preempt tracer hooks into preempt_count_add and will break  	 * lockdep because it calls back into lockdep after SOFTIRQ_OFFSET  	 * is set and before current->softirq_enabled is cleared.  	 * We must manually increment preempt_count here and manually  	 * call the trace_preempt_off later.  	 */ -	preempt_count() += cnt; +	__preempt_count_add(cnt);  	/*  	 * Were softirqs turned off above:  	 */ @@ -119,7 +119,7 @@ static void __local_bh_disable(unsigned long ip, unsigned int cnt)  #else /* !CONFIG_TRACE_IRQFLAGS */  static inline void __local_bh_disable(unsigned long ip, unsigned int cnt)  { -	add_preempt_count(cnt); +	preempt_count_add(cnt);  	barrier();  }  #endif /* CONFIG_TRACE_IRQFLAGS */ @@ -137,7 +137,7 @@ static void __local_bh_enable(unsigned int cnt)  	if (softirq_count() == cnt)  		trace_softirqs_on(_RET_IP_); -	sub_preempt_count(cnt); +	preempt_count_sub(cnt);  }  /* @@ -168,7 +168,7 @@ static inline void _local_bh_enable_ip(unsigned long ip)  	 * Keep preemption disabled until we are done with  	 * softirq processing:   	 */ -	sub_preempt_count(SOFTIRQ_DISABLE_OFFSET - 1); +	preempt_count_sub(SOFTIRQ_DISABLE_OFFSET - 1);  	if (unlikely(!in_interrupt() && local_softirq_pending())) {  		/* @@ -178,7 +178,7 @@ static inline void _local_bh_enable_ip(unsigned long ip)  		do_softirq();  	} -	dec_preempt_count(); +	preempt_count_dec();  #ifdef CONFIG_TRACE_IRQFLAGS  	local_irq_enable();  #endif @@ -260,7 +260,7 @@ restart:  				       " exited with %08x?\n", vec_nr,  				       softirq_to_name[vec_nr], h->action,  				       prev_count, preempt_count()); -				preempt_count() = prev_count; +				preempt_count_set(prev_count);  			}  			rcu_bh_qs(cpu); @@ -378,7 +378,7 @@ void irq_exit(void)  	account_irq_exit_time(current);  	trace_hardirq_exit(); -	sub_preempt_count(HARDIRQ_OFFSET); +	preempt_count_sub(HARDIRQ_OFFSET);  	if (!in_interrupt() && local_softirq_pending())  		invoke_softirq(); | 
