git: aca70bd01e3f - stable/13 - sched_getaffinity(3): more compatibility with Linux
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 02 May 2022 18:09:54 UTC
The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=aca70bd01e3f0db30caf9e3a9a0befe99a08f0d7 commit aca70bd01e3f0db30caf9e3a9a0befe99a08f0d7 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2022-04-24 22:10:18 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2022-05-02 18:08:44 +0000 sched_getaffinity(3): more compatibility with Linux (cherry picked from commit 67fc95025ccfc696ea5eaea0ecb1fff295760723) --- lib/libc/gen/sched_setaffinity.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/libc/gen/sched_setaffinity.c b/lib/libc/gen/sched_setaffinity.c index 91ab2a401bda..09e2b9097d5a 100644 --- a/lib/libc/gen/sched_setaffinity.c +++ b/lib/libc/gen/sched_setaffinity.c @@ -34,6 +34,7 @@ int sched_setaffinity(pid_t pid, size_t cpusetsz, const cpuset_t *cpuset) { cpuset_t c; + int error; if (cpusetsz > sizeof(cpuset_t)) { errno = EINVAL; @@ -42,6 +43,10 @@ sched_setaffinity(pid_t pid, size_t cpusetsz, const cpuset_t *cpuset) memset(&c, 0, sizeof(c)); memcpy(&c, cpuset, cpusetsz); } - return (cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, - pid == 0 ? -1 : pid, sizeof(cpuset_t), &c)); + error = cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, + pid == 0 ? -1 : pid, sizeof(cpuset_t), &c); + if (error == -1 && errno == EDEADLK) + errno = EINVAL; + + return (error); }