diff options
Diffstat (limited to 'mm/rodata_test.c')
-rw-r--r-- | mm/rodata_test.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/mm/rodata_test.c b/mm/rodata_test.c index 0fd21670b513..6bb4deb12e78 100644 --- a/mm/rodata_test.c +++ b/mm/rodata_test.c | |||
@@ -9,11 +9,12 @@ | |||
9 | * as published by the Free Software Foundation; version 2 | 9 | * as published by the Free Software Foundation; version 2 |
10 | * of the License. | 10 | * of the License. |
11 | */ | 11 | */ |
12 | #define pr_fmt(fmt) "rodata_test: " fmt | ||
13 | |||
12 | #include <linux/uaccess.h> | 14 | #include <linux/uaccess.h> |
13 | #include <asm/sections.h> | 15 | #include <asm/sections.h> |
14 | 16 | ||
15 | const int rodata_test_data = 0xC3; | 17 | const int rodata_test_data = 0xC3; |
16 | EXPORT_SYMBOL_GPL(rodata_test_data); | ||
17 | 18 | ||
18 | void rodata_test(void) | 19 | void rodata_test(void) |
19 | { | 20 | { |
@@ -23,20 +24,20 @@ void rodata_test(void) | |||
23 | /* test 1: read the value */ | 24 | /* test 1: read the value */ |
24 | /* If this test fails, some previous testrun has clobbered the state */ | 25 | /* If this test fails, some previous testrun has clobbered the state */ |
25 | if (!rodata_test_data) { | 26 | if (!rodata_test_data) { |
26 | pr_err("rodata_test: test 1 fails (start data)\n"); | 27 | pr_err("test 1 fails (start data)\n"); |
27 | return; | 28 | return; |
28 | } | 29 | } |
29 | 30 | ||
30 | /* test 2: write to the variable; this should fault */ | 31 | /* test 2: write to the variable; this should fault */ |
31 | if (!probe_kernel_write((void *)&rodata_test_data, | 32 | if (!probe_kernel_write((void *)&rodata_test_data, |
32 | (void *)&zero, sizeof(zero))) { | 33 | (void *)&zero, sizeof(zero))) { |
33 | pr_err("rodata_test: test data was not read only\n"); | 34 | pr_err("test data was not read only\n"); |
34 | return; | 35 | return; |
35 | } | 36 | } |
36 | 37 | ||
37 | /* test 3: check the value hasn't changed */ | 38 | /* test 3: check the value hasn't changed */ |
38 | if (rodata_test_data == zero) { | 39 | if (rodata_test_data == zero) { |
39 | pr_err("rodata_test: test data was changed\n"); | 40 | pr_err("test data was changed\n"); |
40 | return; | 41 | return; |
41 | } | 42 | } |
42 | 43 | ||
@@ -44,13 +45,13 @@ void rodata_test(void) | |||
44 | start = (unsigned long)__start_rodata; | 45 | start = (unsigned long)__start_rodata; |
45 | end = (unsigned long)__end_rodata; | 46 | end = (unsigned long)__end_rodata; |
46 | if (start & (PAGE_SIZE - 1)) { | 47 | if (start & (PAGE_SIZE - 1)) { |
47 | pr_err("rodata_test: start of .rodata is not page size aligned\n"); | 48 | pr_err("start of .rodata is not page size aligned\n"); |
48 | return; | 49 | return; |
49 | } | 50 | } |
50 | if (end & (PAGE_SIZE - 1)) { | 51 | if (end & (PAGE_SIZE - 1)) { |
51 | pr_err("rodata_test: end of .rodata is not page size aligned\n"); | 52 | pr_err("end of .rodata is not page size aligned\n"); |
52 | return; | 53 | return; |
53 | } | 54 | } |
54 | 55 | ||
55 | pr_info("rodata_test: all tests were successful\n"); | 56 | pr_info("all tests were successful\n"); |
56 | } | 57 | } |