* [PATCH v4 3/5] y2038: cobalt/posix/muqueue: Adding mq_timedreceive64
@ 2021-08-12 16:28 Florian Bezdeka
2021-08-13 6:53 ` Jan Kiszka
0 siblings, 1 reply; 3+ messages in thread
From: Florian Bezdeka @ 2021-08-12 16:28 UTC (permalink / raw)
To: xenomai
From: Song Chen <chensong_2000@189.cn>
Add a syscall specific for mq_timedreceive64 with 64bit time_t.
Signed-off-by: Song Chen <chensong_2000@189.cn>
[Florian:
- Reformat commit msg
- relocate code
- tracing
- fix syscall declarations
]
Signed-off-by: Florian Bezdeka <florian.bezdeka@siemens.com>
---
@Jan: This should replace 76607e1a7237 in next. Other patches of the
same series were not affected.
Changes in v4:
- Fixed COBALT_SYSCALL vs. COBALT_SYSCALL_DECL
include/cobalt/uapi/syscall.h | 1 +
kernel/cobalt/posix/mqueue.c | 28 +++++++++++++++++++++++++++-
kernel/cobalt/posix/mqueue.h | 10 ++++++++++
kernel/cobalt/posix/syscall32.c | 8 ++++++++
kernel/cobalt/posix/syscall32.h | 5 +++++
kernel/cobalt/trace/cobalt-posix.h | 3 ++-
6 files changed, 53 insertions(+), 2 deletions(-)
diff --git a/include/cobalt/uapi/syscall.h b/include/cobalt/uapi/syscall.h
index 464e170cc..c27d6d044 100644
--- a/include/cobalt/uapi/syscall.h
+++ b/include/cobalt/uapi/syscall.h
@@ -130,6 +130,7 @@
#define sc_cobalt_clock_adjtime64 107
#define sc_cobalt_mutex_timedlock64 108
#define sc_cobalt_mq_timedsend64 109
+#define sc_cobalt_mq_timedreceive64 110
#define __NR_COBALT_SYSCALLS 128 /* Power of 2 */
diff --git a/kernel/cobalt/posix/mqueue.c b/kernel/cobalt/posix/mqueue.c
index a1828919c..ebe7cf7b0 100644
--- a/kernel/cobalt/posix/mqueue.c
+++ b/kernel/cobalt/posix/mqueue.c
@@ -629,7 +629,7 @@ redo:
ret = fetch_timeout(&ts, u_ts);
if (ret)
return ERR_PTR(ret);
- if (ts.tv_nsec >= ONE_BILLION)
+ if (!timespec64_valid(&ts))
return ERR_PTR(-EINVAL);
to = ts2ns(&ts) + 1;
tmode = XN_REALTIME;
@@ -1013,6 +1013,24 @@ fail:
return ret;
}
+int __cobalt_mq_timedreceive64(mqd_t uqd, void __user *u_buf,
+ ssize_t __user *u_len,
+ unsigned int __user *u_prio,
+ const void __user *u_ts)
+{
+ ssize_t len;
+ int ret;
+
+ ret = cobalt_copy_from_user(&len, u_len, sizeof(len));
+ if (ret)
+ return ret;
+
+ ret = __cobalt_mq_timedreceive(uqd, u_buf, &len, u_prio, u_ts,
+ u_ts ? mq_fetch_timeout64 : NULL);
+
+ return ret ?: cobalt_copy_to_user(u_len, &len, sizeof(*u_len));
+}
+
COBALT_SYSCALL(mq_timedreceive, primary,
(mqd_t uqd, void __user *u_buf,
ssize_t __user *u_len,
@@ -1031,3 +1049,11 @@ COBALT_SYSCALL(mq_timedreceive, primary,
return ret ?: cobalt_copy_to_user(u_len, &len, sizeof(*u_len));
}
+
+COBALT_SYSCALL(mq_timedreceive64, primary,
+ (mqd_t uqd, void __user *u_buf, ssize_t __user *u_len,
+ unsigned int __user *u_prio,
+ const struct __kernel_timespec __user *u_ts))
+{
+ return __cobalt_mq_timedreceive64(uqd, u_buf, u_len, u_prio, u_ts);
+}
diff --git a/kernel/cobalt/posix/mqueue.h b/kernel/cobalt/posix/mqueue.h
index f16774a3b..b4b263158 100644
--- a/kernel/cobalt/posix/mqueue.h
+++ b/kernel/cobalt/posix/mqueue.h
@@ -50,6 +50,11 @@ int __cobalt_mq_timedreceive(mqd_t uqd, void __user *u_buf,
int (*fetch_timeout)(struct timespec64 *ts,
const void __user *u_ts));
+int __cobalt_mq_timedreceive64(mqd_t uqd, void __user *u_buf,
+ ssize_t __user *u_len,
+ unsigned int __user *u_prio,
+ const void __user *u_ts);
+
int __cobalt_mq_notify(mqd_t fd, const struct sigevent *evp);
COBALT_SYSCALL_DECL(mq_open,
@@ -76,6 +81,11 @@ COBALT_SYSCALL_DECL(mq_timedreceive,
unsigned int __user *u_prio,
const struct __user_old_timespec __user *u_ts));
+COBALT_SYSCALL_DECL(mq_timedreceive64,
+ (mqd_t uqd, void __user *u_buf, ssize_t __user *u_len,
+ unsigned int __user *u_prio,
+ const struct __kernel_timespec __user *u_ts));
+
COBALT_SYSCALL_DECL(mq_notify,
(mqd_t fd, const struct sigevent *__user evp));
diff --git a/kernel/cobalt/posix/syscall32.c b/kernel/cobalt/posix/syscall32.c
index d3f87c246..d52be0207 100644
--- a/kernel/cobalt/posix/syscall32.c
+++ b/kernel/cobalt/posix/syscall32.c
@@ -354,6 +354,14 @@ COBALT_SYSCALL32emu(mq_timedreceive, primary,
return ret ?: cobalt_copy_to_user(u_len, &clen, sizeof(*u_len));
}
+COBALT_SYSCALL32emu(mq_timedreceive64, primary,
+ (mqd_t uqd, void __user *u_buf, ssize_t __user *u_len,
+ unsigned int __user *u_prio,
+ const struct __kernel_timespec __user *u_ts))
+{
+ return __cobalt_mq_timedreceive64(uqd, u_buf, u_len, u_prio, u_ts);
+}
+
static inline int mq_fetch_timeout(struct timespec64 *ts,
const void __user *u_ts)
{
diff --git a/kernel/cobalt/posix/syscall32.h b/kernel/cobalt/posix/syscall32.h
index 0e552202e..006054e85 100644
--- a/kernel/cobalt/posix/syscall32.h
+++ b/kernel/cobalt/posix/syscall32.h
@@ -132,6 +132,11 @@ COBALT_SYSCALL32emu_DECL(mq_timedreceive,
unsigned int __user *u_prio,
const struct old_timespec32 __user *u_ts));
+COBALT_SYSCALL32emu_DECL(mq_timedreceive64,
+ (mqd_t uqd, void __user *u_buf, ssize_t __user *u_len,
+ unsigned int __user *u_prio,
+ const struct __kernel_timespec __user *u_ts));
+
COBALT_SYSCALL32emu_DECL(mq_notify,
(mqd_t fd, const struct compat_sigevent *__user u_cev));
diff --git a/kernel/cobalt/trace/cobalt-posix.h b/kernel/cobalt/trace/cobalt-posix.h
index d67a6ce09..b046c8a0e 100644
--- a/kernel/cobalt/trace/cobalt-posix.h
+++ b/kernel/cobalt/trace/cobalt-posix.h
@@ -162,7 +162,8 @@
__cobalt_symbolic_syscall(clock_getres64), \
__cobalt_symbolic_syscall(clock_adjtime64), \
__cobalt_symbolic_syscall(mutex_timedlock64), \
- __cobalt_symbolic_syscall(mq_timedsend64))
+ __cobalt_symbolic_syscall(mq_timedsend64), \
+ __cobalt_symbolic_syscall(mq_timedreceive64))
DECLARE_EVENT_CLASS(cobalt_syscall_entry,
--
2.30.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v4 3/5] y2038: cobalt/posix/muqueue: Adding mq_timedreceive64
2021-08-12 16:28 [PATCH v4 3/5] y2038: cobalt/posix/muqueue: Adding mq_timedreceive64 Florian Bezdeka
@ 2021-08-13 6:53 ` Jan Kiszka
2021-08-13 7:17 ` Jan Kiszka
0 siblings, 1 reply; 3+ messages in thread
From: Jan Kiszka @ 2021-08-13 6:53 UTC (permalink / raw)
To: Florian Bezdeka, xenomai
On 12.08.21 18:28, Florian Bezdeka wrote:
> From: Song Chen <chensong_2000@189.cn>
>
> Add a syscall specific for mq_timedreceive64 with 64bit time_t.
>
> Signed-off-by: Song Chen <chensong_2000@189.cn>
> [Florian:
> - Reformat commit msg
> - relocate code
> - tracing
> - fix syscall declarations
> ]
> Signed-off-by: Florian Bezdeka <florian.bezdeka@siemens.com>
> ---
>
> @Jan: This should replace 76607e1a7237 in next. Other patches of the
> same series were not affected.
>
> Changes in v4:
> - Fixed COBALT_SYSCALL vs. COBALT_SYSCALL_DECL
>
> include/cobalt/uapi/syscall.h | 1 +
> kernel/cobalt/posix/mqueue.c | 28 +++++++++++++++++++++++++++-
> kernel/cobalt/posix/mqueue.h | 10 ++++++++++
> kernel/cobalt/posix/syscall32.c | 8 ++++++++
> kernel/cobalt/posix/syscall32.h | 5 +++++
> kernel/cobalt/trace/cobalt-posix.h | 3 ++-
> 6 files changed, 53 insertions(+), 2 deletions(-)
>
> diff --git a/include/cobalt/uapi/syscall.h b/include/cobalt/uapi/syscall.h
> index 464e170cc..c27d6d044 100644
> --- a/include/cobalt/uapi/syscall.h
> +++ b/include/cobalt/uapi/syscall.h
> @@ -130,6 +130,7 @@
> #define sc_cobalt_clock_adjtime64 107
> #define sc_cobalt_mutex_timedlock64 108
> #define sc_cobalt_mq_timedsend64 109
> +#define sc_cobalt_mq_timedreceive64 110
>
> #define __NR_COBALT_SYSCALLS 128 /* Power of 2 */
>
> diff --git a/kernel/cobalt/posix/mqueue.c b/kernel/cobalt/posix/mqueue.c
> index a1828919c..ebe7cf7b0 100644
> --- a/kernel/cobalt/posix/mqueue.c
> +++ b/kernel/cobalt/posix/mqueue.c
> @@ -629,7 +629,7 @@ redo:
> ret = fetch_timeout(&ts, u_ts);
> if (ret)
> return ERR_PTR(ret);
> - if (ts.tv_nsec >= ONE_BILLION)
> + if (!timespec64_valid(&ts))
> return ERR_PTR(-EINVAL);
> to = ts2ns(&ts) + 1;
> tmode = XN_REALTIME;
> @@ -1013,6 +1013,24 @@ fail:
> return ret;
> }
>
> +int __cobalt_mq_timedreceive64(mqd_t uqd, void __user *u_buf,
> + ssize_t __user *u_len,
> + unsigned int __user *u_prio,
> + const void __user *u_ts)
> +{
> + ssize_t len;
> + int ret;
> +
> + ret = cobalt_copy_from_user(&len, u_len, sizeof(len));
> + if (ret)
> + return ret;
> +
> + ret = __cobalt_mq_timedreceive(uqd, u_buf, &len, u_prio, u_ts,
> + u_ts ? mq_fetch_timeout64 : NULL);
> +
> + return ret ?: cobalt_copy_to_user(u_len, &len, sizeof(*u_len));
> +}
> +
> COBALT_SYSCALL(mq_timedreceive, primary,
> (mqd_t uqd, void __user *u_buf,
> ssize_t __user *u_len,
> @@ -1031,3 +1049,11 @@ COBALT_SYSCALL(mq_timedreceive, primary,
>
> return ret ?: cobalt_copy_to_user(u_len, &len, sizeof(*u_len));
> }
> +
> +COBALT_SYSCALL(mq_timedreceive64, primary,
> + (mqd_t uqd, void __user *u_buf, ssize_t __user *u_len,
> + unsigned int __user *u_prio,
> + const struct __kernel_timespec __user *u_ts))
> +{
> + return __cobalt_mq_timedreceive64(uqd, u_buf, u_len, u_prio, u_ts);
> +}
> diff --git a/kernel/cobalt/posix/mqueue.h b/kernel/cobalt/posix/mqueue.h
> index f16774a3b..b4b263158 100644
> --- a/kernel/cobalt/posix/mqueue.h
> +++ b/kernel/cobalt/posix/mqueue.h
> @@ -50,6 +50,11 @@ int __cobalt_mq_timedreceive(mqd_t uqd, void __user *u_buf,
> int (*fetch_timeout)(struct timespec64 *ts,
> const void __user *u_ts));
>
> +int __cobalt_mq_timedreceive64(mqd_t uqd, void __user *u_buf,
> + ssize_t __user *u_len,
> + unsigned int __user *u_prio,
> + const void __user *u_ts);
> +
> int __cobalt_mq_notify(mqd_t fd, const struct sigevent *evp);
>
> COBALT_SYSCALL_DECL(mq_open,
> @@ -76,6 +81,11 @@ COBALT_SYSCALL_DECL(mq_timedreceive,
> unsigned int __user *u_prio,
> const struct __user_old_timespec __user *u_ts));
>
> +COBALT_SYSCALL_DECL(mq_timedreceive64,
> + (mqd_t uqd, void __user *u_buf, ssize_t __user *u_len,
> + unsigned int __user *u_prio,
> + const struct __kernel_timespec __user *u_ts));
> +
> COBALT_SYSCALL_DECL(mq_notify,
> (mqd_t fd, const struct sigevent *__user evp));
>
> diff --git a/kernel/cobalt/posix/syscall32.c b/kernel/cobalt/posix/syscall32.c
> index d3f87c246..d52be0207 100644
> --- a/kernel/cobalt/posix/syscall32.c
> +++ b/kernel/cobalt/posix/syscall32.c
> @@ -354,6 +354,14 @@ COBALT_SYSCALL32emu(mq_timedreceive, primary,
> return ret ?: cobalt_copy_to_user(u_len, &clen, sizeof(*u_len));
> }
>
> +COBALT_SYSCALL32emu(mq_timedreceive64, primary,
> + (mqd_t uqd, void __user *u_buf, ssize_t __user *u_len,
> + unsigned int __user *u_prio,
> + const struct __kernel_timespec __user *u_ts))
> +{
> + return __cobalt_mq_timedreceive64(uqd, u_buf, u_len, u_prio, u_ts);
> +}
> +
> static inline int mq_fetch_timeout(struct timespec64 *ts,
> const void __user *u_ts)
> {
> diff --git a/kernel/cobalt/posix/syscall32.h b/kernel/cobalt/posix/syscall32.h
> index 0e552202e..006054e85 100644
> --- a/kernel/cobalt/posix/syscall32.h
> +++ b/kernel/cobalt/posix/syscall32.h
> @@ -132,6 +132,11 @@ COBALT_SYSCALL32emu_DECL(mq_timedreceive,
> unsigned int __user *u_prio,
> const struct old_timespec32 __user *u_ts));
>
> +COBALT_SYSCALL32emu_DECL(mq_timedreceive64,
> + (mqd_t uqd, void __user *u_buf, ssize_t __user *u_len,
> + unsigned int __user *u_prio,
> + const struct __kernel_timespec __user *u_ts));
> +
> COBALT_SYSCALL32emu_DECL(mq_notify,
> (mqd_t fd, const struct compat_sigevent *__user u_cev));
>
> diff --git a/kernel/cobalt/trace/cobalt-posix.h b/kernel/cobalt/trace/cobalt-posix.h
> index d67a6ce09..b046c8a0e 100644
> --- a/kernel/cobalt/trace/cobalt-posix.h
> +++ b/kernel/cobalt/trace/cobalt-posix.h
> @@ -162,7 +162,8 @@
> __cobalt_symbolic_syscall(clock_getres64), \
> __cobalt_symbolic_syscall(clock_adjtime64), \
> __cobalt_symbolic_syscall(mutex_timedlock64), \
> - __cobalt_symbolic_syscall(mq_timedsend64))
> + __cobalt_symbolic_syscall(mq_timedsend64), \
> + __cobalt_symbolic_syscall(mq_timedreceive64))
>
>
> DECLARE_EVENT_CLASS(cobalt_syscall_entry,
>
Thanks, replaced in next. I've used that chance to convert the muqueue
to an mqueue. ;)
Doing a scan for this error pattern, I also found
COBALT_SYSCALL(mutex_timedlock64, primary,
(struct cobalt_mutex_shadow __user *u_mx,
const struct __kernel_timespec __user *u_ts));
in kernel/cobalt/posix/mutex.h. Could you update
"y2038: cobalt/posix/mutex: Adding mutex_timedlock64"
as well?
Thanks,
Jan
--
Siemens AG, T RDA IOT
Corporate Competence Center Embedded Linux
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v4 3/5] y2038: cobalt/posix/muqueue: Adding mq_timedreceive64
2021-08-13 6:53 ` Jan Kiszka
@ 2021-08-13 7:17 ` Jan Kiszka
0 siblings, 0 replies; 3+ messages in thread
From: Jan Kiszka @ 2021-08-13 7:17 UTC (permalink / raw)
To: Florian Bezdeka, xenomai
On 13.08.21 08:53, Jan Kiszka via Xenomai wrote:
> On 12.08.21 18:28, Florian Bezdeka wrote:
>> From: Song Chen <chensong_2000@189.cn>
>>
>> Add a syscall specific for mq_timedreceive64 with 64bit time_t.
>>
>> Signed-off-by: Song Chen <chensong_2000@189.cn>
>> [Florian:
>> - Reformat commit msg
>> - relocate code
>> - tracing
>> - fix syscall declarations
>> ]
>> Signed-off-by: Florian Bezdeka <florian.bezdeka@siemens.com>
>> ---
>>
>> @Jan: This should replace 76607e1a7237 in next. Other patches of the
>> same series were not affected.
>>
>> Changes in v4:
>> - Fixed COBALT_SYSCALL vs. COBALT_SYSCALL_DECL
>>
>> include/cobalt/uapi/syscall.h | 1 +
>> kernel/cobalt/posix/mqueue.c | 28 +++++++++++++++++++++++++++-
>> kernel/cobalt/posix/mqueue.h | 10 ++++++++++
>> kernel/cobalt/posix/syscall32.c | 8 ++++++++
>> kernel/cobalt/posix/syscall32.h | 5 +++++
>> kernel/cobalt/trace/cobalt-posix.h | 3 ++-
>> 6 files changed, 53 insertions(+), 2 deletions(-)
>>
>> diff --git a/include/cobalt/uapi/syscall.h b/include/cobalt/uapi/syscall.h
>> index 464e170cc..c27d6d044 100644
>> --- a/include/cobalt/uapi/syscall.h
>> +++ b/include/cobalt/uapi/syscall.h
>> @@ -130,6 +130,7 @@
>> #define sc_cobalt_clock_adjtime64 107
>> #define sc_cobalt_mutex_timedlock64 108
>> #define sc_cobalt_mq_timedsend64 109
>> +#define sc_cobalt_mq_timedreceive64 110
>>
>> #define __NR_COBALT_SYSCALLS 128 /* Power of 2 */
>>
>> diff --git a/kernel/cobalt/posix/mqueue.c b/kernel/cobalt/posix/mqueue.c
>> index a1828919c..ebe7cf7b0 100644
>> --- a/kernel/cobalt/posix/mqueue.c
>> +++ b/kernel/cobalt/posix/mqueue.c
>> @@ -629,7 +629,7 @@ redo:
>> ret = fetch_timeout(&ts, u_ts);
>> if (ret)
>> return ERR_PTR(ret);
>> - if (ts.tv_nsec >= ONE_BILLION)
>> + if (!timespec64_valid(&ts))
>> return ERR_PTR(-EINVAL);
>> to = ts2ns(&ts) + 1;
>> tmode = XN_REALTIME;
>> @@ -1013,6 +1013,24 @@ fail:
>> return ret;
>> }
>>
>> +int __cobalt_mq_timedreceive64(mqd_t uqd, void __user *u_buf,
>> + ssize_t __user *u_len,
>> + unsigned int __user *u_prio,
>> + const void __user *u_ts)
>> +{
>> + ssize_t len;
>> + int ret;
>> +
>> + ret = cobalt_copy_from_user(&len, u_len, sizeof(len));
>> + if (ret)
>> + return ret;
>> +
>> + ret = __cobalt_mq_timedreceive(uqd, u_buf, &len, u_prio, u_ts,
>> + u_ts ? mq_fetch_timeout64 : NULL);
>> +
>> + return ret ?: cobalt_copy_to_user(u_len, &len, sizeof(*u_len));
>> +}
>> +
>> COBALT_SYSCALL(mq_timedreceive, primary,
>> (mqd_t uqd, void __user *u_buf,
>> ssize_t __user *u_len,
>> @@ -1031,3 +1049,11 @@ COBALT_SYSCALL(mq_timedreceive, primary,
>>
>> return ret ?: cobalt_copy_to_user(u_len, &len, sizeof(*u_len));
>> }
>> +
>> +COBALT_SYSCALL(mq_timedreceive64, primary,
>> + (mqd_t uqd, void __user *u_buf, ssize_t __user *u_len,
>> + unsigned int __user *u_prio,
>> + const struct __kernel_timespec __user *u_ts))
>> +{
>> + return __cobalt_mq_timedreceive64(uqd, u_buf, u_len, u_prio, u_ts);
>> +}
>> diff --git a/kernel/cobalt/posix/mqueue.h b/kernel/cobalt/posix/mqueue.h
>> index f16774a3b..b4b263158 100644
>> --- a/kernel/cobalt/posix/mqueue.h
>> +++ b/kernel/cobalt/posix/mqueue.h
>> @@ -50,6 +50,11 @@ int __cobalt_mq_timedreceive(mqd_t uqd, void __user *u_buf,
>> int (*fetch_timeout)(struct timespec64 *ts,
>> const void __user *u_ts));
>>
>> +int __cobalt_mq_timedreceive64(mqd_t uqd, void __user *u_buf,
>> + ssize_t __user *u_len,
>> + unsigned int __user *u_prio,
>> + const void __user *u_ts);
>> +
>> int __cobalt_mq_notify(mqd_t fd, const struct sigevent *evp);
>>
>> COBALT_SYSCALL_DECL(mq_open,
>> @@ -76,6 +81,11 @@ COBALT_SYSCALL_DECL(mq_timedreceive,
>> unsigned int __user *u_prio,
>> const struct __user_old_timespec __user *u_ts));
>>
>> +COBALT_SYSCALL_DECL(mq_timedreceive64,
>> + (mqd_t uqd, void __user *u_buf, ssize_t __user *u_len,
>> + unsigned int __user *u_prio,
>> + const struct __kernel_timespec __user *u_ts));
>> +
>> COBALT_SYSCALL_DECL(mq_notify,
>> (mqd_t fd, const struct sigevent *__user evp));
>>
>> diff --git a/kernel/cobalt/posix/syscall32.c b/kernel/cobalt/posix/syscall32.c
>> index d3f87c246..d52be0207 100644
>> --- a/kernel/cobalt/posix/syscall32.c
>> +++ b/kernel/cobalt/posix/syscall32.c
>> @@ -354,6 +354,14 @@ COBALT_SYSCALL32emu(mq_timedreceive, primary,
>> return ret ?: cobalt_copy_to_user(u_len, &clen, sizeof(*u_len));
>> }
>>
>> +COBALT_SYSCALL32emu(mq_timedreceive64, primary,
>> + (mqd_t uqd, void __user *u_buf, ssize_t __user *u_len,
>> + unsigned int __user *u_prio,
>> + const struct __kernel_timespec __user *u_ts))
>> +{
>> + return __cobalt_mq_timedreceive64(uqd, u_buf, u_len, u_prio, u_ts);
>> +}
>> +
>> static inline int mq_fetch_timeout(struct timespec64 *ts,
>> const void __user *u_ts)
>> {
>> diff --git a/kernel/cobalt/posix/syscall32.h b/kernel/cobalt/posix/syscall32.h
>> index 0e552202e..006054e85 100644
>> --- a/kernel/cobalt/posix/syscall32.h
>> +++ b/kernel/cobalt/posix/syscall32.h
>> @@ -132,6 +132,11 @@ COBALT_SYSCALL32emu_DECL(mq_timedreceive,
>> unsigned int __user *u_prio,
>> const struct old_timespec32 __user *u_ts));
>>
>> +COBALT_SYSCALL32emu_DECL(mq_timedreceive64,
>> + (mqd_t uqd, void __user *u_buf, ssize_t __user *u_len,
>> + unsigned int __user *u_prio,
>> + const struct __kernel_timespec __user *u_ts));
>> +
>> COBALT_SYSCALL32emu_DECL(mq_notify,
>> (mqd_t fd, const struct compat_sigevent *__user u_cev));
>>
>> diff --git a/kernel/cobalt/trace/cobalt-posix.h b/kernel/cobalt/trace/cobalt-posix.h
>> index d67a6ce09..b046c8a0e 100644
>> --- a/kernel/cobalt/trace/cobalt-posix.h
>> +++ b/kernel/cobalt/trace/cobalt-posix.h
>> @@ -162,7 +162,8 @@
>> __cobalt_symbolic_syscall(clock_getres64), \
>> __cobalt_symbolic_syscall(clock_adjtime64), \
>> __cobalt_symbolic_syscall(mutex_timedlock64), \
>> - __cobalt_symbolic_syscall(mq_timedsend64))
>> + __cobalt_symbolic_syscall(mq_timedsend64), \
>> + __cobalt_symbolic_syscall(mq_timedreceive64))
>>
>>
>> DECLARE_EVENT_CLASS(cobalt_syscall_entry,
>>
>
> Thanks, replaced in next. I've used that chance to convert the muqueue
> to an mqueue. ;)
>
> Doing a scan for this error pattern, I also found
>
> COBALT_SYSCALL(mutex_timedlock64, primary,
> (struct cobalt_mutex_shadow __user *u_mx,
> const struct __kernel_timespec __user *u_ts));
>
> in kernel/cobalt/posix/mutex.h. Could you update
>
> "y2038: cobalt/posix/mutex: Adding mutex_timedlock64"
>
> as well?
>
Looking at the diff, it's really just macro, so I already fixed this up
myself.
Jan
--
Siemens AG, T RDA IOT
Corporate Competence Center Embedded Linux
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-08-13 7:17 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-12 16:28 [PATCH v4 3/5] y2038: cobalt/posix/muqueue: Adding mq_timedreceive64 Florian Bezdeka
2021-08-13 6:53 ` Jan Kiszka
2021-08-13 7:17 ` Jan Kiszka
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.