Use sched_lock to protect rtp_to_pri() and pri_to_rtp() when needed.
This commit is contained in:
parent
51b4eed974
commit
e342cd279f
@ -284,7 +284,9 @@ rtprio(curp, uap)
|
|||||||
case RTP_LOOKUP:
|
case RTP_LOOKUP:
|
||||||
if ((error = p_cansee(curp, p)))
|
if ((error = p_cansee(curp, p)))
|
||||||
break;
|
break;
|
||||||
|
mtx_lock_spin(&sched_lock);
|
||||||
pri_to_rtp(&p->p_pri, &rtp);
|
pri_to_rtp(&p->p_pri, &rtp);
|
||||||
|
mtx_unlock_spin(&sched_lock);
|
||||||
error = copyout(&rtp, uap->rtp, sizeof(struct rtprio));
|
error = copyout(&rtp, uap->rtp, sizeof(struct rtprio));
|
||||||
break;
|
break;
|
||||||
case RTP_SET:
|
case RTP_SET:
|
||||||
@ -314,7 +316,9 @@ rtprio(curp, uap)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
mtx_lock_spin(&sched_lock);
|
||||||
error = rtp_to_pri(&rtp, &p->p_pri);
|
error = rtp_to_pri(&rtp, &p->p_pri);
|
||||||
|
mtx_unlock_spin(&sched_lock);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
error = EINVAL;
|
error = EINVAL;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user