summaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/proc/proc-self-map-files-002.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman2019-05-03 18:03:47 +0200
committerGreg Kroah-Hartman2019-05-03 18:03:47 +0200
commit12456e509be25d24fe479394852428517922d02a (patch)
tree8b1e8e1025ce1beb350bbf977ac8b8ffdd5fbfa1 /tools/testing/selftests/proc/proc-self-map-files-002.c
parentMerge tag 'usb-serial-5.2-rc1' of https://git.kernel.org/pub/scm/linux/kernel... (diff)
parentLinux 5.1-rc7 (diff)
downloadkernel-qcow2-linux-12456e509be25d24fe479394852428517922d02a.tar.gz
kernel-qcow2-linux-12456e509be25d24fe479394852428517922d02a.tar.xz
kernel-qcow2-linux-12456e509be25d24fe479394852428517922d02a.zip
Merge 5.1-rc7 into usb-next
We need this to make the usb-gadget branch merge cleaner. And for testing to keep from hitting the same issues already fixed. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'tools/testing/selftests/proc/proc-self-map-files-002.c')
-rw-r--r--tools/testing/selftests/proc/proc-self-map-files-002.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/tools/testing/selftests/proc/proc-self-map-files-002.c b/tools/testing/selftests/proc/proc-self-map-files-002.c
index 762cb01f2ca7..47b7473dedef 100644
--- a/tools/testing/selftests/proc/proc-self-map-files-002.c
+++ b/tools/testing/selftests/proc/proc-self-map-files-002.c
@@ -46,12 +46,9 @@ static void fail(const char *fmt, unsigned long a, unsigned long b)
int main(void)
{
- const unsigned int PAGE_SIZE = sysconf(_SC_PAGESIZE);
-#ifdef __arm__
- unsigned long va = 2 * PAGE_SIZE;
-#else
- unsigned long va = 0;
-#endif
+ const int PAGE_SIZE = sysconf(_SC_PAGESIZE);
+ const unsigned long va_max = 1UL << 32;
+ unsigned long va;
void *p;
int fd;
unsigned long a, b;
@@ -60,10 +57,13 @@ int main(void)
if (fd == -1)
return 1;
- p = mmap((void *)va, PAGE_SIZE, PROT_NONE, MAP_PRIVATE|MAP_FILE|MAP_FIXED, fd, 0);
- if (p == MAP_FAILED) {
- if (errno == EPERM)
- return 4;
+ for (va = 0; va < va_max; va += PAGE_SIZE) {
+ p = mmap((void *)va, PAGE_SIZE, PROT_NONE, MAP_PRIVATE|MAP_FILE|MAP_FIXED, fd, 0);
+ if (p == (void *)va)
+ break;
+ }
+ if (va == va_max) {
+ fprintf(stderr, "error: mmap doesn't like you\n");
return 1;
}