On 02/16/2016 09:13 PM, Daniel Lezcano wrote:
[...]
+ if (index < 0) {
+ /*
+ * No idle callbacks fulfilled the constraints, jump
+ * to the default function like there wasn't any
+ * cpuidle driver.
+ */
+ goto default_idle;
+ } else {
+ /*
+ * Enter the idle state previously returned by the
+ * governor decision. This function will block until
+ * an interrupt occurs and will take care of
+ * re-enabling the local interrupts
+ */
+ return cpuidle_enter(drv, dev, index);
Minor point. You are not calling rcu_idle_exit() in else block. This
should probably be
ret = cpuidle_enter(drv, dev, index);
goto out;