void finish_task_switch (task_t * prev);
We enter this with the runqueue still locked, and finish_arch_switch will unlock it along with doing any other architecture-specific cleanup actions.
Note that we may have delayed dropping an mm in context_switch. If so, we finish that here outside of the runqueue lock. (Doing it with the lock held can cause deadlocks; see schedule for details.)