*/
        smp_cond_load_acquire(&p->on_cpu, !VAL);
  
 -      cpu = select_task_rq(p, p->wake_cpu, SD_BALANCE_WAKE, wake_flags);
 +      cpu = select_task_rq(p, p->wake_cpu, wake_flags | WF_TTWU);
        if (task_cpu(p) != cpu) {
+               if (p->in_iowait) {
+                       delayacct_blkio_end(p);
+                       atomic_dec(&task_rq(p)->nr_iowait);
+               }
+ 
                wake_flags |= WF_MIGRATED;
                psi_ttwu_dequeue(p);
                set_task_cpu(p, cpu);
 
  
        csd_type = CSD_TYPE(csd);
        if (csd_type == CSD_TYPE_ASYNC || csd_type == CSD_TYPE_SYNC)
--              return csd->dst; /* Other CSD_TYPE_ values might not have ->dst. */
++              return csd->node.dst; /* Other CSD_TYPE_ values might not have ->dst. */
        return -1;
  }