]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 19 Dec 2014 21:29:20 +0000 (13:29 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 19 Dec 2014 21:29:20 +0000 (13:29 -0800)
Pull NOHZ update from Thomas Gleixner:
 "Remove the call into the nohz idle code from the fake 'idle' thread in
  the powerclamp driver along with the export of those functions which
  was smuggeled in via the thermal tree.  People have tried to hack
  around it in the nohz core code, but it just violates all rightful
  assumptions of that code about the only valid calling context (i.e.
  the proper idle task).

  The powerclamp trainwreck will still work, it just wont get the
  benefit of long idle sleeps"

* 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  tick/powerclamp: Remove tick_nohz_idle abuse

1  2 
drivers/thermal/intel_powerclamp.c
kernel/time/tick-sched.c

index b46c706e1cacf1027657fda668dfdd4057f6319e,6cb78497076aaa63980ec8e80908c085d61dee25..e98b4249187c3eaec106fc3602fe520fa710c95d
@@@ -435,7 -435,6 +435,6 @@@ static int clamp_thread(void *arg
                 * allowed. thus jiffies are updated properly.
                 */
                preempt_disable();
-               tick_nohz_idle_enter();
                /* mwait until target jiffies is reached */
                while (time_before(jiffies, target_jiffies)) {
                        unsigned long ecx = 1;
                        start_critical_timings();
                        atomic_inc(&idle_wakeup_counter);
                }
-               tick_nohz_idle_exit();
                preempt_enable();
        }
        del_timer_sync(&wakeup_timer);
@@@ -689,7 -687,6 +687,7 @@@ static const struct x86_cpu_id intel_po
        { X86_VENDOR_INTEL, 6, 0x3f},
        { X86_VENDOR_INTEL, 6, 0x45},
        { X86_VENDOR_INTEL, 6, 0x46},
 +      { X86_VENDOR_INTEL, 6, 0x4c},
        {}
  };
  MODULE_DEVICE_TABLE(x86cpu, intel_powerclamp_ids);
diff --combined kernel/time/tick-sched.c
index 4d54b7540585a83c41a2dc0da34b1f9e7e9077d7,ff3ec34702e8d61d7d0f2ed044536a26de3e92ad..1363d58f07e976475ffc583dbf16c81c120b1a16
@@@ -235,7 -235,7 +235,7 @@@ void tick_nohz_full_kick(void
        if (!tick_nohz_full_cpu(smp_processor_id()))
                return;
  
 -      irq_work_queue(&__get_cpu_var(nohz_full_kick_work));
 +      irq_work_queue(this_cpu_ptr(&nohz_full_kick_work));
  }
  
  /*
@@@ -847,7 -847,6 +847,6 @@@ void tick_nohz_idle_enter(void
  
        local_irq_enable();
  }
- EXPORT_SYMBOL_GPL(tick_nohz_idle_enter);
  
  /**
   * tick_nohz_irq_exit - update next tick event from interrupt exit
@@@ -974,7 -973,6 +973,6 @@@ void tick_nohz_idle_exit(void
  
        local_irq_enable();
  }
- EXPORT_SYMBOL_GPL(tick_nohz_idle_exit);
  
  static int tick_nohz_reprogram(struct tick_sched *ts, ktime_t now)
  {