/linux/kernel/ |
A D | rseq.c | 138 memset(rseq_cs, 0, sizeof(*rseq_cs)); in rseq_get_rseq_cs() 144 if (copy_from_user(rseq_cs, urseq_cs, sizeof(*rseq_cs))) in rseq_get_rseq_cs() 148 rseq_cs->start_ip + rseq_cs->post_commit_offset >= TASK_SIZE || in rseq_get_rseq_cs() 153 if (rseq_cs->start_ip + rseq_cs->post_commit_offset < rseq_cs->start_ip) in rseq_get_rseq_cs() 156 if (rseq_cs->abort_ip - rseq_cs->start_ip < rseq_cs->post_commit_offset) in rseq_get_rseq_cs() 232 static bool in_rseq_cs(unsigned long ip, struct rseq_cs *rseq_cs) in in_rseq_cs() argument 234 return ip - rseq_cs->start_ip < rseq_cs->post_commit_offset; in in_rseq_cs() 241 struct rseq_cs rseq_cs; in rseq_ip_fixup() local 261 trace_rseq_ip_fixup(ip, rseq_cs.start_ip, rseq_cs.post_commit_offset, in rseq_ip_fixup() 315 struct rseq_cs rseq_cs; in rseq_syscall() local [all …]
|
/linux/tools/testing/selftests/rseq/ |
A D | rseq-arm.h | 166 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in rseq_cmpeqv_storev() 189 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_storev() 233 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in rseq_cmpnev_storeoffp_load() 259 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpnev_storeoffp_load() 302 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in rseq_addv() 320 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_addv() 385 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_trystorev_storev() 461 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_trystorev_storev_release() 541 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_cmpeqv_storev() 661 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_trymemcpy_storev() [all …]
|
A D | rseq-ppc.h | 219 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in rseq_cmpeqv_storev() 239 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_storev() 279 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in rseq_cmpnev_storeoffp_load() 305 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpnev_storeoffp_load() 344 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in rseq_addv() 363 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_addv() 423 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_trystorev_storev() 493 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_trystorev_storev_release() 564 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_cmpeqv_storev() 639 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_trymemcpy_storev() [all …]
|
A D | rseq-arm64.h | 219 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in rseq_cmpeqv_storev() 234 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_storev() 273 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in rseq_cmpnev_storeoffp_load() 291 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpnev_storeoffp_load() 327 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in rseq_addv() 341 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_addv() 392 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_trystorev_storev() 451 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_trystorev_storev_release() 512 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_cmpeqv_storev() 573 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_trymemcpy_storev() [all …]
|
A D | rseq-mips.h | 173 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in rseq_cmpeqv_storev() 194 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_storev() 238 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in rseq_cmpnev_storeoffp_load() 262 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpnev_storeoffp_load() 305 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in rseq_addv() 323 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_addv() 386 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_trystorev_storev() 460 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_trystorev_storev_release() 536 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_cmpeqv_storev() 653 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_trymemcpy_storev() [all …]
|
A D | rseq-s390.h | 150 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in rseq_cmpeqv_storev() 169 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_storev() 213 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in rseq_cmpnev_storeoffp_load() 237 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpnev_storeoffp_load() 276 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in rseq_addv() 292 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_addv() 329 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in rseq_cmpeqv_trystorev_storev() 351 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_trystorev_storev() 406 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in rseq_cmpeqv_cmpeqv_storev() 430 [rseq_cs] "m" (__rseq_abi.rseq_cs), in rseq_cmpeqv_cmpeqv_storev() [all …]
|
A D | rseq.h | 143 __rseq_abi.rseq_cs.ptr = 0; in rseq_clear_rseq_cs() 145 __rseq_abi.rseq_cs.ptr.ptr32 = 0; in rseq_clear_rseq_cs()
|
A D | rseq-x86.h | 85 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument 88 "movq %%rax, " __rseq_str(rseq_cs) "\n\t" \ 664 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument 666 "movl $" __rseq_str(cs_label) ", " __rseq_str(rseq_cs) "\n\t" \
|
/linux/include/uapi/linux/ |
A D | rseq.h | 45 struct rseq_cs { struct 124 } rseq_cs; member
|