child = group;
group = group->parent;
+ data->childmask = child->childmask;
} while (group);
}
trace_tmigr_group_set_cpu_active(group, newstate, childmask);
- if (walk_done == false)
- data->childmask = group->childmask;
-
/*
* The group is active (again). The group event might be still queued
* into the parent group's timerqueue but can now be handled by the
}
/*
- * Update of childmask for the next level and keep track of the expiry
- * of the first event that needs to be handled (group->next_expiry was
- * updated by tmigr_next_expired_groupevt(), next was set by
- * tmigr_handle_remote_cpu()).
+ * Keep track of the expiry of the first event that needs to be handled
+ * (group->next_expiry was updated by tmigr_next_expired_groupevt(),
+ * next was set by tmigr_handle_remote_cpu()).
*/
- data->childmask = group->childmask;
data->firstexp = group->next_expiry;
raw_spin_unlock_irq(&group->lock);
* group before reading the next_expiry value.
*/
if (group->parent && !data->tmc_active)
- goto out;
+ return false;
/*
* The lock is required on 32bit architectures to read the variable
raw_spin_unlock(&group->lock);
}
-out:
- /* Update of childmask for the next level */
- data->childmask = group->childmask;
return false;
}
/* Event Handling */
tmigr_update_events(group, child, data);
- if (walk_done == false)
- data->childmask = group->childmask;
-
return walk_done;
}