rseq_cs 124 include/uapi/linux/rseq.h } rseq_cs; rseq_cs 115 kernel/rseq.c static int rseq_get_rseq_cs(struct task_struct *t, struct rseq_cs *rseq_cs) rseq_cs 117 kernel/rseq.c struct rseq_cs __user *urseq_cs; rseq_cs 123 kernel/rseq.c if (copy_from_user(&ptr, &t->rseq->rseq_cs.ptr64, sizeof(ptr))) rseq_cs 126 kernel/rseq.c memset(rseq_cs, 0, sizeof(*rseq_cs)); rseq_cs 131 kernel/rseq.c urseq_cs = (struct rseq_cs __user *)(unsigned long)ptr; rseq_cs 132 kernel/rseq.c if (copy_from_user(rseq_cs, urseq_cs, sizeof(*rseq_cs))) rseq_cs 135 kernel/rseq.c if (rseq_cs->start_ip >= TASK_SIZE || rseq_cs 136 kernel/rseq.c rseq_cs->start_ip + rseq_cs->post_commit_offset >= TASK_SIZE || rseq_cs 137 kernel/rseq.c rseq_cs->abort_ip >= TASK_SIZE || rseq_cs 138 kernel/rseq.c rseq_cs->version > 0) rseq_cs 141 kernel/rseq.c if (rseq_cs->start_ip + rseq_cs->post_commit_offset < rseq_cs->start_ip) rseq_cs 144 kernel/rseq.c if (rseq_cs->abort_ip - rseq_cs->start_ip < rseq_cs->post_commit_offset) rseq_cs 147 kernel/rseq.c usig = (u32 __user *)(unsigned long)(rseq_cs->abort_ip - sizeof(u32)); rseq_cs 207 kernel/rseq.c if (clear_user(&t->rseq->rseq_cs.ptr64, sizeof(t->rseq->rseq_cs.ptr64))) rseq_cs 216 kernel/rseq.c static bool in_rseq_cs(unsigned long ip, struct rseq_cs *rseq_cs) rseq_cs 218 kernel/rseq.c return ip - rseq_cs->start_ip < rseq_cs->post_commit_offset; rseq_cs 225 kernel/rseq.c struct rseq_cs rseq_cs; rseq_cs 228 kernel/rseq.c ret = rseq_get_rseq_cs(t, &rseq_cs); rseq_cs 237 kernel/rseq.c if (!in_rseq_cs(ip, &rseq_cs)) rseq_cs 239 kernel/rseq.c ret = rseq_need_restart(t, rseq_cs.flags); rseq_cs 245 kernel/rseq.c trace_rseq_ip_fixup(ip, rseq_cs.start_ip, rseq_cs.post_commit_offset, rseq_cs 246 kernel/rseq.c rseq_cs.abort_ip); rseq_cs 247 kernel/rseq.c instruction_pointer_set(regs, (unsigned long)rseq_cs.abort_ip); rseq_cs 293 kernel/rseq.c struct rseq_cs rseq_cs; rseq_cs 298 kernel/rseq.c rseq_get_rseq_cs(t, &rseq_cs) || in_rseq_cs(ip, &rseq_cs)) rseq_cs 115 tools/testing/selftests/rseq/rseq-arm.h #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ rseq_cs 118 tools/testing/selftests/rseq/rseq-arm.h "str r0, %[" __rseq_str(rseq_cs) "]\n\t" \ rseq_cs 166 tools/testing/selftests/rseq/rseq-arm.h RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) rseq_cs 189 tools/testing/selftests/rseq/rseq-arm.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 233 tools/testing/selftests/rseq/rseq-arm.h RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) rseq_cs 259 tools/testing/selftests/rseq/rseq-arm.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 302 tools/testing/selftests/rseq/rseq-arm.h RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) rseq_cs 320 tools/testing/selftests/rseq/rseq-arm.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 359 tools/testing/selftests/rseq/rseq-arm.h RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) rseq_cs 385 tools/testing/selftests/rseq/rseq-arm.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 434 tools/testing/selftests/rseq/rseq-arm.h RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) rseq_cs 461 tools/testing/selftests/rseq/rseq-arm.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 511 tools/testing/selftests/rseq/rseq-arm.h RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) rseq_cs 541 tools/testing/selftests/rseq/rseq-arm.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 597 tools/testing/selftests/rseq/rseq-arm.h RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) rseq_cs 661 tools/testing/selftests/rseq/rseq-arm.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 721 tools/testing/selftests/rseq/rseq-arm.h RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) rseq_cs 786 tools/testing/selftests/rseq/rseq-arm.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 127 tools/testing/selftests/rseq/rseq-arm64.h #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ rseq_cs 132 tools/testing/selftests/rseq/rseq-arm64.h " str " RSEQ_ASM_TMP_REG ", %[" __rseq_str(rseq_cs) "]\n" \ rseq_cs 219 tools/testing/selftests/rseq/rseq-arm64.h RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) rseq_cs 234 tools/testing/selftests/rseq/rseq-arm64.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 273 tools/testing/selftests/rseq/rseq-arm64.h RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) rseq_cs 291 tools/testing/selftests/rseq/rseq-arm64.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 327 tools/testing/selftests/rseq/rseq-arm64.h RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) rseq_cs 341 tools/testing/selftests/rseq/rseq-arm64.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 375 tools/testing/selftests/rseq/rseq-arm64.h RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) rseq_cs 392 tools/testing/selftests/rseq/rseq-arm64.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 434 tools/testing/selftests/rseq/rseq-arm64.h RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) rseq_cs 451 tools/testing/selftests/rseq/rseq-arm64.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 494 tools/testing/selftests/rseq/rseq-arm64.h RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) rseq_cs 512 tools/testing/selftests/rseq/rseq-arm64.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 556 tools/testing/selftests/rseq/rseq-arm64.h RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) rseq_cs 573 tools/testing/selftests/rseq/rseq-arm64.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 616 tools/testing/selftests/rseq/rseq-arm64.h RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) rseq_cs 633 tools/testing/selftests/rseq/rseq-arm64.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 121 tools/testing/selftests/rseq/rseq-mips.h #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ rseq_cs 124 tools/testing/selftests/rseq/rseq-mips.h LONG_S " $4, %[" __rseq_str(rseq_cs) "]\n\t" \ rseq_cs 173 tools/testing/selftests/rseq/rseq-mips.h RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) rseq_cs 194 tools/testing/selftests/rseq/rseq-mips.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 238 tools/testing/selftests/rseq/rseq-mips.h RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) rseq_cs 262 tools/testing/selftests/rseq/rseq-mips.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 305 tools/testing/selftests/rseq/rseq-mips.h RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) rseq_cs 323 tools/testing/selftests/rseq/rseq-mips.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 362 tools/testing/selftests/rseq/rseq-mips.h RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) rseq_cs 386 tools/testing/selftests/rseq/rseq-mips.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 435 tools/testing/selftests/rseq/rseq-mips.h RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) rseq_cs 460 tools/testing/selftests/rseq/rseq-mips.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 510 tools/testing/selftests/rseq/rseq-mips.h RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) rseq_cs 536 tools/testing/selftests/rseq/rseq-mips.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 592 tools/testing/selftests/rseq/rseq-mips.h RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) rseq_cs 653 tools/testing/selftests/rseq/rseq-mips.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 713 tools/testing/selftests/rseq/rseq-mips.h RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) rseq_cs 775 tools/testing/selftests/rseq/rseq-mips.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 67 tools/testing/selftests/rseq/rseq-ppc.h #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ rseq_cs 74 tools/testing/selftests/rseq/rseq-ppc.h "std %%r17, %[" __rseq_str(rseq_cs) "]\n\t" \ rseq_cs 124 tools/testing/selftests/rseq/rseq-ppc.h #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ rseq_cs 128 tools/testing/selftests/rseq/rseq-ppc.h "stw %%r17, %[" __rseq_str(rseq_cs) "]\n\t" \ rseq_cs 219 tools/testing/selftests/rseq/rseq-ppc.h RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) rseq_cs 239 tools/testing/selftests/rseq/rseq-ppc.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 279 tools/testing/selftests/rseq/rseq-ppc.h RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) rseq_cs 305 tools/testing/selftests/rseq/rseq-ppc.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 344 tools/testing/selftests/rseq/rseq-ppc.h RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) rseq_cs 363 tools/testing/selftests/rseq/rseq-ppc.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 400 tools/testing/selftests/rseq/rseq-ppc.h RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) rseq_cs 423 tools/testing/selftests/rseq/rseq-ppc.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 468 tools/testing/selftests/rseq/rseq-ppc.h RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) rseq_cs 493 tools/testing/selftests/rseq/rseq-ppc.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 539 tools/testing/selftests/rseq/rseq-ppc.h RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) rseq_cs 564 tools/testing/selftests/rseq/rseq-ppc.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 615 tools/testing/selftests/rseq/rseq-ppc.h RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) rseq_cs 639 tools/testing/selftests/rseq/rseq-ppc.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 689 tools/testing/selftests/rseq/rseq-ppc.h RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) rseq_cs 715 tools/testing/selftests/rseq/rseq-ppc.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 111 tools/testing/selftests/rseq/rseq-s390.h #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ rseq_cs 114 tools/testing/selftests/rseq/rseq-s390.h LONG_S " %%r0, %[" __rseq_str(rseq_cs) "]\n\t" \ rseq_cs 150 tools/testing/selftests/rseq/rseq-s390.h RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) rseq_cs 169 tools/testing/selftests/rseq/rseq-s390.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 213 tools/testing/selftests/rseq/rseq-s390.h RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) rseq_cs 237 tools/testing/selftests/rseq/rseq-s390.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 276 tools/testing/selftests/rseq/rseq-s390.h RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) rseq_cs 292 tools/testing/selftests/rseq/rseq-s390.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 329 tools/testing/selftests/rseq/rseq-s390.h RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) rseq_cs 351 tools/testing/selftests/rseq/rseq-s390.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 406 tools/testing/selftests/rseq/rseq-s390.h RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) rseq_cs 430 tools/testing/selftests/rseq/rseq-s390.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 482 tools/testing/selftests/rseq/rseq-s390.h RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) rseq_cs 538 tools/testing/selftests/rseq/rseq-s390.h [rseq_cs] "m" (__rseq_abi.rseq_cs), rseq_cs 85 tools/testing/selftests/rseq/rseq-x86.h #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ rseq_cs 88 tools/testing/selftests/rseq/rseq-x86.h "movq %%rax, " __rseq_str(rseq_cs) "\n\t" \ rseq_cs 607 tools/testing/selftests/rseq/rseq-x86.h #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ rseq_cs 609 tools/testing/selftests/rseq/rseq-x86.h "movl $" __rseq_str(cs_label) ", " __rseq_str(rseq_cs) "\n\t" \ rseq_cs 143 tools/testing/selftests/rseq/rseq.h __rseq_abi.rseq_cs.ptr = 0; rseq_cs 145 tools/testing/selftests/rseq/rseq.h __rseq_abi.rseq_cs.ptr.ptr32 = 0;