/* __task_rq_lock - lock the runqueue a given task resides on. Must be called interrupts disabled.  */
static struct rq* __task_rq_lock(struct task_struct *p) __acquires(rq -> lock)
/* __task_rq_lock - lock the runqueue a given task resides on. Must be called interrupts disabled.  */
static struct rq* __task_rq_lock(struct task_struct *p) __acquires(rq -> lock)
{
	for (;;) {
		struct rq *rq = task_rq(p);
		raw_spin_lock(&rq->lock);
		if (likely(rq == task_rq(p)))
			return rq;
		raw_spin_unlock(&rq->lock);
	}
}