Home
last modified time | relevance | path

Searched refs:rseq_cs (Results 1 – 11 of 11) sorted by relevance

/linux-6.1.9/kernel/
Drseq.c123 static int rseq_get_rseq_cs(struct task_struct *t, struct rseq_cs *rseq_cs) in rseq_get_rseq_cs() argument
125 struct rseq_cs __user *urseq_cs; in rseq_get_rseq_cs()
132 if (get_user(ptr, &t->rseq->rseq_cs)) in rseq_get_rseq_cs()
135 if (copy_from_user(&ptr, &t->rseq->rseq_cs, sizeof(ptr))) in rseq_get_rseq_cs()
139 memset(rseq_cs, 0, sizeof(*rseq_cs)); in rseq_get_rseq_cs()
144 urseq_cs = (struct rseq_cs __user *)(unsigned long)ptr; in rseq_get_rseq_cs()
145 if (copy_from_user(rseq_cs, urseq_cs, sizeof(*rseq_cs))) in rseq_get_rseq_cs()
148 if (rseq_cs->start_ip >= TASK_SIZE || in rseq_get_rseq_cs()
149 rseq_cs->start_ip + rseq_cs->post_commit_offset >= TASK_SIZE || in rseq_get_rseq_cs()
150 rseq_cs->abort_ip >= TASK_SIZE || in rseq_get_rseq_cs()
[all …]
/linux-6.1.9/tools/testing/selftests/rseq/
Drseq-arm.h115 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument
118 "str r0, %[" __rseq_str(rseq_cs) "]\n\t" \
163 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in rseq_cmpeqv_storev()
186 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_cmpeqv_storev()
231 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in rseq_cmpnev_storeoffp_load()
257 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_cmpnev_storeoffp_load()
301 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in rseq_addv()
319 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_addv()
358 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in rseq_cmpeqv_trystorev_storev()
384 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_cmpeqv_trystorev_storev()
[all …]
Drseq-ppc.h70 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument
77 "std %%r17, %[" __rseq_str(rseq_cs) "]\n\t" \
130 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument
134 RSEQ_STORE_INT(rseq_cs) "%%r17, %[" __rseq_str(rseq_cs) "]\n\t" \
225 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in rseq_cmpeqv_storev()
245 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_cmpeqv_storev()
290 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in rseq_cmpnev_storeoffp_load()
316 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_cmpnev_storeoffp_load()
360 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in rseq_addv()
379 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_addv()
[all …]
Drseq-riscv.h87 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument
90 REG_S RSEQ_ASM_TMP_REG_1 ", %[" __rseq_str(rseq_cs) "]\n" \
183 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in rseq_cmpeqv_storev()
198 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_cmpeqv_storev()
237 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in rseq_cmpnev_storeoffp_load()
255 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_cmpnev_storeoffp_load()
291 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in rseq_addv()
305 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_addv()
339 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in rseq_cmpeqv_trystorev_storev()
356 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_cmpeqv_trystorev_storev()
[all …]
Drseq-mips.h121 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument
124 LONG_S " $4, %[" __rseq_str(rseq_cs) "]\n\t" \
170 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in rseq_cmpeqv_storev()
191 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_cmpeqv_storev()
231 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in rseq_cmpnev_storeoffp_load()
255 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_cmpnev_storeoffp_load()
294 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in rseq_addv()
312 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_addv()
348 RSEQ_ASM_STORE_RSEQ_CS(1, 3f, rseq_cs) in rseq_cmpeqv_trystorev_storev()
372 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_cmpeqv_trystorev_storev()
[all …]
Drseq-s390.h111 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument
114 LONG_S " %%r0, %[" __rseq_str(rseq_cs) "]\n\t" \
150 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in rseq_cmpeqv_storev()
169 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_cmpeqv_storev()
218 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in rseq_cmpnev_storeoffp_load()
242 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_cmpnev_storeoffp_load()
286 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in rseq_addv()
302 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_addv()
342 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs) in rseq_cmpeqv_trystorev_storev()
364 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_cmpeqv_trystorev_storev()
[all …]
Drseq-arm64.h127 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument
132 " str " RSEQ_ASM_TMP_REG ", %[" __rseq_str(rseq_cs) "]\n" \
219 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in rseq_cmpeqv_storev()
234 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_cmpeqv_storev()
277 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in rseq_cmpnev_storeoffp_load()
295 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_cmpnev_storeoffp_load()
336 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in rseq_addv()
350 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_addv()
387 RSEQ_ASM_STORE_RSEQ_CS(2, 1b, rseq_cs) in rseq_cmpeqv_trystorev_storev()
404 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in rseq_cmpeqv_trystorev_storev()
[all …]
Drseq-abi.h128 } rseq_cs; member
Drseq.h158 RSEQ_WRITE_ONCE(rseq_get_abi()->rseq_cs.arch.ptr, 0); in rseq_clear_rseq_cs()
Drseq-x86.h87 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument
90 "movq %%rax, " __rseq_str(rseq_cs) "\n\t" \
697 #define RSEQ_ASM_STORE_RSEQ_CS(label, cs_label, rseq_cs) \ argument
699 "movl $" __rseq_str(cs_label) ", " __rseq_str(rseq_cs) "\n\t" \
/linux-6.1.9/include/uapi/linux/
Drseq.h45 struct rseq_cs { struct
112 __u64 rseq_cs; member