Fix: use int rather than off_t for offsets
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 21 Jan 2022 20:17:33 +0000 (15:17 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 21 Jan 2022 20:17:33 +0000 (15:17 -0500)
off_t can be a 64-bit type on 32-bit systems, leading to issues on
32-bit big endian systems (ppc32) where the inline assembler expects a
32-bit register.

There is no point in using off_t here.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I9936a1d8e9b64a51f3e1491f1a23204f1cd9c120

include/rseq/rseq-arm.h
include/rseq/rseq-arm64.h
include/rseq/rseq-mips.h
include/rseq/rseq-ppc.h
include/rseq/rseq-s390.h
include/rseq/rseq-skip.h
include/rseq/rseq-x86.h
tests/basic_percpu_ops_test.c
tests/param_test.c

index 9ffce22eb400dee4849700a3d60af0e2d8c4dc4e..c6fa158acc885f1a57c869f847b2c2538eca70a3 100644 (file)
@@ -218,7 +218,7 @@ error2:
 
 static inline __attribute__((always_inline))
 int rseq_cmpnev_storeoffp_load(intptr_t *v, intptr_t expectnot,
-                              off_t voffp, intptr_t *load, int cpu)
+                              int voffp, intptr_t *load, int cpu)
 {
        RSEQ_INJECT_C(9)
 
index 3d83d7febec3c89228205d10472fc04c6572463b..b61b228481dcfa16de736ec7df71d9e5c19a5171 100644 (file)
@@ -265,7 +265,7 @@ error2:
 
 static inline __attribute__((always_inline))
 int rseq_cmpnev_storeoffp_load(intptr_t *v, intptr_t expectnot,
-                              off_t voffp, intptr_t *load, int cpu)
+                              int voffp, intptr_t *load, int cpu)
 {
        RSEQ_INJECT_C(9)
 
index dd10677b3512485d065065f6a199c583002e5a78..ca0c8e0fb7363cb688e6258725c94ae4be0a0c34 100644 (file)
@@ -218,7 +218,7 @@ error2:
 
 static inline __attribute__((always_inline))
 int rseq_cmpnev_storeoffp_load(intptr_t *v, intptr_t expectnot,
-                              off_t voffp, intptr_t *load, int cpu)
+                              int voffp, intptr_t *load, int cpu)
 {
        RSEQ_INJECT_C(9)
 
index 13c6fab911244ee5374309ec6df4087dc1e0a671..387dc89844be7d856663a50d7828ac0c137221ea 100644 (file)
@@ -279,7 +279,7 @@ error2:
 
 static inline __attribute__((always_inline))
 int rseq_cmpnev_storeoffp_load(intptr_t *v, intptr_t expectnot,
-                              off_t voffp, intptr_t *load, int cpu)
+                              int voffp, intptr_t *load, int cpu)
 {
        RSEQ_INJECT_C(9)
 
index 0c1edb585dbefdd8a7c4617077f2cfa0931828fa..aa8ebab9f7724bb6c79158c8d49877f88f40f619 100644 (file)
@@ -207,7 +207,7 @@ error2:
  */
 static inline __attribute__((always_inline))
 int rseq_cmpnev_storeoffp_load(intptr_t *v, intptr_t expectnot,
-                              off_t voffp, intptr_t *load, int cpu)
+                              int voffp, intptr_t *load, int cpu)
 {
        RSEQ_INJECT_C(9)
 
index 8c49810071bf8ac96c2a78eff5766d34733ea3bd..c5592fbf3cea4b387d17eb8db0efe6078c1684cb 100644 (file)
@@ -13,7 +13,7 @@ int rseq_cmpeqv_storev(intptr_t *v, intptr_t expect, intptr_t newv, int cpu)
 
 static inline __attribute__((always_inline))
 int rseq_cmpnev_storeoffp_load(intptr_t *v, intptr_t expectnot,
-                              off_t voffp, intptr_t *load, int cpu)
+                              int voffp, intptr_t *load, int cpu)
 {
        return -1;
 }
@@ -65,7 +65,7 @@ int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect,
 }
 
 static inline __attribute__((always_inline))
-int rseq_deref_loadoffp(void *p, off_t voffp, intptr_t *load, int cpu)
+int rseq_deref_loadoffp(void *p, int voffp, intptr_t *load, int cpu)
 {
        return -1;
 }
index b2f13ee5031955c8ac94e7de6784af683e416770..a7ed624c6e7add2b8058f04e89fe2f195fef9bb9 100644 (file)
@@ -178,7 +178,7 @@ error2:
  */
 static inline __attribute__((always_inline))
 int rseq_cmpnev_storeoffp_load(intptr_t *v, intptr_t expectnot,
-                              off_t voffp, intptr_t *load, int cpu)
+                              int voffp, intptr_t *load, int cpu)
 {
        RSEQ_INJECT_C(9)
 
@@ -300,7 +300,7 @@ error1:
  *  *pval += inc;
  */
 static inline __attribute__((always_inline))
-int rseq_offset_deref_addv(intptr_t *ptr, off_t off, intptr_t inc, int cpu)
+int rseq_offset_deref_addv(intptr_t *ptr, int off, intptr_t inc, int cpu)
 {
        RSEQ_INJECT_C(9)
 
@@ -636,7 +636,7 @@ int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect,
  * into @load.
  */
 static inline __attribute__((always_inline))
-int rseq_deref_loadoffp(intptr_t *p, off_t voffp, intptr_t *load, int cpu)
+int rseq_deref_loadoffp(intptr_t *p, int voffp, intptr_t *load, int cpu)
 {
        RSEQ_INJECT_C(9)
 
@@ -844,7 +844,7 @@ error2:
  */
 static inline __attribute__((always_inline))
 int rseq_cmpnev_storeoffp_load(intptr_t *v, intptr_t expectnot,
-                              off_t voffp, intptr_t *load, int cpu)
+                              int voffp, intptr_t *load, int cpu)
 {
        RSEQ_INJECT_C(9)
 
@@ -1421,7 +1421,7 @@ error2:
  * into @load.
  */
 static inline __attribute__((always_inline))
-int rseq_deref_loadoffp(intptr_t *p, off_t voffp, intptr_t *load, int cpu)
+int rseq_deref_loadoffp(intptr_t *p, int voffp, intptr_t *load, int cpu)
 {
        RSEQ_INJECT_C(9)
 
index 9b6bc22780d3f10cd3db90e323bbcdfe16cbd065..9aa0d4344b98e678bfb26e14883a9121df3c544d 100644 (file)
@@ -179,8 +179,7 @@ static struct percpu_list_node *this_cpu_list_pop(struct percpu_list *list,
        for (;;) {
                struct percpu_list_node *head;
                intptr_t *targetptr, expectnot, *load;
-               off_t offset;
-               int ret, cpu;
+               int offset, ret, cpu;
 
                cpu = rseq_cpu_start();
                targetptr = (intptr_t *)&list->c[cpu].head;
index 5ed560ec022b283227af17eef892b8737b889773..a2929729c76a2dabbd0346f7ea773bbc66b96df1 100644 (file)
@@ -562,8 +562,7 @@ static struct percpu_list_node *this_cpu_list_pop(struct percpu_list *list,
        for (;;) {
                struct percpu_list_node *head;
                intptr_t *targetptr, expectnot, *load;
-               off_t offset;
-               int ret;
+               int offset, ret;
 
                cpu = rseq_cpu_start();
                targetptr = (intptr_t *)&list->c[cpu].head;
This page took 0.041452 seconds and 4 git commands to generate.