Skip to content

Commit b808f62

Browse files
Muhammad Usama Anjumakpm00
authored andcommitted
selftests: mm: fix build errors on armhf
The __NR_mmap isn't found on armhf. The mmap() is commonly available system call and its wrapper is present on all architectures. So it should be used directly. It solves problem for armhf and doesn't create problem for other architectures. Remove sys_mmap() functions as they aren't doing anything else other than calling mmap(). There is no need to set errno = 0 manually as glibc always resets it. For reference errors are as following: CC seal_elf seal_elf.c: In function 'sys_mmap': seal_elf.c:39:33: error: '__NR_mmap' undeclared (first use in this function) 39 | sret = (void *) syscall(__NR_mmap, addr, len, prot, | ^~~~~~~~~ mseal_test.c: In function 'sys_mmap': mseal_test.c:90:33: error: '__NR_mmap' undeclared (first use in this function) 90 | sret = (void *) syscall(__NR_mmap, addr, len, prot, | ^~~~~~~~~ Link: https://lkml.kernel.org/r/[email protected] Fixes: 4926c7a ("selftest mm/mseal memory sealing") Signed-off-by: Muhammad Usama Anjum <[email protected]> Cc: Jeff Xu <[email protected]> Cc: Kees Cook <[email protected]> Cc: Liam R. Howlett <[email protected]> Cc: Shuah Khan <[email protected]> Cc: <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
1 parent 431c164 commit b808f62

File tree

2 files changed

+14
-36
lines changed

2 files changed

+14
-36
lines changed

tools/testing/selftests/mm/mseal_test.c

Lines changed: 13 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -81,17 +81,6 @@ static int sys_mprotect_pkey(void *ptr, size_t size, unsigned long orig_prot,
8181
return sret;
8282
}
8383

84-
static void *sys_mmap(void *addr, unsigned long len, unsigned long prot,
85-
unsigned long flags, unsigned long fd, unsigned long offset)
86-
{
87-
void *sret;
88-
89-
errno = 0;
90-
sret = (void *) syscall(__NR_mmap, addr, len, prot,
91-
flags, fd, offset);
92-
return sret;
93-
}
94-
9584
static int sys_munmap(void *ptr, size_t size)
9685
{
9786
int sret;
@@ -172,7 +161,7 @@ static void setup_single_address(int size, void **ptrOut)
172161
{
173162
void *ptr;
174163

175-
ptr = sys_mmap(NULL, size, PROT_READ, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
164+
ptr = mmap(NULL, size, PROT_READ, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
176165
*ptrOut = ptr;
177166
}
178167

@@ -181,7 +170,7 @@ static void setup_single_address_rw(int size, void **ptrOut)
181170
void *ptr;
182171
unsigned long mapflags = MAP_ANONYMOUS | MAP_PRIVATE;
183172

184-
ptr = sys_mmap(NULL, size, PROT_READ | PROT_WRITE, mapflags, -1, 0);
173+
ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, mapflags, -1, 0);
185174
*ptrOut = ptr;
186175
}
187176

@@ -205,7 +194,7 @@ bool seal_support(void)
205194
void *ptr;
206195
unsigned long page_size = getpagesize();
207196

208-
ptr = sys_mmap(NULL, page_size, PROT_READ, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
197+
ptr = mmap(NULL, page_size, PROT_READ, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
209198
if (ptr == (void *) -1)
210199
return false;
211200

@@ -481,8 +470,8 @@ static void test_seal_zero_address(void)
481470
int prot;
482471

483472
/* use mmap to change protection. */
484-
ptr = sys_mmap(0, size, PROT_NONE,
485-
MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, -1, 0);
473+
ptr = mmap(0, size, PROT_NONE,
474+
MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, -1, 0);
486475
FAIL_TEST_IF_FALSE(ptr == 0);
487476

488477
size = get_vma_size(ptr, &prot);
@@ -1209,8 +1198,8 @@ static void test_seal_mmap_overwrite_prot(bool seal)
12091198
}
12101199

12111200
/* use mmap to change protection. */
1212-
ret2 = sys_mmap(ptr, size, PROT_NONE,
1213-
MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, -1, 0);
1201+
ret2 = mmap(ptr, size, PROT_NONE,
1202+
MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, -1, 0);
12141203
if (seal) {
12151204
FAIL_TEST_IF_FALSE(ret2 == MAP_FAILED);
12161205
FAIL_TEST_IF_FALSE(errno == EPERM);
@@ -1240,8 +1229,8 @@ static void test_seal_mmap_expand(bool seal)
12401229
}
12411230

12421231
/* use mmap to expand. */
1243-
ret2 = sys_mmap(ptr, size, PROT_READ,
1244-
MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, -1, 0);
1232+
ret2 = mmap(ptr, size, PROT_READ,
1233+
MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, -1, 0);
12451234
if (seal) {
12461235
FAIL_TEST_IF_FALSE(ret2 == MAP_FAILED);
12471236
FAIL_TEST_IF_FALSE(errno == EPERM);
@@ -1268,8 +1257,8 @@ static void test_seal_mmap_shrink(bool seal)
12681257
}
12691258

12701259
/* use mmap to shrink. */
1271-
ret2 = sys_mmap(ptr, 8 * page_size, PROT_READ,
1272-
MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, -1, 0);
1260+
ret2 = mmap(ptr, 8 * page_size, PROT_READ,
1261+
MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, -1, 0);
12731262
if (seal) {
12741263
FAIL_TEST_IF_FALSE(ret2 == MAP_FAILED);
12751264
FAIL_TEST_IF_FALSE(errno == EPERM);
@@ -1650,7 +1639,7 @@ static void test_seal_discard_ro_anon_on_filebacked(bool seal)
16501639
ret = fallocate(fd, 0, 0, size);
16511640
FAIL_TEST_IF_FALSE(!ret);
16521641

1653-
ptr = sys_mmap(NULL, size, PROT_READ, mapflags, fd, 0);
1642+
ptr = mmap(NULL, size, PROT_READ, mapflags, fd, 0);
16541643
FAIL_TEST_IF_FALSE(ptr != MAP_FAILED);
16551644

16561645
if (seal) {
@@ -1680,7 +1669,7 @@ static void test_seal_discard_ro_anon_on_shared(bool seal)
16801669
int ret;
16811670
unsigned long mapflags = MAP_ANONYMOUS | MAP_SHARED;
16821671

1683-
ptr = sys_mmap(NULL, size, PROT_READ, mapflags, -1, 0);
1672+
ptr = mmap(NULL, size, PROT_READ, mapflags, -1, 0);
16841673
FAIL_TEST_IF_FALSE(ptr != (void *)-1);
16851674

16861675
if (seal) {

tools/testing/selftests/mm/seal_elf.c

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,6 @@ static int sys_mseal(void *start, size_t len)
3030
return sret;
3131
}
3232

33-
static void *sys_mmap(void *addr, unsigned long len, unsigned long prot,
34-
unsigned long flags, unsigned long fd, unsigned long offset)
35-
{
36-
void *sret;
37-
38-
errno = 0;
39-
sret = (void *) syscall(__NR_mmap, addr, len, prot,
40-
flags, fd, offset);
41-
return sret;
42-
}
43-
4433
static inline int sys_mprotect(void *ptr, size_t size, unsigned long prot)
4534
{
4635
int sret;
@@ -56,7 +45,7 @@ static bool seal_support(void)
5645
void *ptr;
5746
unsigned long page_size = getpagesize();
5847

59-
ptr = sys_mmap(NULL, page_size, PROT_READ, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
48+
ptr = mmap(NULL, page_size, PROT_READ, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
6049
if (ptr == (void *) -1)
6150
return false;
6251

0 commit comments

Comments
 (0)