| From foo@baz Sun Jun 17 12:07:34 CEST 2018 |
| From: Dave Hansen <dave.hansen@linux.intel.com> |
| Date: Wed, 9 May 2018 10:13:40 -0700 |
| Subject: x86/pkeys/selftests: Stop using assert() |
| |
| From: Dave Hansen <dave.hansen@linux.intel.com> |
| |
| [ Upstream commit 86b9eea230edf4c67d4d4a70fba9b74505867a25 ] |
| |
| If we use assert(), the program "crashes". That can be scary to users, |
| so stop doing it. Just exit with a >0 exit code instead. |
| |
| Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com> |
| Cc: Andrew Morton <akpm@linux-foundation.org> |
| Cc: Dave Hansen <dave.hansen@intel.com> |
| Cc: Linus Torvalds <torvalds@linux-foundation.org> |
| Cc: Michael Ellermen <mpe@ellerman.id.au> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Cc: Ram Pai <linuxram@us.ibm.com> |
| Cc: Shuah Khan <shuah@kernel.org> |
| Cc: Thomas Gleixner <tglx@linutronix.de> |
| Cc: linux-mm@kvack.org |
| Link: http://lkml.kernel.org/r/20180509171340.E63EF7DA@viggo.jf.intel.com |
| Signed-off-by: Ingo Molnar <mingo@kernel.org> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| tools/testing/selftests/x86/protection_keys.c | 12 ++++++++---- |
| 1 file changed, 8 insertions(+), 4 deletions(-) |
| |
| --- a/tools/testing/selftests/x86/protection_keys.c |
| +++ b/tools/testing/selftests/x86/protection_keys.c |
| @@ -72,10 +72,9 @@ extern void abort_hooks(void); |
| test_nr, iteration_nr); \ |
| dprintf0("errno at assert: %d", errno); \ |
| abort_hooks(); \ |
| - assert(condition); \ |
| + exit(__LINE__); \ |
| } \ |
| } while (0) |
| -#define raw_assert(cond) assert(cond) |
| |
| void cat_into_file(char *str, char *file) |
| { |
| @@ -87,12 +86,17 @@ void cat_into_file(char *str, char *file |
| * these need to be raw because they are called under |
| * pkey_assert() |
| */ |
| - raw_assert(fd >= 0); |
| + if (fd < 0) { |
| + fprintf(stderr, "error opening '%s'\n", str); |
| + perror("error: "); |
| + exit(__LINE__); |
| + } |
| + |
| ret = write(fd, str, strlen(str)); |
| if (ret != strlen(str)) { |
| perror("write to file failed"); |
| fprintf(stderr, "filename: '%s' str: '%s'\n", file, str); |
| - raw_assert(0); |
| + exit(__LINE__); |
| } |
| close(fd); |
| } |