mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-08-21 16:31:14 +02:00

This continues the work on getting the selftests to build without
requiring people to first run "make headers" [1].
Now that the system call numbers are in the correct, checked-in locations
in the kernel tree (./tools/include/uapi/asm/unistd*.h), make sure that
the mm selftests include that file (indirectly).
Doing so provides guaranteed definitions at build time, so remove all of
the checks for "ifdef __NR_xxx" in the mm selftests, because they will
always be true (defined).
[1] commit e076eaca59
("selftests: break the dependency upon local
header files")
Link: https://lkml.kernel.org/r/20240618022422.804305-7-jhubbard@nvidia.com
Signed-off-by: John Hubbard <jhubbard@nvidia.com>
Acked-by: David Hildenbrand <david@redhat.com>
Cc: Jeff Xu <jeffxu@chromium.org>
Cc: Andrei Vagin <avagin@google.com>
Cc: Axel Rasmussen <axelrasmussen@google.com>
Cc: Christian Brauner <brauner@kernel.org>
Cc: Kees Cook <kees@kernel.org>
Cc: Kent Overstreet <kent.overstreet@linux.dev>
Cc: Liam R. Howlett <Liam.Howlett@oracle.com>
Cc: Muhammad Usama Anjum <usama.anjum@collabora.com>
Cc: Peter Xu <peterx@redhat.com>
Cc: Rich Felker <dalias@libc.org>
Cc: Shuah Khan <shuah@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
50 lines
934 B
C
50 lines
934 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#include <syscall.h>
|
|
#include <errno.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <asm-generic/unistd.h>
|
|
|
|
static int mlock2_(void *start, size_t len, int flags)
|
|
{
|
|
return syscall(__NR_mlock2, start, len, flags);
|
|
}
|
|
|
|
static FILE *seek_to_smaps_entry(unsigned long addr)
|
|
{
|
|
FILE *file;
|
|
char *line = NULL;
|
|
size_t size = 0;
|
|
unsigned long start, end;
|
|
char perms[5];
|
|
unsigned long offset;
|
|
char dev[32];
|
|
unsigned long inode;
|
|
char path[BUFSIZ];
|
|
|
|
file = fopen("/proc/self/smaps", "r");
|
|
if (!file)
|
|
ksft_exit_fail_msg("fopen smaps: %s\n", strerror(errno));
|
|
|
|
while (getline(&line, &size, file) > 0) {
|
|
if (sscanf(line, "%lx-%lx %s %lx %s %lu %s\n",
|
|
&start, &end, perms, &offset, dev, &inode, path) < 6)
|
|
goto next;
|
|
|
|
if (start <= addr && addr < end)
|
|
goto out;
|
|
|
|
next:
|
|
free(line);
|
|
line = NULL;
|
|
size = 0;
|
|
}
|
|
|
|
fclose(file);
|
|
file = NULL;
|
|
|
|
out:
|
|
free(line);
|
|
return file;
|
|
}
|