Re: [GIT PULL 08/12 for v6.18] core kernel

From: Sasha Levin

Date: Sat Sep 27 2025 - 08:19:13 EST


On Fri, Sep 26, 2025 at 04:19:02PM +0200, Christian Brauner wrote:
Hey Linus,

/* Testing */
This contains the changes to enable support for clone3() on nios2 which
apparently is still a thing. The more exciting part of this is that it
cleans up the inconsistency in how the 64-bit flag argument is passed
from copy_process() into the various other copy_*() helpers.

gcc (Debian 14.2.0-19) 14.2.0
Debian clang version 19.1.7 (3+b1)

No build failures or warnings were observed.

/* Conflicts */

Merge conflicts with mainline
=============================

No known conflicts.

Merge conflicts with other trees
================================

No known conflicts.

The following changes since commit 8f5ae30d69d7543eee0d70083daf4de8fe15d585:

Linux 6.17-rc1 (2025-08-10 19:41:16 +0300)

are available in the Git repository at:

git@xxxxxxxxxxxxxxxxxxx:pub/scm/linux/kernel/git/vfs/vfs tags/kernel-6.18-rc1.clone3

Hi Christian,

After pulling this tag, I started seeing a build failure.

a9769a5b9878 ("rv: Add support for LTL monitors") which was merged a few weeks
ago added a usage of task_newtask:

static void handle_task_newtask(void *data, struct task_struct *task, unsigned long flags)

But commit edd3cb05c00a ("copy_process: pass clone_flags as u64 across
calltree") from this pull request modified the signature without updating rv.

./include/rv/ltl_monitor.h: In function ‘ltl_monitor_init’:
./include/rv/ltl_monitor.h:75:51: error: passing argument 1 of ‘check_trace_callback_type_task_newtask’ from incompatible pointer type [-Wincompatible-pointer-types]
75 | rv_attach_trace_probe(name, task_newtask, handle_task_newtask);
| ^~~~~~~~~~~~~~~~~~~
| |
| void (*)(void *, struct task_struct *, long unsigned int)
./include/rv/instrumentation.h:18:48: note: in definition of macro ‘rv_attach_trace_probe’
18 | check_trace_callback_type_##tp(rv_handler); \
| ^~~~~~~~~~

I've fixed it up by simply:

diff --git a/include/rv/ltl_monitor.h b/include/rv/ltl_monitor.h
index 67031a774e3d3..5368cf5fd623e 100644
--- a/include/rv/ltl_monitor.h
+++ b/include/rv/ltl_monitor.h
@@ -56,7 +56,7 @@ static void ltl_task_init(struct task_struct *task, bool task_creation)
ltl_atoms_fetch(task, mon);
}
-static void handle_task_newtask(void *data, struct task_struct *task, unsigned long flags)
+static void handle_task_newtask(void *data, struct task_struct *task, u64 flags)
{
ltl_task_init(task, true);
}

--
Thanks,
Sasha