Pavel noticed that the code which calls the cpuidle's idle loop was repeated at many places. So this set optimizes it so that we dont have repetition of code. The rest of the patches are same as the earlier iteration.