| From: Alexey Dobriyan <adobriyan@gmail.com> |
| Subject: proc: fixup uptime selftest |
| Date: Mon, 24 Oct 2022 21:08:09 +0300 |
| |
| syscall(3) returns -1 and sets errno on error, unlike "syscall" |
| instruction. |
| |
| Systems which have <= 32/64 CPUs are unaffected. Test won't bounce |
| to all CPUs before completing if there are more of them. |
| |
| Link: https://lkml.kernel.org/r/Y1bUiT7VRXlXPQa1@p183 |
| Fixes: 1f5bd0547654 ("proc: selftests: test /proc/uptime") |
| Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| tools/testing/selftests/proc/proc-uptime-002.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/tools/testing/selftests/proc/proc-uptime-002.c~proc-fixup-uptime-test |
| +++ a/tools/testing/selftests/proc/proc-uptime-002.c |
| @@ -17,6 +17,7 @@ |
| // while shifting across CPUs. |
| #undef NDEBUG |
| #include <assert.h> |
| +#include <errno.h> |
| #include <unistd.h> |
| #include <sys/syscall.h> |
| #include <stdlib.h> |
| @@ -54,7 +55,7 @@ int main(void) |
| len += sizeof(unsigned long); |
| free(m); |
| m = malloc(len); |
| - } while (sys_sched_getaffinity(0, len, m) == -EINVAL); |
| + } while (sys_sched_getaffinity(0, len, m) == -1 && errno == EINVAL); |
| |
| fd = open("/proc/uptime", O_RDONLY); |
| assert(fd >= 0); |
| _ |