diff options
author | Michael Ellerman <mpe@ellerman.id.au> | 2018-07-11 10:10:17 +0300 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2018-07-20 05:50:52 +0300 |
commit | dbc3f77c2fea2875e4fd64e2dee57b9a2bda38e8 (patch) | |
tree | 3750bf84995fdd17151c884bd759c2ca25a6ae30 /tools/testing/selftests/powerpc/alignment/copy_paste_unaligned_common.c | |
parent | 525661ef8040e099d191f5f35defaed342e6859b (diff) | |
download | linux-dbc3f77c2fea2875e4fd64e2dee57b9a2bda38e8.tar.xz |
selftests/powerpc: Consolidate copy/paste test logic
This logic was shared between multiple tests, but now that we have
removed all but one of them we can just move it into that test.
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'tools/testing/selftests/powerpc/alignment/copy_paste_unaligned_common.c')
-rw-r--r-- | tools/testing/selftests/powerpc/alignment/copy_paste_unaligned_common.c | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/tools/testing/selftests/powerpc/alignment/copy_paste_unaligned_common.c b/tools/testing/selftests/powerpc/alignment/copy_paste_unaligned_common.c deleted file mode 100644 index d35fa5f5d2d3..000000000000 --- a/tools/testing/selftests/powerpc/alignment/copy_paste_unaligned_common.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2016, Chris Smart, IBM Corporation. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version - * 2 of the License, or (at your option) any later version. - * - * Common code for copy, copy_first, paste and paste_last unaligned - * tests. - * - */ - -#include <signal.h> -#include <string.h> -#include <unistd.h> -#include "utils.h" -#include "instructions.h" -#include "copy_paste_unaligned_common.h" - -unsigned int expected_instruction; -unsigned int instruction_mask; - -char cacheline_buf[128] __cacheline_aligned; - -void signal_action_handler(int signal_num, siginfo_t *info, void *ptr) -{ - ucontext_t *ctx = ptr; -#if defined(__powerpc64__) - unsigned int *pc = (unsigned int *)ctx->uc_mcontext.gp_regs[PT_NIP]; -#else - unsigned int *pc = (unsigned int *)ctx->uc_mcontext.uc_regs->gregs[PT_NIP]; -#endif - - /* - * Check that the signal was on the correct instruction, using a - * mask because the compiler assigns the register at RB. - */ - if ((*pc & instruction_mask) == expected_instruction) - _exit(0); /* We hit the right instruction */ - - _exit(1); -} - -void setup_signal_handler(void) -{ - struct sigaction signal_action; - - memset(&signal_action, 0, sizeof(signal_action)); - signal_action.sa_sigaction = signal_action_handler; - signal_action.sa_flags = SA_SIGINFO; - sigaction(SIGBUS, &signal_action, NULL); -} |