FILE
sigreturn_unaligned.c
File preview with syntax highlighting.
linux-6.19.14/tools/testing/selftests/powerpc/signal/sigreturn_unaligned.c
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Test sigreturn to an unaligned address, ie. low 2 bits set. 4 * Nothing bad should happen. 5 * This was able to trigger warnings with CONFIG_PPC_RFI_SRR_DEBUG=y. 6 */ 7 8#include <signal.h> 9#include <stdio.h> 10#include <stdlib.h> 11#include <string.h> 12#include <ucontext.h> 13#include <unistd.h> 14 15#include "utils.h" 16 17 18static void sigusr1_handler(int signo, siginfo_t *info, void *ptr) 19{ 20 ucontext_t *uc = ptr; 21 22 UCONTEXT_NIA(uc) |= 3; 23} 24 25static int test_sigreturn_unaligned(void) 26{ 27 struct sigaction action; 28 29 memset(&action, 0, sizeof(action)); 30 action.sa_sigaction = sigusr1_handler; 31 action.sa_flags = SA_SIGINFO; 32 33 FAIL_IF(sigaction(SIGUSR1, &action, NULL) == -1); 34 35 raise(SIGUSR1); 36 37 return 0; 38} 39 40int main(void) 41{ 42 return test_harness(test_sigreturn_unaligned, "sigreturn_unaligned"); 43}
~/
Read-only file preview.