void finish_task_switch (runqueue_t * rq, task_t * prev);
finish_task_switch must be called after the context switch, paired with a prepare_task_switch call before the context switch. finish_task_switch will reconcile locking set up by prepare_task_switch, and do 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.)