diff options
-rw-r--r-- | sys/kern/ksched.c | 4 | ||||
-rw-r--r-- | sys/kern/p1003_1b.c | 10 | ||||
-rw-r--r-- | sys/posix4/ksched.c | 4 | ||||
-rw-r--r-- | sys/posix4/p1003_1b.c | 10 |
4 files changed, 22 insertions, 6 deletions
diff --git a/sys/kern/ksched.c b/sys/kern/ksched.c index fa66de5..20c5c57 100644 --- a/sys/kern/ksched.c +++ b/sys/kern/ksched.c @@ -161,7 +161,7 @@ int ksched_setscheduler(int *ret, struct ksched *ksched, rtp.type = (policy == SCHED_FIFO) ? RTP_PRIO_FIFO : RTP_PRIO_REALTIME; - rtp.prio = p4prio_to_rtpprio(RTP_PRIO_MAX); + rtp.prio = p4prio_to_rtpprio(param->sched_priority); p->p_rtprio = rtp; (void)resetpriority(p); } @@ -174,7 +174,7 @@ int ksched_setscheduler(int *ret, struct ksched *ksched, case SCHED_OTHER: { rtp.type = RTP_PRIO_NORMAL; - rtp.prio = p4prio_to_rtpprio(RTP_PRIO_MIN); + rtp.prio = p4prio_to_rtpprio(param->sched_priority); p->p_rtprio = rtp; /* XXX Simply revert to whatever we had for last diff --git a/sys/kern/p1003_1b.c b/sys/kern/p1003_1b.c index ccbee6b..c23d6a1 100644 --- a/sys/kern/p1003_1b.c +++ b/sys/kern/p1003_1b.c @@ -106,12 +106,20 @@ int p31b_proc(struct proc *p, pid_t pid, struct proc **pp) return ret; } +/* The system calls return ENOSYS if an entry is called that is + * not run-time supported. I am also logging since some programs + * start to use this when they shouldn't. That will be removed if annoying. + */ int syscall_not_present(struct proc *p, const char *s, struct nosys_args *uap) { log(LOG_ERR, "cmd %s pid %d tried to use non-present %s\n", p->p_comm, p->p_pid, s); - return nosys(p, uap); + + /* a " return nosys(p, uap); " here causes a core dump. + */ + + return ENOSYS; } #if !defined(_KPOSIX_PRIORITY_SCHEDULING) diff --git a/sys/posix4/ksched.c b/sys/posix4/ksched.c index fa66de5..20c5c57 100644 --- a/sys/posix4/ksched.c +++ b/sys/posix4/ksched.c @@ -161,7 +161,7 @@ int ksched_setscheduler(int *ret, struct ksched *ksched, rtp.type = (policy == SCHED_FIFO) ? RTP_PRIO_FIFO : RTP_PRIO_REALTIME; - rtp.prio = p4prio_to_rtpprio(RTP_PRIO_MAX); + rtp.prio = p4prio_to_rtpprio(param->sched_priority); p->p_rtprio = rtp; (void)resetpriority(p); } @@ -174,7 +174,7 @@ int ksched_setscheduler(int *ret, struct ksched *ksched, case SCHED_OTHER: { rtp.type = RTP_PRIO_NORMAL; - rtp.prio = p4prio_to_rtpprio(RTP_PRIO_MIN); + rtp.prio = p4prio_to_rtpprio(param->sched_priority); p->p_rtprio = rtp; /* XXX Simply revert to whatever we had for last diff --git a/sys/posix4/p1003_1b.c b/sys/posix4/p1003_1b.c index ccbee6b..c23d6a1 100644 --- a/sys/posix4/p1003_1b.c +++ b/sys/posix4/p1003_1b.c @@ -106,12 +106,20 @@ int p31b_proc(struct proc *p, pid_t pid, struct proc **pp) return ret; } +/* The system calls return ENOSYS if an entry is called that is + * not run-time supported. I am also logging since some programs + * start to use this when they shouldn't. That will be removed if annoying. + */ int syscall_not_present(struct proc *p, const char *s, struct nosys_args *uap) { log(LOG_ERR, "cmd %s pid %d tried to use non-present %s\n", p->p_comm, p->p_pid, s); - return nosys(p, uap); + + /* a " return nosys(p, uap); " here causes a core dump. + */ + + return ENOSYS; } #if !defined(_KPOSIX_PRIORITY_SCHEDULING) |