public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
From: Florian Weimer <fw@sourceware.org>
To: glibc-cvs@sourceware.org
Subject: [glibc] Linux: Adjust struct rseq definition to current kernel version
Date: Thu,  2 Jun 2022 14:30:27 +0000 (GMT)	[thread overview]
Message-ID: <20220602143027.64F8C396E067@sourceware.org> (raw)

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=4b527650e0d559a5f693275c598667e06cd6455c

commit 4b527650e0d559a5f693275c598667e06cd6455c
Author: Florian Weimer <fweimer@redhat.com>
Date:   Thu Jun 2 16:29:55 2022 +0200

    Linux: Adjust struct rseq definition to current kernel version
    
    This definition is only used as a fallback with old kernel headers.
    The change follows kernel commit bfdf4e6208051ed7165b2e92035b4bf11
    ("rseq: Remove broken uapi field layout on 32-bit little endian").
    
    Reviewed-by: Carlos O'Donell <carlos@redhat.com>

Diff:
---
 sysdeps/unix/sysv/linux/sys/rseq.h | 28 ++++++----------------------
 1 file changed, 6 insertions(+), 22 deletions(-)

diff --git a/sysdeps/unix/sysv/linux/sys/rseq.h b/sysdeps/unix/sysv/linux/sys/rseq.h
index 8533782cf4..899d534df8 100644
--- a/sysdeps/unix/sysv/linux/sys/rseq.h
+++ b/sysdeps/unix/sysv/linux/sys/rseq.h
@@ -24,7 +24,6 @@
 #include <stddef.h>
 #include <stdint.h>
 #include <sys/cdefs.h>
-#include <bits/endian.h>
 
 #ifdef __has_include
 # if __has_include ("linux/rseq.h")
@@ -129,28 +128,13 @@ struct rseq
        targeted by the rseq_cs.  Also needs to be set to NULL by user-space
        before reclaiming memory that contains the targeted struct rseq_cs.
 
-       Read and set by the kernel.  Set by user-space with single-copy
-       atomicity semantics.  This field should only be updated by the
-       thread which registered this data structure.  Aligned on 64-bit.  */
-    union
-      {
-        uint64_t ptr64;
-# ifdef __LP64__
-        uint64_t ptr;
-# else /* __LP64__ */
-        struct
-          {
-#if __BYTE_ORDER == __BIG_ENDIAN
-            uint32_t padding; /* Initialized to zero.  */
-            uint32_t ptr32;
-#  else /* LITTLE */
-            uint32_t ptr32;
-            uint32_t padding; /* Initialized to zero.  */
-#  endif /* ENDIAN */
-          } ptr;
-# endif /* __LP64__ */
-      } rseq_cs;
+       Read and set by the kernel. Set by user-space with single-copy
+       atomicity semantics. This field should only be updated by the
+       thread which registered this data structure. Aligned on 64-bit.
 
+       32-bit architectures should update the low order bits of the
+       rseq_cs field, leaving the high order bits initialized to 0.  */
+    uint64_t rseq_cs;
     /* Restartable sequences flags field.
 
        This field should only be updated by the thread which


                 reply	other threads:[~2022-06-02 14:30 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220602143027.64F8C396E067@sourceware.org \
    --to=fw@sourceware.org \
    --cc=glibc-cvs@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).