the address of the pointer, rather than the pointer, was being passed. this was probably a copy-and-paste error from corresponding get code.
@@ -4,7 +4,7 @@ int pthread_setschedparam(pthread_t t, int policy, const struct sched_param *par
{
int r;
__lock(t->killlock);
- r = t->dead ? ESRCH : -__syscall(SYS_sched_setscheduler, t->tid, policy, ¶m);
+ r = t->dead ? ESRCH : -__syscall(SYS_sched_setscheduler, t->tid, policy, param);
__unlock(t->killlock);
return r;
}