1 // SPDX-License-Identifier: GPL-2.0-or-later
11 #include <sys/types.h>
19 static void sigbus_handler(int n
, siginfo_t
*info
, void *ctxt_v
)
21 ucontext_t
*ctxt
= (ucontext_t
*)ctxt_v
;
22 struct pt_regs
*regs
= ctxt
->uc_mcontext
.regs
;
28 static int test_ra_error(void)
30 struct vas_tx_win_open_attr attr
;
32 char *devname
= "/dev/crypto/nx-gzip";
33 struct sigaction act
= {
34 .sa_sigaction
= sigbus_handler
,
35 .sa_flags
= SA_SIGINFO
,
38 memset(&attr
, 0, sizeof(attr
));
42 SKIP_IF(access(devname
, F_OK
));
44 fd
= open(devname
, O_RDWR
);
46 FAIL_IF(ioctl(fd
, VAS_TX_WIN_OPEN
, &attr
) < 0);
47 FAIL_IF(sigaction(SIGBUS
, &act
, NULL
) != 0);
49 paste_addr
= mmap(NULL
, 4096, PROT_READ
| PROT_WRITE
, MAP_SHARED
, fd
, 0ULL);
51 /* The following assignment triggers exception */
63 return test_harness(test_ra_error
, "inject-ra-err");