On 2020年10月26日 19:04, Jan Kiszka via Xenomai wrote:
From: Fino Meng <fino.m...@linux.intel.com>

compat_timex related definitions moved from compat code into normal timekeeping 
code.
see 4d5f007e in upstream Linux kernel.

Signed-off-by: Fino Meng <fino.m...@linux.intel.com>
Signed-off-by: Mingliang Hu <mingliang...@intel.com>
[Jan: account for older kernel versions]
Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>
---
  include/cobalt/kernel/compat.h                       | 4 ++--
  kernel/cobalt/include/asm-generic/xenomai/wrappers.h | 4 ++++
  kernel/cobalt/posix/compat.c                         | 4 ++--
  kernel/cobalt/posix/syscall32.c                      | 2 +-
  kernel/cobalt/posix/syscall32.h                      | 2 +-
  5 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/include/cobalt/kernel/compat.h b/include/cobalt/kernel/compat.h
index 05754cba89..c9cb84f721 100644
--- a/include/cobalt/kernel/compat.h
+++ b/include/cobalt/kernel/compat.h
@@ -105,9 +105,9 @@ int sys32_put_timeval(struct compat_timeval __user *ctv,
                      const struct timeval *tv);

  int sys32_get_timex(struct timex *tx,
-                   const struct compat_timex __user *ctx);
+                   const struct old_timex32 __user *ctx);

-int sys32_put_timex(struct compat_timex __user *ctx,
+int sys32_put_timex(struct old_timex32 __user *ctx,
                    const struct timex *tx);

  ssize_t sys32_get_fdset(fd_set *fds, const compat_fd_set __user *cfds,
diff --git a/kernel/cobalt/include/asm-generic/xenomai/wrappers.h 
b/kernel/cobalt/include/asm-generic/xenomai/wrappers.h
index 23993dcc15..de5a992850 100644
--- a/kernel/cobalt/include/asm-generic/xenomai/wrappers.h
+++ b/kernel/cobalt/include/asm-generic/xenomai/wrappers.h
@@ -156,4 +156,8 @@ devm_hwmon_device_register_with_groups(struct device *dev, 
const char *name,
  #error "Xenomai/cobalt requires Linux kernel 3.10 or above"
  #endif /* < 3.10 */

+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,1,0)
+#define old_timex32            compat_timex
+#endif
+
  #endif /* _COBALT_ASM_GENERIC_WRAPPERS_H */
diff --git a/kernel/cobalt/posix/compat.c b/kernel/cobalt/posix/compat.c
index 17968bff1d..a31ec04578 100644
--- a/kernel/cobalt/posix/compat.c
+++ b/kernel/cobalt/posix/compat.c
@@ -81,7 +81,7 @@ int sys32_put_timeval(struct compat_timeval __user *ctv,
  EXPORT_SYMBOL_GPL(sys32_put_timeval);

  int sys32_get_timex(struct timex *tx,
-                   const struct compat_timex __user *ctx)
+                   const struct old_timex32 __user *ctx)
  {
        memset(tx, 0, sizeof(*tx));

@@ -112,7 +112,7 @@ int sys32_get_timex(struct timex *tx,
  }
  EXPORT_SYMBOL_GPL(sys32_get_timex);

-int sys32_put_timex(struct compat_timex __user *ctx,
+int sys32_put_timex(struct old_timex32 __user *ctx,
                    const struct timex *tx)
  {
        if (!access_wok(ctx, sizeof(*ctx)) ||
diff --git a/kernel/cobalt/posix/syscall32.c b/kernel/cobalt/posix/syscall32.c
index faa7ef53a6..c2fd6a1e05 100644
--- a/kernel/cobalt/posix/syscall32.c
+++ b/kernel/cobalt/posix/syscall32.c
@@ -172,7 +172,7 @@ COBALT_SYSCALL32emu(clock_settime, current,
  }

  COBALT_SYSCALL32emu(clock_adjtime, current,
-                   (clockid_t clock_id, struct compat_timex __user *u_tx))
+                   (clockid_t clock_id, struct old_timex32 __user *u_tx))
  {
        struct timex tx;
        int ret;
diff --git a/kernel/cobalt/posix/syscall32.h b/kernel/cobalt/posix/syscall32.h
index 34904f96bd..eb3e4bd300 100644
--- a/kernel/cobalt/posix/syscall32.h
+++ b/kernel/cobalt/posix/syscall32.h
@@ -65,7 +65,7 @@ COBALT_SYSCALL32emu_DECL(clock_settime,

  COBALT_SYSCALL32emu_DECL(clock_adjtime,
                         (clockid_t clock_id,
-                         struct compat_timex __user *u_tx));
+                         struct old_timex32 __user *u_tx));

  COBALT_SYSCALL32emu_DECL(clock_nanosleep,
                         (clockid_t clock_id, int flags,


After 5.4 is ready, i will try to verify it on arm, meanwhile, i also need to have a look how musl works for xenomai.

chensong



Reply via email to