The branch main has been updated by dchagin:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=75cb2382b84d2a7c385e98a18da209236701494e

commit 75cb2382b84d2a7c385e98a18da209236701494e
Author:     Dmitry Chagin <dcha...@freebsd.org>
AuthorDate: 2021-07-20 11:40:24 +0000
Commit:     Dmitry Chagin <dcha...@freebsd.org>
CommitDate: 2021-07-20 11:40:24 +0000

    linux(4): Factor out the futex_wait() op into linux_futex_wait().
    
    MFC after:              2 weeks
---
 sys/compat/linux/linux_futex.c | 36 ++++++++++++------------------------
 1 file changed, 12 insertions(+), 24 deletions(-)

diff --git a/sys/compat/linux/linux_futex.c b/sys/compat/linux/linux_futex.c
index a32542b16a8a..1858c573a576 100644
--- a/sys/compat/linux/linux_futex.c
+++ b/sys/compat/linux/linux_futex.c
@@ -215,8 +215,6 @@ static int futex_get(uint32_t *, struct waiting_proc **, 
struct futex **,
 static int futex_sleep(struct futex *, struct waiting_proc *, struct timespec 
*);
 static int futex_wake(struct futex *, int, uint32_t);
 static int futex_requeue(struct futex *, int, struct futex *, int);
-static int futex_wait(struct futex *, struct waiting_proc *, struct timespec *,
-    uint32_t);
 static void futex_lock(struct futex *);
 static void futex_unlock(struct futex *);
 static int futex_atomic_op(struct thread *, int, uint32_t *);
@@ -554,27 +552,6 @@ futex_requeue(struct futex *f, int nrwake, struct futex 
*f2,
        return (count);
 }
 
-static int
-futex_wait(struct futex *f, struct waiting_proc *wp, struct timespec *ts,
-    uint32_t bitset)
-{
-       int error;
-
-       if (bitset == 0) {
-               futex_put(f, wp);
-               return (EINVAL);
-       }
-
-       f->f_bitset = bitset;
-       error = futex_sleep(f, wp, ts);
-       if (error)
-               LIN_SDT_PROBE1(futex, futex_wait, sleep_error, error);
-       if (error == EWOULDBLOCK)
-               error = ETIMEDOUT;
-
-       return (error);
-}
-
 static int
 futex_atomic_op(struct thread *td, int encoded_op, uint32_t *uaddr)
 {
@@ -1015,7 +992,18 @@ retry:
                return (EWOULDBLOCK);
        }
 
-       return (futex_wait(f, wp, args->ts, args->val3));
+       if (args->val3 == 0) {
+               futex_put(f, wp);
+               return (EINVAL);
+       }
+
+       f->f_bitset = args->val3;
+       error = futex_sleep(f, wp, args->ts);
+       if (error != 0)
+               LIN_SDT_PROBE1(futex, futex_wait, sleep_error, error);
+       if (error == EWOULDBLOCK)
+               error = ETIMEDOUT;
+       return (error);
 }
 
 int
_______________________________________________
dev-commits-src-main@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-main
To unsubscribe, send any mail to "dev-commits-src-main-unsubscr...@freebsd.org"

Reply via email to