selftests/powerpc: Move Hash MMU check to utilities
authorSandipan Das <sandipan@linux.ibm.com>
Thu, 4 Jun 2020 12:56:09 +0000 (18:26 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 30 Jun 2020 04:37:51 +0000 (14:37 +1000)
This moves a function to test if the MMU is in Hash mode
under the generic test utilities.

Signed-off-by: Sandipan Das <sandipan@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200604125610.649668-3-sandipan@linux.ibm.com
tools/testing/selftests/powerpc/include/utils.h
tools/testing/selftests/powerpc/mm/Makefile
tools/testing/selftests/powerpc/mm/bad_accesses.c
tools/testing/selftests/powerpc/utils.c

index 2e39b29..9dbe607 100644 (file)
@@ -60,6 +60,7 @@ static inline bool have_hwcap2(unsigned long ftr2)
 #endif
 
 bool is_ppc64le(void);
+int using_hash_mmu(bool *using_hash);
 
 /* Yes, this is evil */
 #define FAIL_IF(x)                                             \
index b9103c4..2389bf7 100644 (file)
@@ -10,7 +10,7 @@ TEST_GEN_FILES := tempfile
 top_srcdir = ../../../../..
 include ../../lib.mk
 
-$(TEST_GEN_PROGS): ../harness.c
+$(TEST_GEN_PROGS): ../harness.c ../utils.c
 
 $(OUTPUT)/prot_sao: ../utils.c
 
index adc465f..a864ed7 100644 (file)
@@ -64,34 +64,6 @@ int bad_access(char *p, bool write)
        return 0;
 }
 
-static int using_hash_mmu(bool *using_hash)
-{
-       char line[128];
-       FILE *f;
-       int rc;
-
-       f = fopen("/proc/cpuinfo", "r");
-       FAIL_IF(!f);
-
-       rc = 0;
-       while (fgets(line, sizeof(line), f) != NULL) {
-               if (strcmp(line, "MMU           : Hash\n") == 0) {
-                       *using_hash = true;
-                       goto out;
-               }
-
-               if (strcmp(line, "MMU           : Radix\n") == 0) {
-                       *using_hash = false;
-                       goto out;
-               }
-       }
-
-       rc = -1;
-out:
-       fclose(f);
-       return rc;
-}
-
 static int test(void)
 {
        unsigned long i, j, addr, region_shift, page_shift, page_size;
index 5ee0e98..933678f 100644 (file)
@@ -293,3 +293,31 @@ void set_dscr(unsigned long val)
 
        asm volatile("mtspr %1,%0" : : "r" (val), "i" (SPRN_DSCR));
 }
+
+int using_hash_mmu(bool *using_hash)
+{
+       char line[128];
+       FILE *f;
+       int rc;
+
+       f = fopen("/proc/cpuinfo", "r");
+       FAIL_IF(!f);
+
+       rc = 0;
+       while (fgets(line, sizeof(line), f) != NULL) {
+               if (strcmp(line, "MMU           : Hash\n") == 0) {
+                       *using_hash = true;
+                       goto out;
+               }
+
+               if (strcmp(line, "MMU           : Radix\n") == 0) {
+                       *using_hash = false;
+                       goto out;
+               }
+       }
+
+       rc = -1;
+out:
+       fclose(f);
+       return rc;
+}