| From 0e481c957a69745bb93559757f8c021e59a50eb8 Mon Sep 17 00:00:00 2001 |
| From: Ram Pai <linuxram@us.ibm.com> |
| Date: Thu, 4 Jun 2020 16:52:05 -0700 |
| Subject: [PATCH] selftests/vm/pkeys: fix alloc_random_pkey() to make it really |
| random |
| |
| commit 6e373263ce07eeaa6410843179535fbdf561fc31 upstream. |
| |
| alloc_random_pkey() was allocating the same pkey every time. Not all |
| pkeys were geting tested. This fixes it. |
| |
| Signed-off-by: Ram Pai <linuxram@us.ibm.com> |
| Signed-off-by: Sandipan Das <sandipan@linux.ibm.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| Acked-by: Dave Hansen <dave.hansen@intel.com> |
| Cc: Dave Hansen <dave.hansen@intel.com> |
| Cc: Florian Weimer <fweimer@redhat.com> |
| Cc: "Desnes A. Nunes do Rosario" <desnesn@linux.vnet.ibm.com> |
| Cc: Ingo Molnar <mingo@kernel.org> |
| Cc: Thiago Jung Bauermann <bauerman@linux.ibm.com> |
| Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com> |
| Cc: Michael Ellerman <mpe@ellerman.id.au> |
| Cc: Michal Hocko <mhocko@kernel.org> |
| Cc: Michal Suchanek <msuchanek@suse.de> |
| Cc: Shuah Khan <shuah@kernel.org> |
| Link: http://lkml.kernel.org/r/0162f55816d4e783a0d6e49e554d0ab9a3c9a23b.1585646528.git.sandipan@linux.ibm.com |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/tools/testing/selftests/x86/protection_keys.c b/tools/testing/selftests/x86/protection_keys.c |
| index 5d546dcdbc80..b8778960da10 100644 |
| --- a/tools/testing/selftests/x86/protection_keys.c |
| +++ b/tools/testing/selftests/x86/protection_keys.c |
| @@ -24,6 +24,7 @@ |
| #define _GNU_SOURCE |
| #include <errno.h> |
| #include <linux/futex.h> |
| +#include <time.h> |
| #include <sys/time.h> |
| #include <sys/syscall.h> |
| #include <string.h> |
| @@ -612,10 +613,10 @@ int alloc_random_pkey(void) |
| int nr_alloced = 0; |
| int random_index; |
| memset(alloced_pkeys, 0, sizeof(alloced_pkeys)); |
| + srand((unsigned int)time(NULL)); |
| |
| /* allocate every possible key and make a note of which ones we got */ |
| max_nr_pkey_allocs = NR_PKEYS; |
| - max_nr_pkey_allocs = 1; |
| for (i = 0; i < max_nr_pkey_allocs; i++) { |
| int new_pkey = alloc_pkey(); |
| if (new_pkey < 0) |
| -- |
| 2.27.0 |
| |